Wiring up uBlox! (Only for PRO's)

Hello again! I'm not so good making intros, so imagine you just read a long and well redacted introduction of why uBlox (the best GPS ever) is so difficult to find and interface with (Specially the SparkFun version). So let's go to the point. ;-)If you are beginner please don't try to make this.Fallow this pictures in order to make the wiring (hurry!):

And this is an example of how to connect it to ArduShield, but you must configure the unit first! So continue reading for instructions.

You will need to configure uBlox module using U-center, only have to do it once, the settings will remain in the EEPROM forever. Download U-center from here and install it: sure you supply the unit with 3.3V and interface it using the FTDI cable. When you are able to see real time data with U-center, you are ready to proceed. Click here for a u-Center user guide.Now UBX has 8 Message Class, we only use "Class 0x01" called "NAV":

Each class has "Messages ID's", we only need 3 ID's of "Class 0x01", the ones marked with blue:

If you need more information about uBlox protocols please download this uBlox_Protocol_Specification.pdf.Everything else must be disabled. Now that you know what we are trying to do, lets go with a more detailed instructions:Go to Message View by pressing F9 (menu View->messages view):

(I'm using Paparazzi instructions but modified).1. Right Click on the NMEA Text on top of the tree and choose disable child messages2. Choose UBX->CFG->NAV5(Navigation 5) - set it to use Airborne 8 <4G. This tells the Kalman filter to expect significant changes in direction.Note that this setting is only good for faster moving airplanes. For a fixed position hovering heli, 'pedestrian' setting is better3. UBX->CFG->PRT - set USART1 to 57600bps4. Change the baudrate of U-Center to 57600bps if the connection is lost at this point5. UBX->CFG->RATE(Rates) - change the Measurement Period to 250ms This gives a 4 Hz position update since 4 x 250ms is one second.6. UBX->CFG->SBAS : Disable (SBAS appears to cause occasional severe altitude calcuation errors)7. UBX->NAV (not UBX->CFG->NAV): double click on POSLLH, STATUS, VELNED. They should change from grey to black.8. UBX->CFG->CFG : save current config, click "send" in the lower left corner to permanently save these settings to the receiver.You are done!! Now plug the GPS to your ArduPilot and fly like a PRO ;-)[UPDATE:]Another great way to do it:



E-mail me when people leave their comments –

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

Join diydrones


  • Developer

    Yes you can use it perfectly, but is to bulky :S. I have one... And the antenna is not working properly i guess. If you look into ucenter and you look for the antenna "analyzer" (something like that), mention something about been in short circuit. I don't know maybe i'm wrong.
  • Developer

    I guess because is the first GPS that fully supports Galileo Satellites (and right now is flying one), you can see it in U-center if you are in Europe. This module will become more accurate, that means is a good investment for the future. For R/C 4, 5 hz is more than enough. We are not flying missiles. ;-)
  • Jordi, I'm wondering if it is possible to interface this with the paparazzi 4-layer GPS board ( It takes a 5V input. The SPK board is tiny and looks promising, but that connector is just too flimsy for my comfort.
  • uBlox rock! If you guys really have trouble sourcing them you could order them from South Africa as well.

    I'm so,so glad the code will be implimented... I've been bugging chris and Jordi about it :) Rather a while ago..
    Keep up the great work!
  • One question is, why would we need a 50 channel gps reciver when it is like 20 in the space and we can only recive 12 of them from the ground?

    And the 10Hz venus gps would have very good accuracy, because

    If you fly 25m/s =90km/h then you have the position every 2,5m in the teori,
  • 3D Robotics

    Two things. First, you're right that your pattern is probably too tight for the EM406. Unless you're flying really slow in low wind, I think 100m between waypoints is the minimum. A faster GPS would indeed allow tighter control.

    Second, we can't confirm the 2 second delay in computation that Howard describes. That would mean missing two update cycles, and we don't see that in practice. (We do see a one-second delay, however, which is just lagging one update cycle)
  • So far I fly with EM406, and results are bad. I can't even make plane follow fixed course.
    Maybe that's because I want to use short distances (to see the plane and keep it in manual controll range), so distance from me is max 100 meters.
    The problem with EM406 seem to be low update frequency 1Hz, which means ~8 meters of fly distance per second at 30Km/h. At this frequency, it looks like impossible to tune any PID algorithm. And another possible problem is mentioned by Howard, delay in GPS computation.

    So now I'm hoping that using 5Hz GPS could solve the problem and my plane starts to behave better on short distances. Maybe I'll try this uBlox, Jordi where can one buy these?
  • Developer
    Greg Fletcher!

    I checked it, luckily the throttle servo is not using that variables. So the real definition is 80 and is used in the maximum throttle allowed in percent (80%). Thanks for that, the next revision i will change the names (2.2).

    At least in 2.2beta the Sirf and UBX is working fine. I just need to test NMEA, volunteers?
  • Developer
    Greg Fletcher!

    Great!!! thank you! That's a software error! :S For some reason is working....
This reply was deleted.