The diminutive new chart PC, during configuration and setup.
Up to now, we've been using my old Acer Aspire One netbook, which got pressed into service quickly when the Northstar plotter went belly-up in the Indian River over a year ago. Replacing this computer has been on my to-do list since just a few days after we first installed it. After all, I had retired it from service as my everyday laptop because it was old, slow, and unreliable -- it's just what we had at hand when the Northstar failed, and it already had the software and charts on it to serve as the plotter.
The old Acer on the shelf in the network cabinet. Note the string holding it in place for heavy seas.
It was working well enough for so long that replacing it fell down the priority list, and buying the licensed Bahamas charts for it meant we were committed to it until we returned from those waters. But over the last couple of months, it's been failing more and more frequently, halting completely with a BSOD, typically related to something in the serial port code.
I've been noodling on what to use as a replacement for quite a while, and before we headed off to the Bahamas I was leaning towards buying a bare-bones 4"-form-factor machine, such as an Intel NUC or similar, and loading Linux on it. My personal machine runs Ubuntu Linux, and our chart plotter software runs very well on it. Ubuntu is free, well-supported, and has all the drivers we need for our peripherals, plus I am familiar with it and know how to solve problems.
The process of getting usable charts for the Bahamas gave me pause to reconsider. Not because of the Bahamas, per se, for which we had a somewhat workable solution, but because I can foresee this being a problem over and over again in other parts of the world as well.
The chart plotter program we are using now is PolarView NS, from Polar Navy. We've been mostly happy with it -- it does everything we need, albeit with a somewhat clunky user interface, it integrates the Active Captain database onto the charts, it runs on all our computers whether they be Windows or Linux, and it's inexpensive, at just $50 for a 5-station license.
PolarView supports standardized chart formats, known as BSB for raster charts, and S57 or S63 (unencrypted and encrypted, respectively) for vector charts. These standards, promulgated by the International Hydrographic Organization, happen to be the formats used by many of the world's national hydrographic offices. For example, NOAA and the US Army Corps of Engineers produce all of their charts in one or more of these formats. PolarView even has a convenient button to download the latest chart updates directly from NOAA; in US waters it doesn't get much better.
In many locales, however, the best (or sometimes the only) cartography is available only from private sources. The Bahamas is one such place, with the only usable charts coming from one of two cartographers: Lewis ("Explorer Charts") and Wavy Line. These private sources are under no obligation to release charts in one of the aforementioned standard formats, and many do not. Sometimes that's out of concern they will be pirated, but often it's because they can cut lucrative "exclusive" deals with proprietary-format chart repositories.
In the Bahamas, for example the best charts are the Explorer Charts, and those are available in electronic format only through Jeppesen. Jeppesen sells these in their proprietary "C-Map" format, both on cartridges for dedicated plotters and on disk or download for PC-based plotters. While we were in the Bahamas, I often used my cell phone to navigate, using the C-Map charts downloaded to Jeppesen's own app.
In order to have something halfway usable on the main plotter, I bought Navionics charts, available in encrypted S63 format, but these are based on older and/or less reliable source data, and we found the bathymetry to be just plain wrong in many places. Instead of plotting directly, we tediously transcribed waypoints from the printed Explorer charts and entered them into the plotter by hand to do our navigating.
While we were trying to resolve some chart discrepancies in Bimini, which was not even covered by the Navionics package I bought, I got some good advice from our friend Steve. He recommended we look into the Coastal Explorer (CE) chart plotting software. It's expensive, at least compared to what we have now, at $370 for a single license. But in addition to doing everything that PolarView does, including reading the same standard chart formats, it can also read some proprietary chart formats, including Jeppesen C-Map.
We're not ready to take the $370 CE plunge just yet. For one thing, we are back in the US for the foreseeable future, where we have unlimited access to excellent free charts from the US government. For another, we've already climbed the PolarView learning curve, and don't want to tackle yet another interface just yet. But we wanted the new helm computer to be compatible with CE, for the inevitable day when we need to install it in order to get decent charts of some new destination.
All of that was a rather long-winded way of saying I had to get a Windows machine. CE does not run on Linux, whereas PolarView runs quite well on either. So rather than start with Linux today and have to install not only CE, but also Windows somewhere down the road, I bit the bullet and bought a machine that came bundled with Windows 8.1. I can always switch it over to Linux in the future if it just doesn't work out.
As it turns out, that was very nearly day one of the installation. This, principally, because Microsoft insists on treating its customers like children, who can be trusted neither to keep their hands out of the cookie jar, nor to skin their knees at the playground. We'll get to that in a moment.
The machine I chose was an HP Stream 200-10 "mini desktop," a diminutive box about 5" square and 2" tall with a single control -- the power button -- and a handful of I/O ports. It came bundled with "Windows 8.1 With Bing" as well as a USB keyboard and USB mouse, neither of which I needed but there was no option to delete them. Instead of a hard disk, a 32GB SSD is included in the package, a little over half of which was available for use, the rest being taken up by Windows and pre-installed software.
I chose this model because HP has a solid track record and it was an unbeatable price, at just $179 delivered and complete. I only had to add an HDMI cable to connect it to our existing monitor (the old computer had a VGA connection) for another few bucks. I considered buying a larger replacement SSD or more RAM, but decided to defer either of those until it was up and running and we could see how it would perform.
In case you were wondering, "Windows 8.1 with Bing" is exactly the same as the basic or "core" edition of Windows 8.1, except the default search engine in Internet Explorer has been pre-set to Microsoft's own Bing. Microsoft licenses this version to OEM's free of charge on condition that they don't change this default, precluding them from getting paid by, say, Google, to do just that (and, yes, computer manufacturers get paid big money by Google, Yahoo, and others to pre-install software and set defaults like this). Nothing stops the consumer from changing it, though, assuming anyone even uses Internet Explorer. One of the first things I did was to install a different browser and make it the default.
The lightweight specs of this machine, including the small SSD, speak to its market niche, competing with Chromebooks and similar devices for the "thin client" and "cloud computing" markets. As a dedicated chart plotter, which will never run other apps such as spreadsheets, databases, home theater, or gaming, it has plenty of horsepower and almost enough storage. I popped a 32GB SDHC card that I had lying around into the built-in card slot to store data such as charts and routes, effectively tripling the storage capacity.
So much for the good. As you may have guessed from my post title, we now come to the bad, and the ugly.
There are multiple reasons why I resisted buying another Windows machine. I've been in the computer business nearly my whole life, since long before we could put one on a desk let alone in someone's pocket. (I once posted a comparison between one of my earlier mainframes and a smart phone, and that particular smart phone is now obsolete by today's standards because it is too slow and has too little memory.) In my professional life I could not escape Microsoft and the relentless march of Windows versions, culminating (for me) with Windows XP.
After XP, no matter how many bells and whistles they added, I deemed Windows to be too big, too clumsy, too expensive, and, most of all, too invasive. By this last term I mean that Microsoft monitors too much of what everyone does back at their mother ship, and the license terms are onerous. I would still not consider it for my personal machine on which I keep personal contact information, legal files, or a subversive browsing history. As a dedicated chart plotter that will do none of those things, I can live with it, grudgingly.
The last time I bought a Windows machine for myself it had to be a netbook, because that was the only way, then, to still get one with XP, which Microsoft had trotted out of retirement just for the purpose when it saw a threat from stripped-down Linux netbooks and the impending Chromebook. (I wrote extensively then about what I had to do to get decent performance out of XP on such a wimpy computer.) When I retired that machine I went to Linux myself, vowing to leave the Windows world forever. Of course, Louise promptly bought a Windows 8.1 tablet when her last XP machine died, dragging me, kicking and screaming, back into that domain. I am apparently her "network administrator," considering I end up dealing with it every time the "please contact your network administrator" message pops up.
Given my reservations, it was not really surprising, then, that I nearly defenestrated Windows on the very first day. The setup of the computer itself went flawlessly; I was able to set up the pre-installed Windows with a local account, bypassing the invasive "set up a Microsoft account" process, and I was very careful to keep my name and personal details out of it, using "Vector" instead when needed. In addition to keeping my name out of Microsoft's files, this will also make it a cinch to turn the machine over to the new owner if and when we ever sell the boat.
Setting the machine up to boot into the more traditional Windows "desktop" rather than the tiled "Metro" interface was also a snap, and I quickly deleted all of the Metro tile apps as well as a host of desktop bloatware pre-installed by HP or Microsoft.
The real trouble started when I tried to install the four-port serial-to-USB converter. This is the device that connects the computer to NMEA inputs for GPS position and speed, depth and temperature from the hull transducer, AIS information from other ships, and heading information from the autopilot. It also allows the computer to send route information to the autopilot in real time to steer the ship.
Perle 4-port serial-to-USB converter, with cables from four NMEA devices connected.
Suffice it to say that without this device, the whole setup is for naught. And so when Windows was unable to load it, I knew I had a big problem. The converter box is branded Perle and so I went to Perle's web site to find 64-bit Windows 8 drivers. Hah. I found none there; the latest drivers on the site were the ones I was using on XP.
Perle's web site has one of those "live chat" features on the support page, and after a few lines back and forth with a service rep I learned that Perle exited the USB converter business a few years back (they still make serial cards for desktop PCs) and no longer supports these devices. There are no Windows 8 drivers. Harumph.
Four-port converter boxes are not cheap, and suddenly it looked as if my $180 computer was going to cost double that when I added in the cost of a new, Windows-8 compatible converter. This is where I seriously considered replacing Windows with Linux, where I knew I could somehow get hold of drivers. Nevertheless, I started searching around on the Internet for a replacement four-port converter that was explicitly listed as being compatible with 64-bit Windows 8.
I came up with lots of $300 converters and a very few for half that much. Lo and behold, though, I found one brand that looked identical to the one I already had, right down to the custom, oddly-shaped plastic casing. The only detectable difference was the brand name and logo stenciled on the plastic.
Some further investigation revealed that both this box and my box contain identical FTDI chipsets, and the Windows-8 drivers included with the new box, downloadable from their web site, are the FTDI drivers. Naturally, I downloaded the drivers, reasoning that the chipset in my box can utilize these newer drivers, developed by FTDI, to work with Windows 8.
Of course, things could not be as simple as just pointing the Windows "Add New Hardware" wizard at these drivers, and anyone who has ever been in Windows driver hell knows this. When Perle OEMed this board from FTDI they had FTDI code a custom device name and ID number. So when you plug this in, it comes up not as "FTDI USB Serial Port" but rather as "Perle USB Serial Port." And that means that Windows will not load the drivers unless they are also coded as "Perle USB Serial Port" drivers.
At the risk of losing people here to some technical mumbo-jumbo, let me say that changing this coding is technically very easy -- it's a few lines of text in a text file in the installation folder containing the drivers. The file or files in question have the filename extension ".INF" and can be modified with any text editor such as Notepad. Changing the .INF files that came in the FTDI installation to work with the Perle box was easy -- I just needed to copy the lines with the device names and ID numbers from my old XP driver files into the new FTDI files.
But not so fast; ever since XP, Windows no longer allows you to install drivers for any device at all unless those drivers are digitally "signed" by a recognized certificate authority. The signature files are included in the install folder. Changing the .INF file changes its hash value, which thus no longer matches the signature file. Since you can't sign the drivers yourself, or fudge the signatures, the best you can do is to delete the signature line in the .INF file, making it an unsigned driver.
In previous versions, Windows would squawk loudly if you tried to install an unsigned driver, with dire warnings about how it has not been tested, could corrupt your Windows installation, and generally spell the end of the universe as we know it. But it then gave you the option to say "yes, yes indeed I want to go directly to hell by installing this here unsigned driver."
No longer. Microsoft, in its infinite wisdom, has decided we can not be trusted to make these adult decisions for ourselves, and this option is no longer given. It took me a while to find the workaround.
After a very tedious multi-step process that must start from a running system, one can access the Boot Options menu, turn off the driver-signing requirement, and reboot. This allowed me to finally install the drivers and verify that, yes, they did work with my older Perle device and I was able to see incoming data on all ports. Whew.
But wait, what's this? The drivers no longer work after rebooting. Checking Device Manager shows that they have been disabled because they are unsigned. Apparently, the boot options workaround only works for one session -- it needs to be done each time you boot, which means you have to boot twice and fiddle with settings in between. That's not going to work for us; if the plotter crashes under way we need to restart it pronto, not after five minutes of fiddling while driving the boat at the same time.
A bit more hunting around the 'net turned up a pair of commands to modify some internal settings to turn the driver signing requirement off permanently. The newfangled "Secure Boot" system, however, prevents these commands from taking effect. Once again unto the breach; this time to delve into the UEFI BIOS settings to disable Secure Boot. More dire warnings about the end of civilization, including one informing me that changing this setting might turn my brand new PC into an unbootable brick.
That finally did the trick, and now I have working serial ports that persist through shutdown and reboot. Of course, space aliens can now access my PC, since I've disabled three of Microsoft's darkest security features, thus opening a rift in the space-time continuum. Or possibly sending the boat off course and off the edge of the Earth.
These are the sorts of things that endear Microsoft to system administrators everywhere, and make plenty of money for training institutes offering courses in how to navigate the byzantine universe of Windows settings and administration. And my frustration with the folks in Redmond did not end there.
As if the driver issue was not enough, once I got the ports working and fired up the NMEA instruments, the mouse pointer went bonkers, driving itself all over the screen and clicking on random things. I had to pull the plug on the USB ports until I could fix this.
This is an ancient problem, and shame on Microsoft for not having fixed it by now. It exists in every version of Windows at least back as far as XP. There are certain NMEA sentences that contain strings of characters identical to the output of a Microsoft Ballpoint Serial Mouse, a device which has not been sold in well over a decade (it came out in 1991 -- really). Windows, in its infinite wisdom, sees these strings, decides on your behalf that you have connected a vintage Ballpoint Mouse, installs the drivers, and begins interpreting the port as a mouse immediately.
Even the most common of USB GPS devices, the venerable BU-353 "puck," emits these strings, and the problem was so huge back in the days of Delorme Street Atlas, and its ilk, being popular in-car navigation systems, that the hue and cry was raised and Microsoft released a downloadable tool to fix the problem. You ran the tool for each COM port with an NMEA device, and no more Ballpoint shenanigans.
Of course this tool does not run on Windows 8. Microsoft has neither fixed the root cause, nor released an updated tool. Part of what is so frustrating about this is that they don't think twice about obsoleting hundreds, if not thousands, of older third-party peripherals with their driver policies, while at the same time making sure their own idiotic obsolete mouse still works. Another half hour of Internet sleuthing led me to the obscure setting to change in the device manager to fix this, available with the latest FTDI driver.
Having thus set up the base machine and gotten the ports working, I moved ahead with installing PolarView and going through an equally tedious process of transferring my settings from the other machine. I can't blame this one on Redmond, of course, but the Polar Navy folks also have buried their settings in a non-intuitive and undocumented XML file. I'd gotten good at decoding this file once I discovered that it was often corrupted by the aforementioned BSOD errors that crashed the computer, causing PolarView to launch with no settings, license, or charts.
It took me about an hour to hand edit the XML file from the old computer to work with the new installation. Among other things, Windows gives you no control over what COM port numbers get assigned to the USB converter ports, so my four NMEA devices were now on different COM ports than previously. Once I got it all entered, Polar View came right up, and I only needed to enter the license key and download fresh charts.
Mid-setup. PolarView is downloading charts. The supplied keyboard and mouse, shown here, are too big and clunky for the helm station and have since been relegated to back-up status.
I did have to enter my Active Captain credentials to download their database -- the only place in the whole installation where I've entered any personal details. I also had to enter the Polar View license, which is tied to my email, but I consider the license to be part of the boat.
Once everything was working "normally" I turned my attention to tweaking the settings for daily use as a chart plotter. I again smacked into Redmond's "dumbing down" of the user interface, this time with respect to color settings.
The default Windows color scheme is fine for daytime use. But under way at night, the computer display is one of the brightest items on the bridge, yet at the same time the most often consulted. PolarView and other chart plotter programs have a "night mode" for just this reason, darkening the display and inverting many colors so that the plotter is as dark as possible, yet with all key information still readable.
That's great, but this is a Windows application, and so it is surrounded by window borders, with title and menu bars. Each instrument cluster is also a separate window on top of the main plotter, and at any given moment I have five or more windows open on the screen. A bright title or menu bar color renders the dark settings of the plotter program itself almost worthless.
In previous versions of Windows, one could simply right-click on the desktop, go to the display settings, and chose foreground and background colors for every single item on the screen individually -- screen background, title bars, menu bars, selections, foreground text, et cetera. On the XP machine, I had carefully selected black or dark backgrounds with medium contrast text for every item; if you walked by the computer when it was running normal apps (rather than the plotter) you'd have thought I went Goth, or maybe hipster. But it worked well both day and night for the plotter.
Windows 8 has removed this capability entirely. Instead, you get to pick a theme under "Personalization," and you get the settings for each item set for you by the theme. There is one color "choice" once the theme is chosen, and that single choice sets all the colors on the screen.
More head-banging on the 'net turned up plenty of aftermarket themes and even some third-party tools to basically adjust the theme colors yourself, but I was really not looking to add software to an already slim system. Instead I found a workaround in Microsoft's "accessibility" settings.
It turns out that if you pick one of the "high contrast" themes (originally intended for the visually impaired), you get to choose more of the colors yourself. It is still nowhere near the level of control we had in previous versions, but it's a lot better than just a single choice.
I fiddled with the theme settings for over an hour, and I could not set colors that worked well both day and night as I had done with XP. I settled for a "regular" theme for daytime use, and a customized "high contrast" theme for night running. It takes ten keystrokes to switch between them, on top of the six required to switch Polar View's mode. I selected larger, higher-contrast mouse pointers for both -- the pointer tends to get lost on a busy chart.
A running plotter in Live Ship mode, showing Vector at center and AIS targets elsewhere in the marina. This was a beer-worthy moment.
If you've clicked through to this article because you're putting together your own Windows-8-based plotter, I should point out here that we use an inexpensive ($99) LED/LCD TV for a monitor. It works great, having VGA, HDMI, and composite video inputs along with a built-in TV tuner. But like most TVs or even dedicated computer monitors, it lacks either the high-NIT brightness required to see it outdoors in daylight (as, for example, on a flybridge), or the ability to turn the brightness down far enough for a darkened pilothouse at night.
We don't need the high-NIT capability; it's indoors and plenty bright enough in any conditions we encounter in the pilothouse (we have a different plotter on the flybridge). The lack of dimmability, though, is a real issue for us. We solved this with some self-cling neutral-density window tint from Walmart for $13. I bought the darkest one they had, 5% transmissivity, and cut it to the size of the screen. We put it on at sunset and peel it off in the morning; it's reusable and adheres by static cling.
Marine-grade HDMI/VGA monitors are readily available for both pilothouse and flybridge use that avoid both of these issues, but they start at upwards of $1,000 apiece. If my main helm station was outdoors, or if I drove the boat every night instead of just a dozen nights or so per year, I would seriously consider one.
I did need to make one more modification to accommodate this new system. The old plotter was a laptop, so it had a battery and could easily tolerate power interruptions, such as the brief ones that sometimes occur when switching between generator (or shore) and battery power, or when we trip the inverter (rare) by turning on too many cooking appliances at once. This is a desktop machine, and enjoys no such protection.
150-watt inverter zip-tied in place, with a hard-wired 12v socket connected and a cube tap for the two devices.
I had a 150-watt "cigarette-lighter" inverter lying around, and I wired that up to the 12 volt DC supply in the network cabinet. Both the computer and the USB serial adapter are now powered by this small, dedicated inverter, a total of less than 20 watts. Although the little inverter can easily handle it, I opted to leave the TV/monitor connected to an outlet on the main inverter, which provides cleaner power and is more efficient.
As I type this, we are in the middle of a four day, 500 nautical mile ocean passage, and so far the new system is working well. No BSOD errors or other system failures, and between the faster processor and the solid-state disks, it's much snappier than its predecessor. Also, the display is much crisper than before; I'm not sure if that's a difference between HDMI and VGA, or just that the older machine had a lousy video adapter. I do think the system might be memory-bound; there is one free slot available, and I will probably spring for another 4GB of RAM just to speed things up a bit.
The new system installed and in place on the shelf. There's that same string again, but I will be making a more secure bracket for it when I can get parts. You can see the SD card peeking out on the right side. The two USB ports on the front are free and available for thumb drives or other temporary connections; the Perle and the keyboard/mouse connect at the back.
I still have a few more tweaks to make when we get back into Internet coverage. I'm sure there are still some performance-sucking apps and background services running that can be removed, and I need to ditch the trial version of McAfee, with its incessant license nag, for AVG or something similar. I also need to install VNC so that I can access the plotter from the flybridge on a tablet, or from the stateroom on the old Android phone I keep down there for the purpose (it's nice to be able to see the track and anchor circle when anchored without getting out of the bed). Lastly, my Bahamas charts came with a license for a "backup" computer and I need to install it on this machine so I can load those charts.
Step by step, here's what I did to install a Windows 8.1 slim desktop as a chart plotter:
- Unboxed the machine
- Connected it to an existing monitor with an HDMI cable
- Connected the keyboard and mouse to USB ports (the HP has four USB 3.0 ports)
- Connected the wired ethernet port to the ship's router with a CAT-5 cable (the HP also has built-in WiFi)
- Attached the power adapter
- Pressed the power button and followed the on-screen setup prompts
- Skipped the Microsoft Account setup and instead setup a local account "Vector"
- Accepted all Windows updates
- Set Windows desktop as default environment
- Created a restore USB using the HP support app
- Deleted all Metro tile apps
- Deleted non-essential HP-supplied apps
- Inserted an empty 32GB SDHC card into the SD slot for storage of charts, routes, and other data, keeping what remains of the built-in SSD for applications
- Connected a four-port serial-to-USB converter. Get a Windows-8 compatible model to skip the next steps
- Downloaded and extracted FTDI 64-bit Windows drivers
- Added device names and numbers from my old drivers to the FTDI .INF files
- Removed the signature line from the .INF files
- Disabled UEFI Secure Boot
- Modifed Windows to accept unsigned drivers
- Connected Perle four-port USB serial adapter
- Installed the driver for each COM port from the modified FTDI folder
- Disabled "Serial Enumeration" on each COM port to avoid "Ballpoint Mouse" problem
- Downloaded and installed latest Polar View NS software
- Downloaded charts for Polar View and installed them on SD card
- Configured Polar View for my four NMEA ports
- Turned on NMEA instruments and tested ports with "Live Ship" mode
- Imported waypoints, routes, and other settings from my old laptop
- After fully testing the installation, installed the license for Polar View, thus taking it out of 30-day "trial" mode and using up the last of my five licenses
- Adjusted Windows display "personalization" for best viewing in day and night modes, including larger, higher-contrast mouse pointers
- Replaced the wired keyboard and mouse with a wireless combo unit that we had for the old computer (whose keyboard was built-in and thus inaccessible in the cabinet)
- Moved the computer and USB converter power inputs to a dedicated inverter on ship's batteries
- Set a reserved IP address in the router and install VNC so I can access the plotter from other devices on board
For the record, starting from scratch, this is what it cost to put together this PC-based plotter system:
|HP Stream 200-10||$179|
|Proscan 17" Monitor||$99|
|4-port USB adapter||$28|
|32 GB SDHC card||$13|
|4x DB-9 connectors||$6|
|Bulk 2-pair signal cable||$20|
I don't think you can buy the smallest NMEA-enabled Garmin for that little, and this system packs a lot more punch. (The Garmin, however, is weatherproof and daylight-readable.)
In theory, we should now be all set to install Coastal Explorer or any other Windows-based charting software when the time comes. I'll be using the old Acer as a test mule to try out anything first, before installing it on the live system. The Acer is still set up to recognize the USB converter, so it's a simple matter of moving one USB cable to test any new chart plotting software.