WilhelmSK app shows what Signal K, good boat WiFi, and smart DIY coding can do

... written for Panbo by Ben Ellison and posted on Nov 15, 2016


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_at_Apple_iTunes_preview_aPanbo.jpgWilhelmSK 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!

iKommunicate_installed_on_Gizmo_with_Trendnet_router_cPanbo.jpgBut 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.

WilhelmSK_settings menu w layout boat connect and logging pages_cPanbo.jpgHere'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.

WilhelmSK_iPad_app_with_light_theme_n_problem_data_cPanbo.jpgThis 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.

WilhelmSK_developer_Scott_Bender_aPanbo.jpgIn 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 ;-)

NMEAremote_showing_Vesper_and_Signal_K_WiFi_data_connections_cPanbo.jpgI 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).

NMEAremote_w_Signal_K_data_and_alarms_cPanbo.jpgI 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).

SailRacer_app_running_SignalK_cPanbo.jpgThe 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.



PS Scott also has a Fusion stereo on his Catalina and wants to incorporate the Fusion-Link N2K remote interface into WilhelmSK.

Posted by: Ben at November 15, 2016 2:22 PM | Reply

Kees, I would be eager to hear more about the new airmar STW sensor with leeway of course, but would you keep your ear open and learn if the technology providers and volunteers are keen to bring it to us? For example has Signal K laid any ground work?

Would love to hear more on Racegeek (I enjoyed visiting their site today)

Is Raymarine planning any more sailing features this coming season? Time to start line was originally in advertisements, but didn't happen. is that coming soon?

Posted by: Dan Corcoran (b393capt) at November 16, 2016 1:02 PM | Reply

Very nice. As with all IP based communications, who is monitoring for accidentally built-in security risks. Standard "security packages" have readily been compromised. Does Signal-K have a security czar?



Posted by: Donald Joyce at November 16, 2016 2:15 PM | Reply

Don, I believe that security is a concern of the Signal K team, though I don't know what's been implemented so far. However, readers should understand that most everything I discussed and illustrated above was or could have been done strictly within my boat's local area network. I suppose someone could figure out the password for my WiFi router but they'd have be close to even see it.

Dan, I too hope that Kees can visit the Airmar booth, but I do have some details about the DST900+ Multilog and they sound amazing. Patience please ;-)

Posted by: Ben at November 16, 2016 3:55 PM | Reply

The SignalK team and I are definitely thinking about security. It wasn't too big of an issue before since everything was just read-only. Now with my addition of autopilot control, security definitely needs to be address and there are efforts in progress to add security to the signalk-node-server.

Like Ben said, WiFi security is a good way to handle this right now and is probably as good as anything we would add to the servers. But as more people like me have their SignalK servers accessible over the internet, this will become an issue.

I currently shut down internet access to the boat when I'm out and about. I wouldn't want someone changing the satellite radio station to the Justin Bieber channel ;)

Posted by: Scott Bender at November 16, 2016 6:47 PM | Reply

That looks like a very useful piece of kit.

What setup are you using to get data from the Volvo Penta? I have an old one and would be great to get data into a tablet display

Posted by: Andrew at November 16, 2016 8:41 PM | Reply

Hi Andrew,

For several years I've been using the Actisense EMU-1 to convert the inputs to my Volvo Penta gauges into NMEA 2000:


I look forward to trying a recent EMU firmware update that apparently adds some nice improvements. I also tested and liked a VeeThree Engine Gateway Monitor:


But if your Volvo Penta is newer than my 1999 model, it probably uses the J1939 data protocol, and for that there are other options from Maretron, Yacht Devices, Garmin and more.

Posted by: Ben in reply to Andrew at November 17, 2016 7:57 AM | Reply

Got the wilhelm SK app and I am trying to get some support but Scott's website has been down in the last few dates.

Any alternatives on how to setup the server software on a Raspberry Pi or even a wilhelm SK manual ?

Posted by: adrian at November 20, 2016 5:59 AM | Reply

Hi Adrian,

If you're looking to install the Signal K server on a Raspberry Pi, take a look at this guide. If you have any questions or run in to issues with that, please post on the Signal K Mailing List and someone will help you get it all working.


Posted by: tim in reply to adrian at November 20, 2016 10:28 AM | Reply

Hi Adrian,

Sadly. I have not had time to build a website yet. You can email me @ [email protected] for support.


Posted by: Scott Bender in reply to adrian at November 20, 2016 11:25 AM | Reply

Thanks Tim and Scitt,

Will reach out to you via email Scott.


Posted by: Adrian at November 20, 2016 11:49 PM | Reply


What I'm most concerned with in general is the inadvertent introduction of malware or vulnerability into the software by a contributor or vendor. Therefore a security czar to encourage best security practices and ferret out problems before distribution. In the past this was my biggest headache when coordinating "volunteer" development projects. Lots of innocently introduced issues by very thoughtful, well intentioned competent people.



Posted by: Donald Joyce in reply to Ben at November 23, 2016 9:55 AM | Reply

I finally managed to get a website up. More information on WilhelmSK can be found at http://www.wilhelmsk.com

Posted by: Scott Bender at February 14, 2017 8:23 AM | Reply

Leave a comment