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.
EDIT: SOLUTION FOUND:
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.
Added German guide.
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: https://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%3AUploaded...
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.)
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)
- https://diydrones.ning.com/xn/detail/705844:Comment:1094071 (Thanks Anton)
- https://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)
- https://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
Due to the outstanding work of Perecastor here: https://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.
Hardware - "Hack":
Use your PC - RC Transmitter Adaptercable as FTDI:
http://diydrones.com/xn/detail/705844:Comment:1252901 (Thanks Jan Boermans)
I referred to the pic for the hardwareflash http://diydrones.com/xn/detail/705844:Comment:1057796
It is absolutely neccessary to make the arduino stop talking during FTDI flash (they share the same uart line), otherwise it will never work. I tested it. The easiest way to stop arduino from interfering is to use eepromclear (arduino ide / examples/eeprom/eeprom_clear).
Yeah ! It's working, you were absolutely right, after an eepromclear (I think just an empty loop could be enough, not necessary to clear the eeprom) it's working !
Thank you Rob !
You are welcome! Thank you for your feedback! FTDI is the hard way but works everytime unless you have a real hardwareproblem (like a broken connection like i suspected). You can load other demo programs from the arduino ide instead of eeprom clear. They should just mute serial activity. I once tried examples/basics/blink - it does the job as well and you have a blinker :)
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?
Go tit - nevermind. Stupid user error.
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!
Ok, I will clean my initial question - post from the other firmware (AXN1.51_2722_3329_384.1151100.5.bin). First of all it is obsolete now and secondly it can just confuse people.
Cheers Kraut Rob
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!!
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.
Sorry to hear that!
I think there are general pitfalls.
1. RX/TX reversed (when flashing with ftdi)
2. GPS stays in binary mode (set by apm) even if apm is eeprom cleared until next powercycle of gps. Remove gps backup bat, if available.
3. Talk on the uart 1 line by apm and ftdi and gps, if apm is not eeprom cleared.
Perhaps one of these points can help you?
Another point to make, and I have no idea if this matters or not, but I made the change at the same time.
Originally I had unzipped the programs into a folder still in my Win 7 x64 downloads directory. I moved this folder to my desktop, and re-opened the software, right before the firmware update worked. Perhaps there are some protections in windows 7 that certain types of programs can't operate out of the downloads folder. Someone else had mentioned permissions being off, so that could also be it, or not.
Hi Rob, Thanks for the suggestions, I'm not using APM at this point, just trying to sort out the standalone GPS's that I have already. I have two adaptors which can switch the Tx/Rx lines around so have tested both.
Of the two that I can't flash, one connects with MiniGPS, shows date and time but doesn't respond to a version query, however shows legible GPS data at the bottom of the Setup window.
The other shows date and time, again no response to version query but NO GPS data at the bottom of the Setup window. Oddly it gets a 3D lock and works 100% with APM1 in a plane of mine and with Remzibi's OSD.
I really have tried everything to get these two to flash but no luck, even used 3.3V / 5V and checked continuity of the TX/Rx lines.
All three are now actually working, meaning navigating and providing GPS data to the OSD but I just can't flash two of them so I'm not going to spend any more time on them.
13th Feb 2011 - http://diydrones.com/forum/topics/mediatek-gps-not-working