Getting NMEA GPS data in iSailor

isailor

If you have been using the iPad app ‘iSailor‘ for navigation (as I have), you may have seen the option to unlock NMEA positioning support. NMEA-0183 is a standard protocol used to communication marine information such as depth, speed, position etc. Most off the shelf GPS modules use this protocol as well. So I investigated how I could get my non-GPS enabled iPad (ie. non-cellular) receiving GPS data from another source.

To get GPS data into iSailor you could buy something like the Bad Elf GPS Receiver for $100, OR you could use a Raspberry Pi and your boat’s exisiting NMEA capable GPS, or a simple USB GPS dongle.

The method I used as a proof of concept used the following:

Steps:

Here are a quick run down of the steps I took. I assume a basic level of UNIX familiarity.

  1. Download the Raspbian image. Write the image to the SD card.
  2. Plug in the Raspberry Pi, and follow the configuration screens. I use the command line for the following steps.
  3. Get the Pi connected to your WiFi network.
  4. Download kplex using “wget http://www.stripydog.com/download/kplex_1.1-1_armhf.deb”
  5. Install kplex: “dpkg -i ./kplex_1.1-1_armhf.deb”
  6. Allow use of the Pi’s serial port. Edit “/boot/cmdline.txt” and remove reference to ‘ttyAMA0’. Also edit “/etc/inittab” and remove line containing ‘ttyAMA0’. Reboot.
  7. Physically connect the GPS module to the Raspberry Pi.serial_gps The minimum connections (in red) are power, ground and GPS Tx to Pi’s RX. Be sure your GPS module is 3.3V!
  8. Create the kplex configuration file: “/etc/kplex.conf” (see my example file below).
  9. Test you are revcieving data from the GPS using “sudo kplex file:direction=out”. The NMEA sentences should be spat out in the standard output. If not, try check the baud rate. Also try a reboot.
  10. Run kplex with “sudo kplex”.
  11. Purchase the NMEA GPS option in iSailor.
  12. Setup the connection from iSailor to the Raspberry Pi. Use settings that match the kplex configuration (TCP:10110).
  13. Hopefully now iSailor will show everything connected!

Here is the kplex config file I used (make sure you check the baud rate!):

[serial]
direction=in
filename=/dev/ttyAMA0
baud=57600

[tcp]
mode=server
port=10110
direction=out

Credit must go to stripydog for writing the wonderful kplex software. I plan to develop this project more and put it to use on my boat, perhaps even try send AIS information to iSailor. Stay tuned and please leave a comment if you found this useful!

Advertisements
This entry was posted in Sailing and tagged , , , , , , . Bookmark the permalink.

3 Responses to Getting NMEA GPS data in iSailor

  1. Pingback: Building a NMEA 0183 Wind Instrument | Mechinations

  2. Kim says:

    Hi,
    Your blog is great1
    I have RPI on my boat that i use to control the llights, however i would like it to also connect to the Raynmarine GPS, Windwane,depth sensor, speed sensor that came with the boat. Any idea how to do this? I think it is RS485 signal at 12V.

    • Tom says:

      Thanks Kim. You will probably need a NMEA multiplexer to connect everything. Something that can take multiple inputs and combine it all into a single output that can be sent to a computer. I’m working on something like this that can send my GPS, wind and AIS data to iSailor.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s