Upgrading to a new computer is exciting, but can also be a pain. Last week I replaced my primary desktop computer with a new laptop, and the setup has involved some bumps in the road. Read on for my take on high DPI displays, desktop vs laptop, data and program migration, and Windows 10.
The old PC was a Mac Mini running Boot Camp with Windows 7. It worked well enough, aside from some quirks with USB 3.0 and bluetooth support under Boot Camp. But the end of Windows 7 support is on the horizon. Now felt like the right time to update to Windows 10 and get some new hardware. The new machine is an HP EliteBook x360, so I can work on BMOW projects from anywhere instead of being tied to a desk.
High DPI Displays
Windows 10 has some work to do before it can match the Mac’s easy retina display support. Many programs scale correctly under Windows 10, but many don’t. Under Mac OS, high DPI displays just work. Whether it’s in the OS’s own windows and settings programs, or in 3rd party software, I’ve only ever encountered one program that didn’t scale properly on a retina display.
The same can’t be said for Windows 10. On a high DPI display, most of the built-in Windows programs scale nicely and look crisp, but a few items like file dialog boxes look blurry. Older third party software generally doesn’t scale well. You’re left with a choice between viewing programs at 100% scale where everything is tiny, or viewing them at a higher scale where everything is blurry. You might think that at least text should always scale properly, even if program icons don’t, but I haven’t found this to be true. Depending on what software you use most often, the experience with a high DPI display under Windows 10 may actually be worse than with a standard DPI display.
Desktop vs Laptop
For the first time in 30 years, my primary computer is not a desktop machine. Getting the absolute fastest performance wasn’t important to me, but I thought portability would be valuable. I’m primarily using the laptop as a desktop replacement, with an external monitor, keyboard, mouse, and USB hub. But I can unplug everything and walk away with the laptop when I need to.
I hadn’t anticipated the drawbacks of using a laptop as a desktop replacement. Fewer I/O ports, limited expansion, and higher cost were all expected, but I’ve found that a laptop-as-desktop simply doesn’t work as smoothly as a desktop. Sleep doesn’t work well. Sometimes I can’t wake the computer from sleep without opening the laptop lid. Sometimes the external monitor fails to turn on after waking from sleep. The computer occasionally gets confused about applying scaling settings appropriate for the internal or external display.
And the most surprising discovery about this laptop-as-desktop? It’s loud. Louder than any other desktop or laptop I’ve ever used. On battery power the Elitebook is nice and quiet, but when plugged in, the fan roars any time CPU usage gets above 10-20%. It doesn’t take much to reach that threshold – unzipping a file, rendering a busy web page, or even a background process can start the fans going. A laptop doesn’t have anywhere near the cooling capacity of a desktop case, so the fan has to work very hard to keep the CPU cool without forcing it to throttle to lower GHz.
At lower fan speeds it’s not so bad, but at max fan speed the Elitebook is so loud that it’s nearly unusable. I can configure the power settings for energy savings instead of max performance, and then it’s quieter, but there’s a huge performance hit of 25% or more. That makes the new computer as slow as the old one it replaced.
Windows 10
I disliked Windows 8.0 so strongly that I downgraded back to 7, so I approached Windows 10 with hesitation. I’m happy to report that the experience has been mostly good. In many ways, Windows 10 just feels like a more polished version of Windows 7. The wacky paradigm-breaking elements of 8.0 are gone, including charms and the disappearing start menu and everything running full-screen. Yes, the Metro / UWP programs are still there, but Microsoft seems to have stopped pushing it so hard and UWP programs work much like any other software.
The biggest gripe about Windows 10 that I’ve heard from others is the loss of control over updates. Compared to Windows 7, there’s less ability to control the timing of Windows updates or their contents. Automatic driver updates sound scary. I haven’t been using the computer long enough to experience this yet, but I’ll watch for it.
Program Migration
Copying all your data to a new computer is easy. Copying all your programs is decidedly not easy. In most cases you can’t actually copy the programs at all, due to their extensive reliance on the registry, extra DLLs, and other semi-hidden dependencies. Attempts to copy everything from C:\Program Files will generally result in a non-working copy. Third party utilities exist for copying programs between computers, but their success rate is questionable for anything beyond basic programs.
In most cases, the only real option is to reinstall all the programs from scratch on the new computer. If you’re lucky, you can download the latest version of the program, install it, and be done. But often it’s more complex than this – you may need to create an account or get a license key before you can download or install the software. And if your current version of the software is no longer available, the latest version may not always be a good replacement. Newer versions may be incompatible with your old data or other software components. In the worst case, the software may have been discontinued with no way to download it again.
Here’s a summary of which programs were a challenge to migrate.
Easy
iTunes, Inkscape, Notepad++, GIMP, VirtualBox, Saleae Logic, Atmel Studio 7, and various small utility programs were no trouble. I just downloaded the latest versions and installed them, taking only a few minutes. All of them worked fine under Windows 10, including the drivers for the programs like Logic that use external hardware.
Medium
I couldn’t log in to Gmail with Microsoft Edge using my Yubikey for 2FA. It would always appear to succeed, but then immediately complain “something went wrong”. Attempts to use my backup 2FA methods also led to the same error. I eventually gave up on Edge and installed Chrome.
Visual Studio Express 2015 is supposedly still available, but I couldn’t find a working download link. I use VS for developing several tools like the FC8 compression/decompression utility, and an internal order-processing tool. Microsoft seems to have abandoned the Express series, but fortunately Visual Studio Community 2019 worked smoothly with my old projects.
The driver for my Zebra 2844 label printer is built into Windows, but it requires some special print setup after installing the driver. I had to contact the eBay seller who sold me the printer two years ago in order to get the instructions again. Fortunately the seller is still around and willing to help.
The latest version of Eagle (PCB layout software) is subscription based, but the last non-subscription version (Eagle 6.6) is still available and works fine.
Quicken and Lattice Diamond (FPGA software tool for Yellowstone) required an account login before I could download the software. Diamond also required generating a new license key, even though the software is free.
I purchased CorelDRAW Suite a few years ago, and have an install CD with license key. But after installing it on the new computer, I was told the license key was already in use. By me! I had to unearth the login credentials for the Corel account that I created the first time I installed the software, and use it to update the license. Fortunately I’d used my real email address when I’d first created the Corel account, instead of supplying a fake one as I often do when I’m forced to create an account for some purpose I don’t want.
Hard
MPLAB is Microchip’s software for PIC development, and I use it for ADB-USB Wombat development. Downloading and reinstalling the software was no problem, but the Wombat project had lots of errors when compiled under the new IDE. I vaguely remembered installing some other software components several years ago in order to get MPLAB working, but I couldn’t remember what. It took several hours to untangle this hairball and refresh my memory, learning that I also needed to separately install the Microchip Library for Applications, the XC32 complier, and the Legacy PLIB. Four separate installs to get a working build environment.
The standard driver for my EasyPRO EPROM programmer only supports Windows XP. There’s a newer 64-bit driver, but it’s only available on a Chinese-language web site, and it took a long time to find it. Unfortunately I couldn’t install that driver under Windows 10 because it’s not digitally signed, which is now a requirement. I found the hidden Windows setting to disable enforcement of the signed driver policy, and successfully installed the 64-bit EasyPRO driver, but the hardware still didn’t work. The device manager revealed that “the driver for this device has been blocked from starting because it is known to have problems with Windows”.
After lengthy attempts to fix this somehow, I gave up and installed a Windows 7 virtual machine for the EasyPRO software under VirtualBox. The VM is configured to allow USB pass-through for the EasyPRO hardware’s USB vid and pid.
Migrating my Perforce database was challenging. While the rest of the world has largely moved to git, I still use Perforce’s free single-user configuration for source control of my projects. The version of the Perforce server that I’d been using is no longer available for download. I installed the latest version, and directly copied over my database files, but not surprisingly that didn’t work. I followed the instructions to export my old DB and import it into the new server, but that only produced an empty database. It required many hours of slogging through the Perforce documentation to understand what I’d done wrong, and successfully export and re-import the DB into the new server.
Hardest
My experience with the Xilinx development tools was the worst. I use the Xilinx ISE to develop firmware for the XC9500 CPLD chip at the heart of the Floppy Emu, so it’s essential to my business. The current version of Xilinx’s development tool is called Vivado. Sounds fine, except Vivado doesn’t support the XC9500 chip. The XC9500 may be an older product, but it’s still being manufactured and sold by Xilinx, so it’s curious why their software doesn’t support it.
For the XC9500 you need the Xilinx ISE WebPACK, which you can still find on their site. That’s OK, except the ISE WebPACK doesn’t support Windows 10… or does it? Read the ISE 14.7 description on their web site, and tell me what it sounds like to you. Notice there are a couple of references to “VM” that aren’t explained. Also notice the warning that this version only supports the Spartan 6 FPGA, even though it’s the ISE WebPACK that provides XC9500 support. Hmm.
The ISE is a huge many-gigabyte download, but when I finally finished downloading 14.7, I discovered two things:
- The software is actually a virtual machine image containing Linux and the Linux version of the ISE.
- They weren’t kidding about it being Spartan 6 only. XC9500 is not supported.
So that’s Xilinx’s solution to providing support for their older (but still active) products? Rather than adding support to Vivado, or updating ISE WebPACK to work on Windows 10, they give you a virtual machine image and tell you to run the old software under virtualization. The web page where the software is described doesn’t even mention this.
For reasons known only to Xilinx, even this virtualized version of ISE WebPACK is limited to Spartan 6 support only. To get XC9500 support I had to go back for another many-gig download of ISE WebPACK 14.6, which doesn’t work on Windows 10 and has no virtualized version. Fortunately I’d already set up a Windows 7 VM for use with the EasyPRO programmer, so I added ISE WebPACK 14.6 to that. Now I have to do all my CPLD development in a VM, but at least it works.
All of this would be understandable if the XC9500 were an obsolete, discontinued chip. Software companies can’t maintain support for legacy products forever. But the XC9500 is still being actively sold and marketed by Xilinx. They sell a product where the required development tools don’t work on any Microsoft OS released after 2009.
Are you thinking about upgrading your computer? What’s holding you back? If you’ve recently upgraded, how was the experience? Were any software programs challenging to migrate to the new machine?