Hi everyone,

Sorry if this seems a question with an obvious answer but after playing with it for a few days I've had no luck.

The problem is that I would like to use the GPS data from a UBlox connected through an Ardupilot, but to upload my own version of Ardupilot software to it.

I was under the impression that to do so I would need to have the UBlox output NMEA data as opposed to UBX. Through the use of the UBlox passthrough firmware which is loaded through the APM Planner, and the u-center programme, I've been able to achieve this.

However when I subsequently upload software to other utilise this NMEA data, no data can be displayed. This is presumably as the firmware uploaded previously has been replaced, meaning that that UBlox can no longer provide GPS data outside of the APM Planner. Is there a way around this?

I've been trying to get this to work using the TinyGPS example code exactly as is, besides the changes of 

SoftwareSerial ss(4, 3);

going to

SoftwareSerial ss(2, 3);

and with the baud rates changed from 115200 and 4800 to 38400.

The serial monitor displays the following once the code is uploaded:


Any help would be hugely appreciated.



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

Join diydrones

Email me when people reply –


  • There are always 101 ways to do things, but here is what I would think about: 

    Don't touch anything with the gps or the default configuraiton.  Instead use the APM library of code (which the APM firmware is built on) to read and report the gps.  You could write a simple main program (or edit/adapt the APM main program and just cut out what you don't need.)

    From my vantage point, the binary UBX protocol is faster and more compact, but it is a bit more work (programmatically) to parse and read ... but the APM library takes care of all this work for you already.

    There's no reason you couldn't configure the gps to work in NMEA mode and write code to read and parse that format as well, but I think it would actually be more work for you in the long run because the APM Library code already gives you everything you need to easily read the binary protocol.

    One disclaimer: all the HAL work over the last year or two adds an extra layer of indirection and I haven't looked closely at the APM code since those changes were introduced ... but hopefully my advice isn't too dated ...

This reply was deleted.