WilhelmSK app shows what Signal K, good boat WiFi, and smart DIY coding can do
Hey, those are all solid-state radomes showing on the 7-inch displays at Gizmo's lower helm, and you'd see a fourth one running on the flybridge. Comparative testing is underway, but today I'm going to write about the rather amazing WilhelmSK app running on the iPad above. It is not only mirroring the Raymarine a77 screen, touch control included, but also neatly displaying lots of NMEA sensor data that's been converted to the app-friendly Signal K protocol, thanks to Digital Yacht's iKommunicate gateway. In my opinion, WilhelmSK is a terrific early example of Signal K's potential and also a testament to Raymarine's powerful WiFi strategy...
2/6/2017, Please Note: The WilhelmSK app needs special hardware to work. I used the iKommunicate Signal K bridge and a standard WiFi router as explained below, but other options are possible, and more hardware is needed to use some WilhelmSK features that I could not test.
WilhelmSK is a $20 iPad/iPhone app that can also extend to an Apple Watch and/or Apple TV. Its primary purpose is to display instrument data received over WiFi in the Signal K "free and open source universal marine data exchange format", but since developer Scott Bender had already reverse engineered the Raymarine MFD WiFi stream on his boat, he added that, too. In fact, if you run WilhelmSK the way Scott does -- using a tiny and inexpensive Raspberry Pi PC loaded with the SK server software -- you can even control a Raymarine autopilot with your iThing (as suggested above) and receive WilhelmSK alert and alarm notifications pushed to any device anywhere. Wow!
But you don't need to be the sort of boater who knows how to set up a Raspberry Pi to get a lot out of WilhelmSK. I don't have a clue about that, but I did figure out how to use the $299 iKommunicate Signal K bridge above, which began as a Kickstarter campaign a year ago. While I did experience (possibly self-inflicted) difficulties in early going, now the bridge is reliably serving SK data to several apps via that Trendnet WiFi router, which came to Gizmo with the Coastal Marine WiFi system that's holding up well in long testing.
The iKommunicate is normally tucked out of sight, but I posed it to suggest how it connects to one of the router's LAN ports via the gray Ethernet cable (while the black cables run to 12v power and Gizmo's main NMEA 2000 network). With the iPad logged onto the router, the Signal K enabled apps I've tried -- more on those below -- easily see the iKommunicate output, though a different mode is required to take advantage of WilhelmSK's extra Raymarine MFD display feature.
So when I took this WilhelmSK screenshot, the iPad was logged onto the Ray A77's WiFi hotspot, but still able to see the iKommunicate data because the A77 is also logged onto the Trendnet boat router. That may sound complicated, but it's easy to set up and very powerful (as I also saw when testing the Raymarine Quantum radar). For instance, besides handsomely mixing MFD and sensor data like above, the iPad and/or the Ray MFD could also be fetching weather online or logging data to the cloud, as long as the boat router was connected via marina or cell phone WiFi.
But what may impress me most about WilhelmSK is how well it displays some of the less common data types available on Gizmo. For instance, the "Block Temp" value of 154 degrees is very important to my underway peace of mind, but WilhelmSK is the only instrument app I've tried that can even show the number, and the only screen on the boat that can label it correctly besides the Maretron sensor/display system it's coming from. This is where Signal K shines.
If you long tap on any data field in WilhelmSK you get this setup menu. If I wanted something common like Oil Temp I could just tap on it in that Engine list - done. But I chose Oil Temp because it's a similar value to block temperature, and then I used the dropdown list of the Signal K data types that Wilhelm sees streaming from the iKommunicate. Note the fairly plain English, though still the one I was after is called: "environment.inside.temperature.engineroom.value," because "engine room" is the closest standard N2K temp category I could set up back in the Maretron system. So finally I edited "Oil Temp." to read "Block Temp." because in reality the little temperature sensor is bolted to the Volvo Penta's block and that's the same custom label that I created and see throughout the Maretron system.
If I was using the WilhelmSK Raspberry Pi server, I could hopefully next set up a custom alert for when that block temp even slightly exceeds normal running conditions, and for very low material cost I'd be closing in on the sophisticated Maretron alerting I've so appreciated. In fact, on my winter project list are more Maretron sensors around Gizmo's engine room, and I also hope to test their systems for logging data and pushing notifications off the boat. Signal K could support similar capabilities -- at least in a funkier, more DIY way -- and I hope to see how that goes, too.
Here's a collage of the WilhelmSK setup side menu along with some of the pages it leads to. You can create a choice of multi-page layouts and also choose among multiple Signal K boat connections. "Discovered" means just that; WilhelmSK and other Signal K apps see the two iKommunicate sources automatically (I don't yet know why there are two). But I created (and misspelled) the "iKomminicate IP" connection and Scott provided the "demo.signalk.org" source. Yes, online I can see what's happening to a boat in Finland (or simulation of). Also shown is the Log page, which has been useful for troubleshooting.
This screen illustrates a variety of available WilhelmSK data gauge types as well as its Light Theme choice and an online map window Scott recently added. However, I also set it up to show several data types that still need troubleshooting. Why are True and Magnetic Heading almost the same, for instance, and why aren't Pitch and Roll showing? They could be app issues, or SK issues, or even Gizmo N2K issues. But the good news is that I've seen fast results as we worked out previous problems. On first try, I realized that the N2K tank level categories seen in SK were mixed up, but Scott quickly made it easier to apply the right tank names and then Digital Yacht fixed the mixup with an iKommunicate firmware update, all in a few days. This is all a work in progress, but the work can move right along.
In my view, Scott Bender not only wrote an amazing app, but he also exemplifies the kind of extra talent Signal K can attract to marine electronics. In fact, he only bought his first boat and learned to sail two years ago. But that 1980 Catalina 30 named Wilhelm is now a key part of his life, and he was already a 25+ year software pro who's often created iOS apps in his spare time just for personal use. And that's all WilhelmSK was going to be when he added Raymarine and NMEA 2000 electronics to the C30 last spring but wanted more than the available apps provided.
Scott told me that he quickly realized that SignalK was "the only way to go" -- "It's based on modern standards and technology, open and really easy to write apps for" -- and that he also "got involved with the SignalK guys and started contributing to the software and the specification. I showed the app to them and the other developers on the SignalK Slack group. They loved it, so my little personal app quickly turned into something much bigger." Isn't that exactly how you'd hope an open source marine data format would work?
I welcome Scott into this funny little world of marine electronics and hope that other developers like him are similarly seduced by boating and the tech fun possible therein. And, by the way, I also hope that Raymarine is seeing the upside of Scott's work. For instance, I understand why they did not put autopilot control in their own apps, but given that a WilhelmSK user will also have to install their own server to use that feature, I think Ray's liability is absolved. I also think that WilhelmSK might help sell more Ray hardware ;-)
I also tried the Signal K data with the NMEAremote instrument app, which has long been excellent at supporting the various devices that put boat data onto WiFi (useful list here). Above are two NMEAremote Source screens showing connections to Gizmo's Vesper XB-8000 WiFi AIS/mux and to iKommunicate. Both were auto (Bonjour) discovered and I can even use both simultaneously, which has some value since Vesper translates some N2K data like GPS satellite coverage detail that Signal K apparently hasn't gotten around to yet.
But look at the difference in the blue data stream windows. The XB-8000 is converting N2K data into the constrained and somewhat inscrutable NMEA 0183 format just like most every other device on that list does, and it would be prohibitively hard for Vesper to add translations of data goodies like my engine block temp. Meanwhile, any developer can see what's happening in the SK stream (and perhaps even help to improve it), and I can also use it to display the specific data I want. Note, too, that SK can contain all sorts of data not included in the NMEA 0183 or 2000 standards (though I'm waiting to see that feature in use).
I also noticed that NMEAremote has gotten some very nice alert/alarm features since I last tried the app, but then again its fixed gauge pages seem limited when you know all that's in the SK data stream. While the app does pretty well with the standard engine data above -- and note how the alarmed coolant temp is highlighted -- there's no way I could find to show my block temp, let alone label it properly. It seems like it took a fresh developer's eye like Scott Bender's to make the most of Signal K (and of course it helps that he's only supporting SK).
The SailRacer app also supports Signal K now, Android included, and it includes some interesting features like the ability to import and share your own charts (which I haven't tried yet). But this app has also been around for a while, and so far the developers just seem to be using the more limited data types they're used to seeing from other WiFi devices.
However, we are just a short way down the Signal K road, and I'll finish with a yet undelivered product that may show off the possibilities big time. RaceGeek is an Irish startup intent on building a d10 large format boat display that apparently uses SK to connect with sensors and also with an open source and cloud-based performance analytics service. I'm not at METS this year, but Kees Verruijt will be visiting and also attending the Signal K Meetup tomorrow. Maybe we'll hear more.