Hi all, sorry this is my first post and please excuse any mistakes I make in this post.
Last night I was setting up my hexadrone based on the 3DR hexa, with APM 2.5 and there was an audible pop from the OSD and a thread of magic smoke got let out of it. There's now a microcrater in the MAX7456 chip just above (counting from the right on the top row with MinimOSD screen silk pointed rightside up) pin 4.
I had a couple semi-successful flights prior to this (couple hard landings), and was rechecking everything out and verifying the OSD was working for today's flight. Well, come to find out, even with the MinimOSD disconnected, I can't connect to APM anymore. I've tried my XP laptop, my Win7 64 laptop, nothing.
On the APM the Alive light is lit, and occasionally the C & A (Blue and Red leds) will flash and start over. Sometimes the TX/RX lights will go nearly solid, I can see the COM port on both machines, and it appears to be OK. I've tried loading the firmware, but I just get the message "Cant detect your APM version. Please check your cabling."
I've tried disconnecting all accessories, but I'm stuck now, having tried the Trouble Shooting guide. Any ideas?
Would it be worth soldering an ISP connector and re-flashing the board? If so, what code should I use? Should I just use the Arduino bootloader flash? I don't want to make a bad situation worse, but I'm not unfamilliar with flashing through ISP. I flashed my T9X to custom firmware this morning.
Did you try a reset through CLI and then hardware reset and then reload fresh basic firmware?
Hi Steven thanks for the reply, I have tried accessing the CLI, and what I get is the following:
*NOTE* CLI Works over USB only
Opened com port
And that's it. I tried typing in setup ENTER reset and I got nothing in return.
Go to tests or radio setup or type help. radio setup hit enter to stop, then reset>Y
I've attached the Atmega 2560 bootloader for the APM2.0 and the default code for the 32U2 chip as well. I would guess that it is the same at the 2.5. Flashing the bootloader may very well help you out, however I can obviously make no promises. I figured I would at least get the files that I have successfully used in the past in your hands.
If you are not comfortable doing it or if support refuses to attempt a repair you can send it to me and I will gladly take a look at it. Just PM me.
bootloader for MEGA32u2 chip: ArduPPM_v2.2.66.rc2_ATMega32U2.txt
bootloader for ATMega2560 chip (APM2): stk500boot_v2_mega2560_patch.txt
If the thing shows up when he plugs it into windows, obviously the PPM/USB to serial is working. Thus any ISP AVR programmer can flash a standard 2560 bootloader on the main chip.
I would definitely leave the PPM alone since we know/think it's working.
A standard mega2560 bootloader should work from the Arduino IDE, just make sure you plug your AVP ICSP to the main one, not the one for PPM.
Also, let's go over some gotcha's based on the scenario. The OSD chips are know to run hot. This could have been the cause of the failure. That MAX OSD chip connects to output pins on the 328P and then the same 328P connects to the UART0 (AKA Serial digital pins 0,1 on a mega). It would be unlikely to have the OSD voltage also cross over the 328P as well and go towards the APM but is possible. That said, APM 2.0 and assumed 2.5 have this "automux" thing for UART 0 so that it switches between USB/Serial input to the Telemetry port. The directions for OSD tell you to use the port labeled 0/2 UART near the ouput pins and that goes through the automux. If you did have a failure, it may have blown that mux device. In theory, unless it's dead short, the good news is that on the side of APM 2.0 (not sure on 2.5) there is the real, hardwired UART0 to the Mega direct. This would require a FTDI cable or other serial connection to your PC but all you need is ground, and the TX,RX pins to a FTDI cable and you could see if the mega is working.
Just keep in mind in troubleshooting, it's just like an Arduino Mega 2560. First use the 6 pin and an AVR and flash a normal bootloader from Arduino IDE. If is succeeds, then connect to UART0 (the direct one) with FTDI cable and you should be able to flash using the standard method. Then once you know the mega is working, you could troubleshoot the automux, uart, and PPM/usb /serial conversion on the board. Point being, It's hard to kill. You can damage a lot of stuff and still be flyable. The automux is nice, but not in any way required. As long as the PPM work to convert the inputs and you have a working UART0 to get code on the chip and use for telemetry (optional), you should be good to go.
Thanks guys, just for a sanity check, can you confirm the location of the ISP pins on the board? I see 6 empty through holes forward on the board on the starboard side near the two GPS headers that look suspiciously like where an ISP header would go, and some diagrams I've found for APM2.0 seem to bear that out.
I'll be using an arduino with the avrisp sketch loaded, is there anything else I should know? I can use avrdude or the Arduino IDE.
I would use Arduino for sanity. The correct port is next to the USB for the 2560. Using the Arduino IDE, if you tried the one for the 32u2, it would fail and not flash the chip by accident. In other words, it's the last 2 rows of pins on the side where there are 3 rows of pins. Also, hoping you have a FTDI or some way to check TTL UARTS.
Thanks for the info Vernon, I'll go ahead and flash and report back.
Something appears to be off:
avrdude: verification error, first mismatch at byte 0x1e000
0xff != 0x0d
avrdude: verification error; content mismatch
I've seen this before and sometimes it can be brushed off... was this after it went most of the way through the flash? Check it with Mission Planner, it may work fine at this point anyway.