3D Robotics

Tutorial: Programming your uBlox GPS module

Although you can buy the uBlox modules pre-programmed from the DIY Drones store, you may want to do it yourself, either because you want to update the firmware or change some settings, or because you've bought the module from Sparkfun because we were out of stock and you need to set it up to use with ArduPilot.

Here's a simple tutorial on how to program your module (it replaces this older tutorial):

First, you'll need the DIY Drones adapter if you don't already have it.

You can use our GPS-to-FTDI cable to connect this directly to your PC, or make your own.

If you're going make your own, solder a four pin header on the pins below the GPS connector on the adapter, as shown above. Now connect it to your FTDI cable, with the pin mappings shown above. I use jumper cables and a six-pin breakaway header for this, as shown below, but you can use any method you want, including making a custom cable, which is the neatest method if you plan to do this more than once:

Jumper wires connected to six-pin header:

Header plugged into FTDI cable:

Once you've made the physical connections, download and install the U-center software from uBlox. (It doesn't work on Windows 7, so if that's what you're using, open a virtual Windows XP mode window to run the software in. You'll also need to "attach" the FTDI USB serial ports, which you should be pretty familiar with if you use virtual XP mode).

Now run the U-center software, selecting the Com port that your FTDI cable is attached to. You also need to tell it what baud rate the GPS module is running at. If you got it from the DIY Drones store, it's 38,400. If you got it from Sparkfun, it's probably 9,600:

You can tell if it's working by going to View/Binary Console. You should see the data flowing through. Also, the icons circled below should be green or flashing green (it's not showing a sat lock because I'm indoors):

If it's not working, check these things:

1) Did you wire it up right?
2) Did you select the right Com port?
3) Did you select the right baud speed?

If you want to update the firmware, you can get the latest uBlox firmware here. Use the one for the "LEA-5H" modules.

To flash the new firmware go to Tools/Firmware update. Make sure the firmware image points to the file you downloaded and unzipped.

To configure a module to use with ArduPilot, download this file.

Go to Tools/GPS configuration, and select the file you just downloaded. Check the "Store configuration..." box and click on "File >>> GPS".

If you were communicating with the module at any speed other than 38,400, you'll find that the configuration process will fail midway through. That's because it's just gotten to the bit that changes the communications speed to 38,400. Set your u-center com speed to 38,400 and run it again. It should work this time.

When you're done, go to Receiver>> Action>> then click Save Config. Otherwise, every time you unplug your gps, it will revert back to the original configuration.
E-mail me when people leave their comments –

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

Join diydrones


  • I have been told that GPS config is automatically done in pixhawk now, is this true?

  • +1, looks like the config file on the 1st page is 8 years old and for 5 series gps, what about M8N gps configuration and pixhawk? tia

  • Hello,
    then the guide is perfect, but one thing I wanted to ask.
    To upgrade the firmware for the M8N ok, I donwload  the firmware and update it, but I read the guide that you need to configure the module for use with ArduPilot downloading the files that I think is not good for GPS M8N.
    Gotta have it or just update the firmware?

    Thank you

  • ubx cfg ( config) gnss (gnss config)

    no satellites, no signal.
    test console displays nothing.
    can someone help?


  • Hello. I'am looking for a set of configuration text files for my NEO-6M.
    Can anyone help me with it?

    The only one I can find is suitable for Ardu with UBX and 38400.
    I am actually looking for NMEA protocol.

  • How you can change the settings of 9600 baud to 57600 baud?

  • hello,
    I'm using the Lea-4T Ublox in UCenter and will not let me put it to 57600 baud UBX. In UBX only works to 9600 baud. Why?


  • Note that the FTDI to GPS connector has the wrong/older/larger GPS connector on it.  So even though I bought that cable, I will need to make my own - luckily the GPS comes with a cable that is not needed, but has the correct GPS connector.

  • Chris, this might be what you're looking for:


    It's a config specifically for the NEO-6.

  • So i want to use my neo6 U blox, from a multiwii project on my new apm2.5 will i knoe i cant flash the neo6 but i can change the config i used the ublox center and my 3dr ftdi cable to upload the old 5 config file with the error of course, it did change the baud to 38 so i know that side worked and i got a lock but there is some talk about 4hz getting halved with the update on the newer 6 etc. So is this old config file still the best to be using and is there a way to verify i have the best config ie 5hz vrs 2 hrz?

This reply was deleted.