So I think I fried my mega today..well one of them..?
I have a 12vdc source (wallwart now, car battery later) which goes to the anode of 3 rgb leds (a strip of 3 actually with built in resistors, designed for 12v usage) which each ground thru a tip120's collector whose base is connected to pwm pins on the duino.
I didn't realize the collector was common with the heatsink and two were touching (wrapped in heatshrink for install) ... I'm not exactly sure how this could have fried anything..also one of the ground wires (blue led) broke off the strip around this time.. happens to be the one beside the 12v too.. so I guess 12v could have hit the ground of blue..not sure how it could have taken out the duino tho?
The tip120s got really hot, all 3 leds were lit at first, I hadn't redefined the ports in my code since changing some config but all i have wired in is 3 digis to the bases on the tip120s and a digi input from a button which just pulls a pulled up input to gnd.
I tested after, separating the tip120s, running just one of the leds for a while (and I had tested this before) and got no heat. I thought maybe it was getting hot because I didn't have a resistor on the base but I also digured the arduinos built in resistor would do, I actually measured 0mA triggering it at this point so I'm not sure an extra resistor is needed.
The tip120s still seem to work fine..
But now the arduino wont take sketches. Its a genuine mega 2560. I have a 2nd mega which I just tested and I can upload fine. The programmer times out.
Initially, trying to program it, I was still getting output from my serial monitor from my program, essentially prints a debug message every 200msec (not using delay() anywhere, using now() and checking elapsed ms) showing the state of my button input, so it seems like it was still running my code although I wasnt seeing the pwm fade on 4,5,6 that I had configured (and worked before) when hooking just one led up to test but I can't 100% verify the code on there since I cant change it but I do know it was still outputting serial data..
I have read that programs in a tight loop can block the bootloader and I thought maybe I had an issue programming it before, since I'm notnusing any delays or anything I thought maybe this was it and tried resetting it while trting to upload, as well as just trting to upload a bunch of times.
When I tried to upload, I could see the one LED blink everytime it printed the stk500 timeout message, and I could see the kther led blink every 200ms with my serial print but it just seemed to not want to go into the bootloader
So i pulled my other mega out and hooked it up, it loaded code fine. So I grabbed a sketch that allows you to update the boot loader from another arduino (nick gammon's) via the ICSP header which initially read the code there and said it did not verify (wasnt expecting it to as likely the bootloader on there was a diff version but shows it could read) so I uploaded and that verified fine..
Tried uploading a sketch again and still times out. My original sketch had no !!!'s anywhere BTW, just in case somehow I ended up with an older bootloader with that issue.
The chip itself seems a bit warmer than usual (not too hot to touch or anythingp, I thought maybe it was due to it running full cycles maybe but maybe I kinda killed it..?
Now that I changrd the bootloader, my original sketch doesn't appear to be running on it anymore.
Any ideas if its fixable (sw) or if I fried it (hw)? I mean it still seems to respond in some ways, I can program the BL over thr ICSP..
Help please! Genuine Mega's aren't cheap!