3D Robotics
3689349957?profile=originalAlthough we recommend the uBlox GPS module and adapter we sell in the DIY Drones store, which is solid and easy to set up, ArduPilot can support any GPS module in NMEA mode. The tricky bit, however, is usually the connector and programming it to the right baud rate and other settings. Although every GPS module is different, here's a tutorial for two common ones that may help you with others.

First, here are the pinouts for the EM406 connector that we use (pins 5 and 6 are not used):

Option One: Locosys 20031

One excellent module is the Locosys 20031 that's sold by Sparkfun (it's also the module used by AttoPilot). To connect it to ArduPilot, solder wires to the pads on the board as shown here:

Once you've got it soldered up, you need to program it for the right baud rate and 5Hz update rate. The best way to do that is to get a GPS adapter from the DIY Drones store and solder on a four pin header on the spare pins. Then connect them to your FTDI cable with jumper wires and another header, as shown here:

Now plug the Locosys into the GPS adapter and follow this tutorial to reprogram it.

In the ArduPilot code, you'll need to change the configuration file to tell it that you're using the Locosys. Change this line to 0, as shown:

#define GPS_PROTOCOL 0 // 0 = NMEA, 1=SIRF, 2=uBlox, 3 = ArduIMU, 5 = Simulated GPS mode (Debug)

Option Two: Paparazzi GPS module

Another GPS module you can use is the Paparazzi one (which is also a Ublox 5). Here's how to connect it:

Once you're done, use the same adapter board connection shown above and follow this tutorial to reprogram it for ArduPilot.

You can leave the ArduPilot configuration file in its default setting of 2:

#define GPS_PROTOCOL 2 // 0 = NMEA, 1=SIRF, 2=uBlox, 3 = ArduIMU, 5 = Simulated GPS mode (Debug)

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Sorry!!

    Made a mistake here. The connectors are not Hirose DF13. (I ordered some and they don't fit perfectly.)

    I have looked into it further and it seems that the connectors are Molex Picoblade. I have orderes these now and will confirm when I receive them.

  • Here are the Hirose DF13 plugs for APM and PixHawk. As you see it's just the ground pin that is different. You can buy the housing at DX.



  • very old post


    can anybody define the  nmea sentences that the arduplane needs to have from the gps receiver? i am going to use a ''4th party'' receiver (none of the above) and i have to configure the nmea output throught plenty of available nmea sentences. 

    thank you

  • Thanks. Now is it Tx to Tx and Rx to Rx or Tx to Rx and Rx to TX as with the telemetry?

  • Hi Jeff, very cool, thank you very much!

  • Wiki Ninja

    Hi Markus - I too had an unusually hard time figuring that out. I made this annotated excerpt from the Eagle files for APM 2.5.


  • Does anyone know the pinout of the "New Style GPS port" on APM 2.5? It has 5 pins instead of 6...

  • i have a similar question as Richard, i am working with the Venus GPS by Skytraq


    however it doesnt come with EM406 connector, is it safe to connects its GND/TX/RX/3.3V (VIN) to the pins right behind the GSP/UART1 as Fab said?

    and because it said 5V on APM2 do i needed to drop the voltage using resister or something first?

  • Sorry to drag up an old post but isn't the Locosys 20031 a 3.3v GPS? I thought the ArduPilot gave out 5v on the GPS pins? I don't want to fry the GPS.

  • I think the pins match the original cable order. so you can either solder pins into the holes and then solder the gps cable wire to the pins or you can solder the cable directly to the pin holes.


    or you can buy the ublox adapter from diyD store which I think gives a set of matching pins and an alternative socket

This reply was deleted.