How to figure out where goes wrong

I have a Arduino Uno board, and trying to build a remote car project. When I connect board to a H bridge, and accidently put an external 9v to arduino, then I saw some smoke coming from the board. I think I fried it… And when I connect the board back to computer thru USB, my computer can not recognize the board, but all the power indicators are on, and seems like the code in the board still working.

I am wondering is there any hope can save this board in this situation ? I suspect sth wrong with the Atmel. Could anyone teach me how to figure out which part goes wrong ? and how to fix it ?

Thank you very much

When you plug it into the USB you will have power to the board, so the lights could be on. But if you toasted the microcontroller there would be no data on the USB data lines, even though the USB is supplying 5V power and the board is "powered up".

Thanks for reply.

Even i power the board by the Jack, the code still working. But the problem is the computer can not recognize the board now. Where do you think goes wrong ?

I have not seen that situation before, but you could have smoked the USB-to-serial chip. It is weird that the code is still working, so perhaps the main processor is not damaged. You can try programming it with an external FTDI adapter, which would be replacing the on-board USB-to-serial chip and onboard USB connector. Just don't use those components any more. Or you could use an ISP programmer to program the main chip through the ICSP header.

Thanks for reply.

I also think the USB-to-Serial chip not working. Thanks for your suggestions. I will try external FTDI adapter when I have one.

Just wondering is there anyway to confirm that the USB-to-serial chip is damaged ?

Thank you so much ~.

I think the best way is probably just to see if you can program the main processor using an external FTDI adapter, and can't program it with the built-in chip. That would confirm it.

I tried the FTDI adapter. Now the computer can recoganize the board, but when I am trying to upload the code, I got the error : avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00 ….

I dont know if I connect the FTDI cable right or not ? FTDI -> Arduino Green -> reset pin yellow -> Tx pin pink -> Rx pin red -> 5v black -> GND

Please correct me if this is not right .

Thanks

To do automatic reset, you need to put a 0.1uF capacitor inline with the DTR pin. On most FTDI adapters that is green, I'm not sure about yours.

Green -> 0.1uF cap -> RST

If you don't have a cap available, just remove the RST connection completely. Then when you upload a sketch hold down the reset button. Release the button when the IDE says Uploading.

wow ~ I followed your way, it works !!

Thank you so much !!!

Could you also give me some direction how to do the ISP programmer way ?

Thanks

There are many tutorials on ISP programming but unfortunately it remains a somewhat confusing topic. Most tutorials cover using an ISP programmer or another Arduino as an ISP programmer for the purpose of burning a bootloader. Few of them cover uploading sketches that way. And the ones which do are often outdated since as of IDE 1.6.5 the Upload Using Programmer option moved from the File menu to the Sketch menu. If you find a tutorial you like for using ISP to burn a bootloader, near the end where it says to go on the menu to Tools, Burn Bootloader, you can skip that and go on the menu to Sketch, Upload Using Programmer.

So look here first:

https://www.arduino.cc/en/Tutorial/ArduinoISP Skip step 2 when you get to step 7, which is confusing and talking about burning the bootloader, do Sketch, Upload Using Programmer instead.

Here is a short tutorial about uploading sketch with ISP: https://www.arduino.cc/en/Hacking/Programmer It is a little outdated because it talks about the Upload Using Programmer option being on the File menu instead of Sketch menu.

If you upload sketches using ISP, you will no longer be able to upload with FTDI, because when you upload using a programmer it erases the bootloader. You can put the bootloader back on it using ISP programming and the Burn Bootloader option. That was a nutshell version...

I have an overview of how the uploading process works, including FTDI and ISP, you may like it because it has a lot of detail: http://www.instructables.com/id/Overview-the-Arduino-sketch-uploading-process-and-/

Thanks for your detailed reference !