Yesterday we were trying to help Matt at Harbour Marine Services get his customer’s new iKommunicate installation to drive a Furuno autopilot from OpenCPN running on a PC.
Matt had the hardware all installed perfectly, but there appeared to be no data coming out of OpenCPN on their NMEA Debug Window. The reason for this was due to a couple of unforeseen issues and so we thought a post about what we did would help anyone else planning a similar install.
After the hugely popular Navionics App for iPhones/iPads, OpenCPN is probably the next most widely used navigation software in the marine industry. It has been developed over the years as an Open Source project by a number of contributors and is really an amazing piece of software. I am always surprised by the number of boaters who are not aware of it, but then again it has no large marketing company behind it and relies solely upon communication between boaters to promote its many benefits.
The first of which is that being Open Source, it is free to use and the second is that it will run on a Windows PC, Mac, LINUX machine or most recently an Android device. It also does not need lots of computing power, so even that dusty old laptop that you have not used for years can probably run it.
Digital Yacht’s iKommunicate is the perfect device to take your NMEA0183 or NMEA2000 data and pass it through to OpenCPN via either a wired or wireless Ethernet network connection. In OpenCPNs Connections menu, you need to setup either a TCP or UDP network connection on Port 2000…
Use UDP if you want other devices to receive the same data as it is a broadcast protocol or use TCP if you want a more reliable and robust “one to one” connection, which is the recommended mode for driving an autopilot. In the screen above, we have created two TCP connections, one for data Input on Port 2000 so that OpenCPN can receive GPS, AIS and Instrument data from iKommunicate, and one data Output on Port 2001 which will carry the autopilot data from OpenCPN to iKommunicate.
iKommunicate has three NMEA0183 ports, ports 1 and 2 are Input/Output ports and port 3 is input only. To drive an autopilot iKommunicate must be wired so that either the Port 1 or Port 2 output is connected to the autopilot’s input. Then you set the TCP connection to be either Port 2001 if you want the autopilot data to be routed to the NMEA0183 Port 1 Output or to Port 2002 if you want the autopilot data to be routed to NMEAA0183 Port 2 Output.
In Matt’s install, he had iKommunicate Port 2 wired to the Furuno Autopilot, so we needed to setup a TCP Output connection to Port 2002. Also it is important not to overload the low speed 4800 baud NMEA0183 port, which can only handle about 7 sentences per second at that speed, so we told OpenCPN to only output the XTE and APB sentences with an “EC” (electronic charting system) talker ID.
Finally, you need to then set iKommunicate to output TCP data on Port 2000 and to enable it to drive an Autopilot on either Port 1 or Port 2, whichever you are wired up to. This is easy to do through the iKommunicate web interface, which you should be able to access at http://ikommunicate.lan or http://ikommunicate.local depending on how your router is setup or if all else fails by entering the iKommunicate’s IP address i.e. http://192.168.1.80 but using the actual IP address it has on your network.
After you have made these changes, click the “Apply” button and iKommunicate will reboot with the new settings.
Now you should start to see the data from iKommunicate on OpenCPN and assuming you have a valid GPS fix, you should be able to right click somewhere on the OpenCPN chart, select “Navigate to Here” and OpenCPN will create a temporary waypoint and start calculating and outputting the autopilot data. Now go to your autopilot and see if you can engage “Nav” mode to start steering to the waypoint. If that all works, then everything is connected up and configured correctly and you can go out for a sea-trial.
NOTE – if iKommunicate is set to get its IP address automatically by DHCP, then you should use the domain name i.e. ikommunicate.lan or ikommunicate.local in the OpenCPN connection address, but if you have iKommunicate set to a fixed IP address then use this actual IP address in the OpenCPN connection. The router can only use domain names if it has given out the IP address by DHCP.