[Solved] APM 2.5 Connection error - Bootloader problem

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 programmer

    avrdude 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.

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

Join diydrones

Email me when people reply –

Replies

  • Developer

    Safwen you said:

    - Tried to measure the regulator (TPS79133) voltage, it is ok: 4.9V

    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

    Google Groups
    Google Groups allows you to create and participate in online forums and email-based groups with a rich experience for community conversations.

    • 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

      Gammon Forum : Electronics : Microprocessors : Atmega bootloader programmer
      Gammon Forum : Electronics : Microprocessors : Atmega bootloader programmer
    • 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

      APM-ISP-Connection-Flash-Bootloader.png?width=700Julien

This reply was deleted.