Hi I was wondering if it's possible to receive NMEA data from a Garmin GDL 39 on an Android device (preferred over Bluetooth) as I can't find any information out there on it.

  • $\begingroup$ Hi, The user manual for the GDL 39 shows that the device has Bluetooth, but I can't find a description of how to connect to it outside of the Garmin Pilot app. You might be able to still get NMEA data over serial, but it looks like a lot of work. What's your use case? Do you have to use a GDL 39 exactly, or do you just want NMEA data into an Android app? $\endgroup$ – Tyler Jul 27 '20 at 22:05
  • $\begingroup$ Thanks for the information, that's similar to what I was able to find. I know one of the updates states that it fixed something for NMEA to iOS but no other information. Gdl 39 exactly, the application is setup to read NMEA over Bluetooth and does for a lot of Trimble devices which is an easy configuration of the device but a client is wanting to use our application in a helicopter and has the gdl 39s already. $\endgroup$ – pwned555 Jul 27 '20 at 22:43

Well, I think there's a way. Fair warning, it also looks like a fair bit of work, and I haven't tried any of this. Plus, you run the risk that the GDL 39 is going to refuse to connect or do something really weird or otherwise break/invalidate user agreements/warranty.

The user manual for the GDL 39 shows that the GDL 39 has Bluetooth, and this website purports to know the communication protocol and handshake sequence, with code for getting it to work written in Perl. Getting that to work in an Android application shouldn't be impossible, but I haven't looked at it thoroughly and I'm not enough of an Android expert to tell you if it would work off-hand.

You could also go over serial as an option to get NMEA data, which I investigated before I found the website above. I think the Bluetooth option is better, but here's the physical method since I already wrote it up.

You will need a cable like the one here to connect to the GDL over serial. From there, you'll also need a device to take the serial data and get it into the android app over Bluetooth. Here are a few options:

  • An Arduino or other micro-controller to handle the serial connection to the GDL 39, and then re-broadcast the NMEA data over a Bluetooth connection.

  • A ioio (pronounced "yo-yo"). Allows you to control a micro-controller with an android application over Bluetooth or via USB. I've used one before, and it's pretty easy to get running, but is a little old. Support still exists for it though.

Your next problem is to actually communicate with the GDL 39 over serial, which will be more complicated. The GDL 39 appears to have a proprietary handshake protocol over serial, which in theory, should prevent you from using a non-Garmin device to get any data over serial. However, in practice, it may not be hopeless.

This website describes the handshake protocol to negotiate a connection over serial, and data from the GDL 39. I haven't tried to do this, but it looks like it might work. If you can get that to you work, it seems like you'll get a stream of NMEA data, and then you could send it over Bluetooth to an Android application.

  • $\begingroup$ Thanks for the reply Tyler. When seeing the amount of work required we ended up going with a different GPS device that directly exported NMEA data over Bluetooth. $\endgroup$ – pwned555 Feb 3 at 20:20
  • $\begingroup$ My pleasure. Glad it worked out. $\endgroup$ – Tyler Feb 4 at 21:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.