TCP Connection Problems on Apple iOS 10

img_2705

Since Apple’s release of iOS 10 for iPhones and iPads, we have been getting a number of calls and emails saying that various navigational Apps that read wireless NMEA data from our products have stopped working, including our free iAIS app.

There are two modes/protocols that our wireless NMEA products can work in; TCP which is a reliable one to one type connection supported by most apps and UDP which is a broadcast protocol that allows multiple devices to all receive the same data.

When we started to investigate, we found that TCP communication on all Apps no longer worked with iOS 10 and UDP only worked on some apps. At first we thought this might have been an Apple API type change that had caused the problem, but then we discovered that changing the IP address of our wireless NMEA products from 169.254.1.1 to 192.168.1.1 fixed the problem.

The 169.254.1.1 IP address range is usually reserved for Ad-Hoc networks where there is no DHCP server and dates back to our first iAIS product (released in 2011) that only supported Ad-Hoc networks. With the release of Android, which did not support Ad-Hoc networks, we updated our wireless NMEA products to the more common Access Point mode but retained the 169.254.1.1 IP address, to avoid changing too many Apps and Documentation.

Now it seems that Apple are clamping down on TCP connections on Ad-Hoc networks and this means that all customers who have updated their iPhone or iPad to iOS 10, will need to change the IP address of their wireless NMEA product, if they have one of our; iAIS, WLN10, WLN10HS, WLN20, NavLink, PilotLink or AIT3000 units. Please note that our iNavHub and Sonar Server products are not affected by the iOS change.

To make this procedure as easy and simple as possible, we have created a new Tech Note that explains what needs to be done. Click here to download.

 

Testing Wireless NMEA Data

iAIS TCP-IP Screen

 

With more and more wireless NMEA systems being installed on-board boats, it is very useful for dealers, installers and enthusiastic end users to have simple tools to “view” this wireless NMEA data.

Traditionally, wired NMEA0183 data was viewed using an NMEA to USB cable connected to a PC and then a program such as Hyperterminal (included with Windows up to WinXP) would be used to display the data. In fact Digital Yacht released a free, dedicated NMEA Display program to use on Windows Vista/7/8 and this proved to be a popular tool for testing wired NMEA0183 systems.

With wireless NMEA systems it is much easier to test using a smart phone or tablet and we would recommend the following free apps;

For Apple iOS Devices – our own free iAIS app (see image above) has a very simple raw data view window that can be used to display the wireless NMEA data in TCP or UDP mode. Alternatively iNMEA Logger is another free app, written by the company that developed the popular iRegatta App that can log 30 seconds of received data and create a text file of the results, useful if you do not understand NMEA0183 and want to send it to someone who does.

For Android Devices – there are no specific wireless NMEA Apps, but there are a lot of terminal programs that display TCP and UDP data and after trawling through a fair number of apps, we came across TCP/UDP Terminal App which we think is the best Android App found so far.

Once you have installed your app for displaying wireless NMEA data, then you need to know what you are looking at. To buy the NMEA0183 Specification costs quite a lot of money but there is quite a lot of data on-line, you just need to hunt it out.

Unfortunately a lot of the information on-line is quite old and some of the newer sentences are not fully explained. The NMEA do in fact publish a complete list of all Sentence Identifiers with a short description of what they are (not the complete sentence description) and this list also includes the proprietary Manufacturer’s ID – these sentences start $Pxxx, where xxx = the manufacturer identifier.

It should be noted that most wireless NMEA data is “human readable” (ASCII Text) but the AIS sentences VDM and VDO have what is called a “binary encapsulated” section (bit like a zip file) to reduce the sentence length – see example below.

!AIVDM,1,1,,A,13P;QeO001wrdB`M28kpmCa<0Ua0,0*5D
!AIVDO,1,1,,,B00000@00ovdqaWAUv“CwkUsP06,0*20

This means that you will not be able to make sense of the AIS target information in the VDM and VDO messages, but our free iAIS app does display this information on the main plotter screen, so worth having a copy of this app.

Using our Wireless NMEA devices with older Navigation Software

WLN10HS Mock Up LR

Our Wireless NMEA products (WLN10, NavLink, PilotLink, AIT3000 and iAIS) are proving really popular and for customers that have a suitable App or Navigation Software that can read the TCP/UDP network data, then interfacing to them is easy.

Today I was contacted by a customer that had quite old navigation software that only supported serial COM port type connections. These are great for wired connections but cannot read data from the new generation of wireless NMEA devices.

I was just about to apologise and explain that he would have to upgrade his software package (and charts) when I remembered a piece of software that I had found called “NMEA Router” which is freeware software written by UK developer Neil Arundale. NMEA Router allows wireless and wired NMEA data connections to be seamlessly joined together and will even allow multiple programs to read the same serial data by creating a Virtual COM Port.

I quickly downloaded and installed the free software from the Software Informer site or you can also download it from Neil’s site as well. Installation is simple and when you run NMEA Router for the first time, you will need to right click on it and select “Run as adminstrator” as creating a Virtual COM Port (VCP) requires Administrator Access rights.

Initially NMEA Router will have no connections defined (see image below) and so your first task is to create two new connections; one for the Wireless TCP/UDP connection and one for the Serial COM Port and also to setup the Virtual COM Port (VCP) which must be done before setting up the Serial COM Port that your navigation software will use.

NMEA Router No Connections

Select Configure>Connection>New and you will see a window like the one below. Give the connection a meaningful name i.e. the wireless product name “WLN10”, select UDP/TCP as the connection type and make sure the Enabled tick box is ticked.

NMEA Router New WLN10 Connection

Once you are happy, click the OK button and you will see the following window appear. For most installations, I would suggest selecting “UDP” protocol, which is the simplest to setup. Make sure “Input” is selected and type “2000” as the port (which is the same on all Digital Yacht wireless products).

NMEA Router Setup UDP Connection

Now click the OK button and depending upon the version of Windows you are running, you maybe asked to confirm the new Firewall Security Exception. Just confirm/authorise the new Firewall Exception and you will be returned to the main NMEA Router window, but now you will have your new “WLN10” connection shown.

Now we need to setup the VCP, so click Configure>VCP>Create and you will see some old style MSDOS windows pop up and dissappear as the VCP is created. You may also be asked to confirm that you are OK for the program “com2com” to make changes to your PC, which you should confirm as OK.

You should see a new pop-up Window saying that the VCP “COM x” has been successfully created. On my PC it was COM4 but you may be allocated a different number.

Once the VCP has been created, we can now create the final new connection, so click Configure>Connection>New again and this time give the connection a name like “VCP” and select “Serial” as the connection type. Make sure the Enable tick box is ticked and click on the OK button.

NMEA Router New VCP Connection

A new window will appear and you need to select the Device from the drop down list. There should only be two devices listed and you want the one that is not “COM x”. As you can see from my example below it will be something like “CNCA0” and is the name that Windows has given to the VCP input, not COM4 which is the VCP output that you will configure in your navigation software.

NMEA Router Setup Serial Connection

Make sure that “Output” is selected and that you have set the baud rate to a suitable speed. If in doubt set the highest speed that your navigation software can handle. Now click the OK button and you will be returned to the main NMEA Router window again and both of your new connections will be listed.

NMEA Router With Connections

Finally we need to join the two new connections together and to do this we need to create a Route. Click on Configure>Route>New and you will see a window like the one below.

NMEA Router New Route

If you only have the two connections setup, then the “Between” and “And” fields will be automatically set, so all you need to do is tick the “Enabled” tick box and click the OK button. You should now be returned to the main window with the two connections and the route shown.

NMEA Router Final Screen

If you now turn on the boat’s electronics, you should see data start to scroll down the window as it is received from the WLN10 and routed to the new VCP. If everything is OK, click File>Profile Save and all of your settings and connections will be saved, so that they automatically get applied when NMEA Remote is next run.

All that remains to be done, is to set your navigation software to look for data on whatever COM Port number the VCP created and set the baud rate so that it matches what you set in NMEA Router.

There are lots of other things that NMEA Router can do, for instance, it is possible to get it to automatically run when Windows Starts up, but that is outside of the scope of this blog post. NMEA Remote is pretty well documented and I suggest refering to the guide on Neil Arundale’s website.

Wireless OpenCPN

Wireless OpenCPN

 

We were recently contacted by a Korean Sea Captain who wanted to know why he could not get his iAIS to work with OpenCPN on his laptop. At first we assumed he was connecting through USB but then we found out that OpenCPN has recently introduced a completely new Data Connection module and now supports TCP and UDP network connections.

This is great news for anyone that wants to go wireless and after downloading the latest Beta release of OpenCPN V3.1.1328 we were able to hook up our iAIS and work out what needed to be done. As you can see from the screen shot above, we have setup a UDP connection (UDP supports multiple connections) on 169.254.1.1 Port 2000 which is the common network setting for all of our wireless devices.

It is possible to filter out particular NMEA sentences, which is what our Korean Sea Captain had done, but we recommend no filtering unless you know a lot about NMEA 0183 and have a particular interfacing requirement/restriction.

Once all of the settings are made in OpenCPN, scan for Wireless networks, connect to your wireless device and then OpenCPN will start to read all of the NMEA 0183 data wirelessly.

WLN10 software upgrade

For a brief overview of the recent improvements to the WLN10 including connecting to multiple iPhones and iPads have a watch of this very short video (1 minute, 40 seconds).

With lots of onboard systems using legacy NMEA 0183 data, Digital Yacht has devised a NMEA to WiFi adaptor – a small black box unit which converts traditional NMEA navigation and instrument data into a wireless TCP/IP feed.

Essentially, it creates a local “WiFi” hot spot on board your boat which your mobile device can access.  Many software applications allow data to be read through an individual TCP/IP port (eg. iNAVx for the iPhone/iPad) or our own SmarterTrack 2011 PC navigation software.  Users just tell the software to look for NMEA on the WiFi port and the mobile device becomes wirelessly linked to onboard systems.  It is a super product and a great addition to any system.

The WLN10 also provides an ideal solution for wirelessly enabling one of our AIT1000 Class B Transponders.  Couple a WLN10, an AIT1000/2000 and download our free iAIS app and you have the perfect onboard AIS transponder system with AIS target display also available on an iPad/iPhone.