Mediatek binary output with 1.6 firmware

Has the binary format changed with the new 1.6 firmware? I've been digging through this forum trying to make sense of the binary output I'm getting which does not match the protocol as described in the doc linked from the store. I think I might just be looking at out of date docs..

The code in the arducopter tree has two versions of the binary parser, AP_GPS_MTK16 and AP_GPS_MTK. I assume AP_GPS_MTK16 is for the 1.6 firmware..

The older one uses:

enum diyd_mtk_protocol_bytes {
                PREAMBLE1 = 0xb5,
                PREAMBLE2 = 0x62,
                MESSAGE_CLASS = 1,
                MESSAGE_ID = 5
 };

and the newer one:

enum diyd_mtk_protocol_bytes {
                PREAMBLE1 = 0xd0,
                PREAMBLE2 = 0xdd,
 };

 

I've checked my device and it's using the 1.6 firmware, and this looks like it might explain why I am not seeing the expected header in the binary output (I was using the google doc linked from the store as reference for the protocol which shows what I think is the older header)

Is the AP_GPS_MTK16 the best source for documentation for the protocol? Am I missing something?

Also, I am assuming the behavior for the receiver is it starts up in binary mode, 10hz refresh at 34800 baud rate. Is that correct? I've successfully changed it to nema and such, does it reset when powered off, so the change commands need to be sent each time it is powered on if I want something other than the default?

 

Thanks!

Ryan

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

Join diydrones

Email me when people reply –

Replies

  • Hey all,

    Thanks for the information! I've got everything up and running. I tossed it all into the truck and drove around, the accuracy looks great (<3 meter error). You can tell which spot I parked in :) It appears the accuracy improves with time after a lock is obtained. Is there a value I can look at to get an estimate on the error? It would be nice to know. It looks like (in the vanilla data sheet) dgps is enabled by default. Is that correct? Don't see any reason not to have it running.

     

    Perhaps I should clean some of this code up and post it? For people who want to use this receiver with a Uno or similar maybe it'd be helpful to have a starting point.

     

    Thanks again,

    Ryan

  • Also, I am assuming the behavior for the receiver is it starts up in binary mode, 10hz refresh at 34800 baud rate. Is that correct?

     

    No. Power up is NMEA. During initialization the ArduXXX commands GPS to binary @ 10Hz.


     

     

    3692168692?profile=original


  • 3D Robotics
    Sorry, the store listing had the old protocol. I've updated with the new one.
This reply was deleted.

Activity