MediaTek MT3329 GPS 10Hz

I purchased this with full knowledge it wasn't ready to go out of the box. I'm starting this thread to consolidate efforts to utilize this GPS in the multiple projects here at DIYdrones.

I'm working with the UAVdev board and the MBED micro controller.

I have included the datasheets and associated documentation.

Here is a link to the USB installer software

*NOTE: Default baud rate is 38400 not 9600 as stated in the Datasheet.


Gtop MTK Module Design In Checklist -A00-20100323 .pdf

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

Join diydrones

Email me when people reply –


  • Thanks for the note. I was working with 9600bps and i almost blow my maid. Now my microcontroller's firmware works.
  • Can someone clarify the time field in the DIYDrones custom binary protocol? Looking at the doc, it's some kind of binary-coded time, but the AP_GPS_MTK16.cpp code treats it as a long integer and does some math. The comment isn't clear, but it looks like it's trying to convert the time to millisecond time-of-day. I'm not sure why they chose to do that. It's much more useful to have a full time from some epoch for later log analysis.

    The code does this:

    long time_utc = _buffer.msg.utc_time;
    long temp = (time_utc/10000000);
    time_utc -= temp*10000000;
    time = temp * 3600000;
    temp = (time_utc/100000);
    time_utc -= temp*100000;
    time += temp * 60000 + time_utc;

    It would be much easier to understand the final logged timestamp if the doc here was clear, but it seems unsure of itself, and what it's showing seems...lame.

  • Hi Guys/Girls

    I do not know how much you might be interested in this because you seem to do mostly embedded control of the MTK GPS, but my multiplatform opensource program BT747 might interest you.
    BT747 knows most of the MTK NMEA commands and it can fetch and upload AGPS data. You might not be logging data, but it is also built do download and convert logged data.

    You can check it out at
  • Is it possible to flash the diydrones firmware onto another MT3329? Since it could be out of stock for weeks I was thinking of ordering another one and flashing the firmware.
  • Ok, after playing around with the gps for a bit, i cant seem to find the answer to a couple of things.

    1. How do I convert the latitude and longitude back to signed floats? Are you supposed to know which quadrant of the earth your on before hand? Or is there an equation i can use that will convert 7209877, -4208473 to 72.09877,-4208473 . The lat and long decimal place wont always go in the same place depending where I am.

    2. Using the GPS_MTK library, initially the GPS speed is 1Hz. To bump it up to 10Hz i used the command "Serial1.print("$PMTK220,100*2F\r\n");". The google doc states that I have to change the checksum accordingly.
    How do I make the checksum, and then how do you set it? Im not quite sure how to use this site ->
  • Hello,

    I just purchased one of these with the shield from the store. I hooked it up to my ardupilot mega and loaded the example code. The blue status light on the shield is always blinking and the gps never returns anything other than 0's. Am I missing something here? Im only using the EM406 cable to connect to the gps shield to the ardupilot mega.


  • Regarding the MT3329 GPS, the DIYdrones store says the following:

    "Note that the new MediaTek has custom and exclusive 'DIYDrones' firmware that allows the unit to output an efficient and very compressed binary protocol. You can still change between NMEA and Binary protocol with standard MTK messages, and switch the refresh rate between 1hz to 10hz, or set any standard serial baud rate (by default is set to 38400 bps and custom binary protocol)."

    As I pointed out earlier, no documentation exists for this "exclusive" firmware with regard to the format of the "very compressed binary protocol." I'm curious how a small store like DIYDrones got the manufacturer to code an "exclusive" firmware version for them. Normally, it would require a very large quantity commitment on the part of the purchaser.

    Being somewhat cautious when it comes to certain kinds of claims, I'm curious to find out more about the "exclusive" nature of the firmware, who coded it (since it's probably not based on a RISC chip that DIY folks are familiar with, nor would they have the capability of producing a mask for it), and its origins. At this time, I have trepidation toward making purchases from the store. Some honest and open communication regarding these things will help change my mind (but please, folks... no speculation... we have enough of that already).
  • Admin
    Hi all,

    I ordered the MediaTek MT3229 Adapter board on Sat June 19th, but the DIY Drones Store sent me another MediaTek MT3229 GPS instead. I have contacted the Store customer return email address about the mixup, but so far no response!

  • Where is the documentation to interpret the binary messages the MT3329 is spitting out? The datasheet only includes the NMEA string output - not the 'compressed' binary data output.
  • Moderator
    Can I go ahead and order this with the assumption that the Ardupilot code will be soon be ready to utilize it?
This reply was deleted.