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

Comments

  • Also might be helpful to add the config file to the wiki's downloads section.  Did not see it there.  And I will copy this to the wiki if you are comfortable giving me editing rights.  Thanks!
  • Nice tutorial!  And thanks @Matthias your change worked for me. 

    If you update to latest firmware (6.02 at this point) the configuration update will complain as it was written against 6.00.  I would guess you could ignore it, but it would be nice to update the config file so it tracks ublox firmware version.

  • ok, I have interfaced the ublox to ArduIMU v181 with success and i see time (time of week). But how does it receive that from the ublox, i.e. what setting in ucenter?
  • Before and after the upload of DIY drones settings I have observed the following. Before, ucenter gets all the info it wants to dosplay satellite info but after, I do notice the absence of data needed for ucenter to plot sats, etc.I know we may not need that sat stat info for Ardupilot to work. You can verify that lat long etc is coming in by viewing the binary messages window.I have not verified that the UBLOX with the DIYDRONES settings will work with the ardu boards, but I believe it will based on the success of this tutorial- i am not doubtful. However, the one variable I would have guessed isnt present or activated under the DIYdrones UBLOX settings is time , such as TOW Dont we need that??If not from the the UBLOX UTCtime or GPStime then from where? Am I missing something?
  • flying toh,
    are you talking about this file?
    https://api.ning.com/files/IP6T9fK7m8qm3PR0B3N9atWo7rKrdPndUAyasRRiA...*6a5yX*x3t7V2CQRJF-up3zo/ublox5_helix_v11.txt
  • Do you guys know which pde file under the megaboard folder is used to edit GPS codes?
    Coz when I used patrick's code alone, the GPS works perfectly, but when i load the default folder, the GPS doesn't work.

    May i enquire which file is to enable/edit the GPS config or can we add patrick's code into the file? if so, which file and which line? TIA!
  • Chris thanks for the information, what about the thing about checksum error is that normal?
  • 3D Robotics
    The DIY Drones firmware doesn't report # of sats. We don't use that info. If there were enough demand for it and a reason to include it, we can always change the firmware to add that. But we were just going for a minimal set for processing efficiency.
  • I'd the ublox for a quite some time after all I used the manufacturer program to upload firmware 6.0 and configuration
    so the values appears immediately after start the serial monitor
  • hey andre, when u uploaded the GPS_UBLOX_test to arduino, did the values for the gps appear immediately or after some time?
This reply was deleted.