A new rock-solid GPS parser for ArduPilot (or any Arduino)

Our alpha ArduPilot code has an okay GPS parser, but like all of them based on ASCII NMEA sentences, it's slow and doesn't handle errors (corrupted data) very well. We've now done a lot better. Here's Jordi's new Arduino GPS parser, which will be in the next version of the ArduPilot code and has the following features:

--Reads the data in Sirf 3 binary mode, not ASCII NMEA sentences.
--Autoconfigures your GPS module to go into binary mode.
--Parses the GPS data and stores it in variables, including conversion to decimal degrees for gps data, and other stuff such as GPS status, lat, lon, MSL altitude, heading, speed over ground, and climb rate...
--Super fast decoding and transmission at 57600 bps...
--100% Checksum verification..
--Status LED, connected directly to the GPS fix status..
--More or less commented ;-)

You can download the code and run and test it now, or integrate it into your own projects.

Lots more cool improvements coming to the ArduPilot code, including better navigation routines and interrupt-driven RC channel reading. We've still got some work to do on the boards (the current one has got a problem with noise and current fluctuations when we're moving the servos, so we've got to add some diodes and capacitors), but we're getting there. Still on track for a September release, one way or another.

Views: 1775

Comment by Phil Wilshire on August 11, 2008 at 4:18am
Cool stuff Both of you.
Keep it up.
Comment by Tom in ON on August 11, 2008 at 10:43am
"We've still got some work to do on the boards (the current one has got a problem with noise and current fluctuations when we're moving the servos, so we've got to add some diodes and capacitors), but we're getting there"

How does it look? Will Version 3. of the Autopilot board be still usable (with modifications) or need to get a new board?

3D Robotics
Comment by Chris Anderson on August 11, 2008 at 3:21pm
Tom,

Hard to say. The safest approach is to wait a month or two until we release the production boards, pre-made. If you're a little more adventurous, you can make the one you've got and we'll try to work you through any issues you may encounter. Although there's no guarentee it will work perfectly in the end you'll at least learn a lot about Arduino/embedded programming and fully embrace the diy spirit ;-)

For the rest of you, our advice is to wait until we've certified a board as rock solid and ready for all makers experienced or not.
Comment by Tom in ON on August 11, 2008 at 4:42pm
Thanks for the great work you are both doing. Looking forward the completed board.
Comment by dincer hepguler on August 12, 2008 at 6:06am
thx Chris,
we appreciate your and jordi's efforts very much... i was hoping to make the first working member board... sigh... all my components are ready and waiting for the board this week to arrive. i was anxious to solder it at once and test the pre-alpha code... yours is bad news for me... :(

3D Robotics
Comment by Chris Anderson on August 12, 2008 at 3:42pm
Sorry dincer, we're working hard to make these boards as reliable as possible before we offer them for sale. In the meantime you can always run the code on a decimila or proto board.
Comment by dionh on August 21, 2008 at 12:50am
Hi Chris,
Do you know if the U-blox LEA-5H will work with the Sirf 3 binary mode parser in the ArdunoPilot code, it seems to me it's got
it's own Binary Protocol.

3D Robotics
Comment by Chris Anderson on August 21, 2008 at 5:32am
Dionh,

I'm afraid I don't know. We don't have one of those to test.
Comment by Peter Jansen on November 21, 2008 at 4:11pm
Seems to me that using SiRF binary protocol does not offer much over NMEA, the check sum of the binary message is 15 bits vs 8 bits for NMEA message check sum (and is not a CRC), although because the NMEA message is all ASCII this is another check. NMEA has similar start and end characters.

Why is the increased speed needed (57600) an advantage? You get enough NMEA messages from a GPS at 4800 bps to tell where you are with 1 second updates.

Ths SiRF binary protocol locks you into SiRF gps's, all binary protocols are different, Garmin, Motorola, UBlox Trimble etc, why not stick to NMEA which most gps's output?

3D Robotics
Comment by Chris Anderson on November 21, 2008 at 4:35pm
@Peter. Less processor overhead is the main reason. We're trying to save as many cycles as we can, and ASCII parsing takes time.

Comment

You need to be a member of DIY Drones to add comments!

Join DIY Drones

Social Networking

Contests

Season Two of the Trust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.

A list of all T3 contests is here

Groups

Advertisement

© 2013   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service