Hi Ardupilot experts,
It has been a month now since I have started exploring the APM2.5, uploading official firmwares, unofficial ones and making my own code with Arduino IDE. Everything was fine since my last upload ( just disabled dataflash logging and CLI to reduce memory usage)...
At that moment the APM2.5 was plugged to the ESC and RC receiver (no battery).
I opened Mission Planner to do some calibration routines ==> connection failure!
Tried to upload the MP official firmware ==> "Connection error: no connection"
Tried several other methods to upload .hex file (like using Xloader) but to no avail.
So, here are some diagnostics that can be useful to help me find a solution:
-When trying to upload using Arduino IDE, the following verbose is displayed:
Using Port : \\.\COM2
Using Programmer : wiring
Overriding Baud Rate : 115200
avrdude: wiring_open(): releasing DTR/RTS
avrdude: wiring_open(): asserting DTR/RTS
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmeravrdude done. Thank you.
NB: the RX LED blinks after each timeout
- When the APM2.5 is plugged to the PC, only the green LED is ON, no other blinking or SOLID LEDs.
- Connected to hyperterminal, when I am typing, the RX led blinks
- Connected to the RC transmitter TX and RX are blinking rapidly
- When uploading from MP or Arduino IDE, no RX nor TX LED blinking ( like nothing is happening).
- Tried to measure the regulator (TPS79133) voltage, it is ok: 4.9V
- Changed the USB cable
- Verified that I have only one COM port used, the ArduinoMega 2560 one.
- But when I double click on the COM port in the device manager, then "advanced", I find that the default baud rate is 4900 instead of 115200. I changed It, retried to upload, but to no avail. Rechecked the baud rate, and its back to 4900 again. I not sure if this is a real problem or not.
- I have also changed the board to the DFU mode, reuploaded the latest ArduPPM_v2.3.16 to the ATMega32U2 successfully
After looking here and there on the internet, I think it's most likely a bootloader issue (found here the article).
Finally, before ordering the FTDI to usb and the AVR programming to burn again the bootloader, can anyone confirm that it is a bootloader problem. If not, is it a hardware one or anything else. I would like also to know the reason behind this "blackout".
Thank you.
---------------------------------------------------------------
(Edit)
[Solved]
This was a bootloader problem. I have just re-burnt it using an Arduino Uno, as described in this tutorial.
I have used the same bootloader available in the tutorial.
According to this discussion posted by Julien Dubois, this happened because of sketch size: the real maximum sketch size is 241k, however, the Arduino compiler strangely allows up to it 258k!
Thank you Julien For your help.
Replies
Safwen you said:
No that is not right, it should be 3.3v as TPS79133 is 3.3 volt regulator so it looks like you have blown your regulator and after that maybe all other 3.3v components too. For example MPU-6000 data sheet says that absolute maximum voltage is 3.6v but I have seen working MPU's even with 4.6 volts so maybe, just maybe it's not all lost.
yes Jani, you are right, I have rechecked the datasheet and it's 3.3V.
I have already ordered a TPS379133 from the beginning of the week, because during previous tests I have noticed that i have a "Bad gyro health" message, and I have found that changing the regulator should solve it.
Now I hope that I didn't loose the board. I will replace it and see.
Thank you
Hello,
I've already break an APM bootloader by loading a too big firmware.
The limit is actually about 242kB and not 248...
Well, I had made a topic there when it happened and your're right, you need that programmer to reload the bootloader. You'll have to solder the 6 FTDI pin on the APM to connect your programmer.
So, read this whole topic, that should help you:
https://groups.google.com/forum/#!searchin/drones-discuss/bootloader$20apm/drones-discuss/zLFmMlS02ME/HbuoKdx-byAJ
Unfortunatelly, I'm not home and can't give your every tools/firmware/bootloader to reinstall it but you've find everything on Internet.
Good luck
Julien
Thank you Julien for your answer, it seems that we have exactly the same problem.
I have found this tutorial showing how to reburn the bootloader to an ATMEGA2560 using an Arduino UNO. Do you think that should work correctly with the APM 2.5?
Thank you
Safwen
Safwen,
it depends on which programmer you want to use.
I've managed to reload the bootloader using AVR ISP MKII programmer and ATMEL Studio.
The .hex I used is located in the arduino folder and named stk500boot_v2_mega2560.hex
It's quite easy with this tool.
Here the ISP connection for APM
Julien