BMOW title
Floppy Emu banner

Shiny New Computer Setup

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:

  1. The software is actually a virtual machine image containing Linux and the Linux version of the ISE.
  2. 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?

Read 15 comments and join the conversation 

15 Comments so far

  1. Thomas May 26th, 2019 2:34 am

    Hi!

    What you describe here is exactely what I fear… Currently I still use my 2008 trusted old PC (athlon 6000+ / 2GB ram / USB2 + RS232 + PARALLEL + IDE + SATA + Floppy controller) under windows XP. It still works pretty well (Watching an HD 720p video on youtube only takes up about 60 to 70% of my CPU, not bad for an 11 years old machine) but for how long??

    I have many useful softwares that are working perfectly on my machine but some already have issues on my windows 7 laptop… What about windows 10 then??? Obviously, for most of them, upgraded versions are available but as you said newer is not always better… Some used to be freeware and now either you have to live with numerous ads or pay for. Sometimes there are intermediate versions which are ok but if you forgot to back up the installation file somewhere, it’s no longer possible to find these on the WEB. Luckily most of my sofwares installation files are backed up and if windows becomes unstable, I have a clean ghost image of my XP boot partition.

    My goal is to keep this machine alive as long as I can : Parts are easily findable on ebay and I’ve preventively already slightly underclocked and reduced CPU voltage many years ago (3Ghz/1.4V -> 2.8Ghz/1.27V).

    In the future I’ll probably have to buy or assemble a new machine for anything related to the internet but hopefully I’ll still use my old machine for everything else.

  2. Ramtop May 26th, 2019 5:44 am

    It is actually possible to run ISE on Windows 10, it just takes at little fiddling about. Someone at the EEVBlog forums was kind enough to write up the necessary instructions:

    https://www.eevblog.com/forum/microcontrollers/guide-getting-xilinx-ise-to-work-with-windows-8-64-bit/

    I’ve no idea why Xilinx can’t be bothered to fix what seems like a fairly trivial problem. But then my experience of CPLD/FPGA vendors is that they have zero idea about good customer support, and generally act like they don’t want anyone to use their products.

  3. Steve May 26th, 2019 6:46 am

    Thomas, what software do you use that has issues on Windows 7 (or Windows 10)? Do you use one computer for internet and the older XP computer for hobby or electronics work?

    The one positive thing about migrating all my programs is that I know how to do it now. If I need to do it again, it will be much easier and faster. And that may happen soon… I think I’m having buyer’s remorse over this Elitebook laptop. It’s a nice computer, but I probably made a mistake in valuing portability over everything else. I may re-sell the Elitebook and shop for a mini or micro size PC instead, something like the Dell Optiplex Micro series.

    Ramtop, thanks for the tip about ISE on Windows 10! The instructions are for version 14.7, which lacks XC9500 support. Any idea if the same trick works on version 14.6? If I do end up replacing this computer, I’ll try this method.

  4. Thomas May 26th, 2019 8:45 am

    Currently, I do almost everything (hobby + web) on my old XP computer, but the internet gets heavier and heavier over the years and chrome/firefox are no longer updated for windows XP. I’ll probably can’t navigate comfortably anymore on this machine in the future… I have some very old but useful softwares (from win9x era) that work well on my XP machine but crashed when I tried to launch them on windows 7. I hate shooting of cannon into sparrows, that’s probably why I love and still use 68k macintosh, especially with system 6.0.7 and 7.1, efficiency and simplicity!!!!

    Another issue is related to I/O on newer machines : I use some hardware on serial port and even if there are usb RS232 converters, sometimes it doesn’t do the trick and communication fails. One very important thing for me is the real Floppy controller, I have many old machines (amstrad cpc, atari, amiga, thomson) that use 360 or 720k floppies and for most copy software, a real FDC is needed! Of course I could buy a gotek but I love using real drives 😀 Even for my macs I rarely use floppy emu except for HD20 mode…

  5. Matt W May 27th, 2019 5:01 am

    At the office we’ve settled on the Optiplex SFF size as a good compromise – still uses desktop CPU and RAM for speed and ease of upgrading. Larger fan for less noise. More ports, especially in the higher series (50xx, 70xx, 90xx).
    The Micros use laptop or low power parts.

  6. Steve May 27th, 2019 7:15 am

    Good point, and I’m beginning to think the same about the SFF vs Micro. It’s all a series of tradeoffs, isn’t it? I love the look and size of the Optiplex Micros, but hadn’t realized they use the slower T-series CPUs. And the Micros may struggle with heat in the same way as a laptop. SFF are still pretty small at about 11.5 x 11.5 x 3.7 inches. But the Micros are only 7 x 7 x 1.4 inches – roughly the same as the Mac Mini.

  7. Jeff May 27th, 2019 7:05 pm

    If you haven’t checked it out yet, I’d say *the* most mind-bending Win 10 trick is WSL (Windows Subsystem for Linux), which re-implements Linux kernel syscalls and makes it easy to do Linux-y stuff (including running GUI apps, though you must be running an X-Server on Windows for it to connect to, such as MobaXterm). In the upcoming WSL 2, they’ll switch to using Hyper-V for better file system performance and compatibility.

  8. Steve May 27th, 2019 7:34 pm

    I’ve read about Windows Subsystem for Linux, but I’m not clear what I would do with it. Can I just install the X server, then download some Ubuntu package and run it? I’m guessing it’s much more complicated than that.

  9. Jeff May 27th, 2019 8:17 pm

    That’s pretty much it. As with any X setup, you do have to do the “export DISPLAY=:0” in Linux. I I used this guide: https://nickjanetakis.com/blog/using-wsl-and-mobaxterm-to-create-a-linux-dev-environment-on-windows

  10. Ramtop May 30th, 2019 2:13 pm

    Steve, I think there’s some confusion regarding ISE versions. I run 14.7 natively on Windows 10 and it supports the 9500 series CPLDs just fine. I’ve been using it for my XC9500XL-based retro hardware for a couple of years now (just checked, and it supports the older XC9500 series too).

    I’ve screenshot the about and project windows: https://imgur.com/a/LRMavlS

  11. Steve May 30th, 2019 2:26 pm
  12. Jim May 30th, 2019 6:22 pm

    I needed a Windows PC to do a few things I can’t do on my Mac (Cider Press, TRSTools, Z-80 ass’y dev). Believe it or not, I found a Toshiba Windows 7 laptop (sans hard drive) with charger at a thrift store for $12.50. It was half price day. Paid $6.25 + a $20 SSD from Fry’s for a working Windows laptop. Needless to say, I still paid too much for Windows, but the hardware is great.

  13. Steve May 31st, 2019 6:13 am

    Nice find! It’s remarkable how fast prices drop on older computers. It’s even better (or worse) for monitors and printers – if you have an old one to sell, you can barely even give it away for free. Nice if you need the equipment, but with no real market for used monitors and printers, most of them sadly end up in a landfill.

  14. Magnus June 2nd, 2019 1:46 pm

    Steve, you can run ISE 14.7 natively on Windows 10 by replacing libPortability.dll with libPortabilityNOSH.dll. See this video for more info: https://www.youtube.com/watch?v=ttPbEcNjdo8

  15. cb88 June 30th, 2019 5:51 pm

    Steve, as you mentioned the non VM version of ISE 14.7 supports almost all the hardware, notably Pano logic zero clients with Spartan6 LX150 in them… https://github.com/tomverbeure/panologic-g2

Leave a reply. For customer support issues, use the Contact page instead of comments.