Hi !!

I am currently messing around with MTK GPS stuff and the binary protocol.

Assuming my APM2.0 GPS has the 1.6 loaded, i want to upgrade the GPS FW. Since the gps is directly mounted to the mainboard i don't know how to do it.

The APM wiki http://code.google.com/p/ardupilot/wiki/MediaTek gives no hints.

Please help!

So long

Kraut Rob


UPDATE 12/28/2012

I included a zip file with all the needed files and a complete guide below.

It contains basically the same files than the previous version but an extended guide and the source code.

UPDATE 12/28/2012

Added German guide.

UPDATE 19/01/2013

FTDI Hardwareflash on APM 2.0 (Set your FTDI to 5V, if you have one of these Breakoutboards)

1. Download the zip below to have all the files needed - and a flashguide.

2. Load MP and save all your parameters to a file (if desired).

3. Do Arduino / eeprom clear on your main CPU so that no serial traffic can disturb the process. Do not omit this step. It won't work with the arduino still talking on the serial line - i tested it. P.s. You can also use the precompiled hex from my post here: http://diydrones.ning.com/xn/detail/705844:Comment:1094234

4. Unpower APM for soldering. If FTDI connection is already established, powercycle to reset GPS to its' default state.

5. Locate the external GPS port (UART1). If you have not the right plug (like me) you have some solder pads right behind it. You will need GND/RX/TX. Look at this picture for the right connection: http://diydrones.com/forum/attachment/download?id=705844%3AUploadedFile%3A1057797

Note: I labeled RX and TX relative to the GPS not the CPU (like printed on the PCB). I showed 3 points where you can get access to the important datalines, besides the obvious connectionport (that would be number 4:)).

6. Power APM Board, fire up the flashing soft and follow the documentation -> Point 8 in MTKFlashGuide2.pdf or point 7 in MTKFlashGuide2German.pdf. Reading the complete pdf is also ok.

7. Reload Arducopter FW on mainboard and reload your saved settings (if desired). Perhaps recheck calibrations (ACC etc.)

8. Done.

UPDATE 21/01/2013 - 02/03/2013

Here is a Must Try List - if you have a persisting flash problem (Thanks Anton for the idea)

- http://diydrones.ning.com/xn/detail/705844:Comment:1094071  (Thanks Anton)

- http://diydrones.ning.com/xn/detail/705844:Comment:1094290  (Thanks William Stoner)

- http://diydrones.com/xn/detail/705844:Comment:1097033       (Thanks Isaac)

- http://www.diydrones.com/xn/detail/705844:Comment:1097725 (Thanks Chris Webb // Mac running VMWare WinXP)

- http://diydrones.ning.com/xn/detail/705844:Comment:1140259 (Thanks "exaustgas" // Win serial port)

- http://diydrones.com/xn/detail/705844:Comment:1146635 (Thanks Cody // serial port in flashutil config)

- Try to rule out a driver/win firewall/administrator/viruskiller thing

UPDATE 02/03/2013

Due to the outstanding work of Perecastor here: http://diydrones.ning.com/xn/detail/705844:Comment:1149155

We have a French guide now as well !!

I took the liberty to put it here as well.

UPDATE 21/05/2013

Hardware - "Hack":

Use your PC - RC Transmitter Adaptercable as FTDI:

http://diydrones.com/xn/detail/705844:Comment:1252901 (Thanks Jan Boermans)






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

Join diydrones

Email me when people reply –


  • do i use 3.3v or 5v logic levels if i'm updating via an ftdi adaptor?

  • Having now upgraded my GPS 3329, great write up Kraut Rob, thanks for the information which made for an easy upgrade.

  • Hi Rob,

    I tried both of the contained firmwares (AXN1.30 and AXN1.51) but the Baudrate is always 38400,

    verified with MiniGPS_1.4, which displays the right Version numbers.

    What needs to be done to get 115200Baud and 5Hz as default ?


  • Thanks to all who have put in the effort to figure out this GPS and how to flash it.

    I was having the worst time getting the GPS to flash.  Have an APM 2 with on board MTK.

    Tried the crashpilot programs first, no luck there.  Could get MiniGPS to connect, but GPS wouldn't flash, just getting the BROM Fail error.

    So I soldered on a 4 pin header to the UART1 behind the small external gps connector.  Attached an FTDI cable there, RX to TX and TX to RX and ground, then powered via USB.  Uploaded eeprom clear program.  Could again get MiniGPS connection this method, but couldn't get firmware upload.  This time however, upon fail, either the GPS blue light (GPSfix) would either fix on solid, or turn off completely.  MiniGPS would no longer connect at this point.  A power cycle would fix everything. 

    Finally got frustrated.  Once the first flash attempt would fail, blue light on solid, tried a few more times without powering off, and finally it made the connection.  In this I also disconnected and reconnected the RX/TX while hitting download, right after, etc  Somewhere in all this it worked.  I guess the magic is to try lots of times and finally (hopefully) your GPS will take the new firmware. 

    Looking forward to giving it a spin. 

  • Moderator

    FWIW, I managed to unbrick my one standalone Mediatek GPS that has been "bricked" for over a year after accidently flashing the wrong firmware. Basically, in the PowerFlash program I hit the download button first and only AFTER that plugged in the GPS, why it worked I have no idea but there you go.

    The other two I have work fine, (get 3D lock, output GPS data) but WILL NOT flash, and I have tried EVERYTHING!!

  • Developer

    I'm planning to put a link to this blog post in the 2.9 release discussion that'll go out tomorrow.  So I expect a good number of people will come here looking for how to upgrade their mediatek!

  • Finally got around to trying to update my MTK 3329. I have the JDrones one separate from the APM 2 board. I can connect with an FTDI programmer and adapter and can talk to the chip with MiniGPS. The version it reports is AXN_1.51 2741.


    If I try to program it with Flashtool v1.0.0 from the zip that was posted, it gets to about 36% and fails with a message:"Fail!!(Download) BROM_DOWNLOAD_DA_FAIL.

    Any suggestions? Is there a different flash tool to try?

  • Hello,

    I need a little help, I tried to flash my MTK GPS of my APM 2.0, with no success.

    I tried to flash my GPS using :

    - my APM 2.0 and UpdateGPSBlinky.hex (updloaded with MP or compiled / uploaded with Arduino), no success.

    - FTDI connected to UART1, no success.

    - Above methods with jumper between +5V and RST pin, no success

    - I tried to change some timeout in Powerflash.ini, no success

    Failure come with the following message in FlashTool V1.0 :

    [Flash Download]
         Fail!!(Download)   BROM_CMD_START_FAIL
         Take(3) secs to test.

    Each time (with both methods) I managed to get a connection using MiniGPS_1.4.exe, and I saw NMEA log in Setup tab of Mini GPS, but strange thing I never manage to get the GPS Version number in About tab after pressing Query button.

    Any ideas ?


  • Hi Robert,
    I haven't tried yet, but either way thank you very much for the great contribution and the extended and detailed handbook.
    Guten Rutsch!
    Happy new year!

  • Feeling dumb, but I have been away a while (no flying, rain, rain, rain) so going to ask some basics:
    I have 3 APM 2.0 units, all with on board GPS disabled. On one I have the 3DR UBlox, on one I have the JDrones external MediaTek GPS, and the third has the new version of the 3DR Mediatek. What version of the firmware is the best bet for the two Mediateks?
This reply was deleted.


DIY Robocars via Twitter
DIY Robocars via Twitter
DIY Robocars via Twitter
May 13
DIY Robocars via Twitter
RT @f1tenth: Say hi to our newest #F1TENTH creation for @ieee_ras_icra next week in Philly. It’s going to be huge! 😎 🔥 @AutowareFdn @PennEn…
May 13
DIY Robocars via Twitter
May 11
DIY Robocars via Twitter
May 8
DIY Robocars via Twitter
RT @SmallpixelCar: Noticed my car zigzagged in last run. It turned out to be the grass stuck in the wheel and made the odometry less accura…
May 8
DIY Robocars via Twitter
RT @SmallpixelCar: Test my car. RTK GPS worked great. Thanks @emlid for their support. https://t.co/EkQ6qmjmWR
May 8
DIY Drones via Twitter
RT @chr1sa: @kane That's @diydrones circa 2009. Still have a box of those Canon cameras that we used to strap into planes, just like this.…
May 3
DIY Robocars via Twitter
RT @chr1sa: Our next @diyrobocars race is going to be outside at a real RC racetrack in Fremont on May 28. Fully autonomous racing, head-to…
Apr 30
DIY Robocars via Twitter
RT @f1tenth: Our Spring 2022 F1TENTH course @PennEngineers is coming to an end with a head-to-head race as a big finale. So proud of our st…
Apr 26
DIY Robocars via Twitter
RT @DanielChiaJH: I wrote a thing! Throughout the development of my @diyrobocars car I've been using @foxglovedev Studio to visualize and d…
Apr 23
DIY Robocars via Twitter
RT @SmallpixelCar: My new car for high speed. Low body, everything ( @NVIDIAEmbedded Jetson Xavier NX, @emlid RTK GPS, IMC) under the deck…
Apr 23
DIY Robocars via Twitter
Apr 21
DIY Robocars via Twitter
RT @f1tenth: F1TENTH Race training setup @PennEngineers for our upcoming ICRA2022 @ieee_ras_icra competition. @OpenRoboticsOrg @IndyAChalle…
Apr 21
DIY Robocars via Twitter
RT @fatcatFABLAB: Proud to be hosting a restarted DIY Robocars NYC Meetup April 26. Come by if you want to talk about and race self-driving…
Apr 17