Serial programming issue after using ISP - arduino

I've been using the avr-mkII programmer to program the arduino through ISP for the past month. Recently I noticed that ever since doing that I lost the ability to program the arduino through the USB port - Serial 0. Does anyone have a clue as to how to reset the boards back to normal? I tried this with a few different boards and it is all the same. The New boards that haven't been programmed through the ISP act normally. I basically have lost the ability to communicate with the usb programmer chip. Has anyone experienced this before? Would I need to program the usb communication chip through it's ISP pins? Here the typical generic response that I get when I try to program them.
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
Thanks in advance.

Selecting the correct board and programmer in the IDE and then choosing the option "Burn Bootloader" will upload the stock bootloader and set the fuses appropriately on the main MCU.

Related

Can't upload to arduino Uno board. Error message - avrdude: stk500_recv(): programmer is not responding

I'm trying to upload a simple sketch to my Uno board but get this error message:
avrdude: stk500_recv(): programmer is not responding.
I have 5 Uno boards and 3 of them works fine so I guess it is something to do specifically with the two boards (which used to work) and not my system or cables.
I also did a loop-back test (http://forum.arduino.cc/index.php?topic=73748.0) on both of the boards where one worked fine and the other didn't echoed back.
I read about possible solutions for this problem in the following link but being new to arduino I couldn't figure out how to debug the problems or how to implement some of the solutions.
Arduino Sketch upload issue - avrdude: stk500_recv(): programmer is not responding
Any help will be appreciated, thanks in advance.
edit: Tried using an Arduino as an AVR ISP but failed with both of the boards (https://www.arduino.cc/en/Tutorial/ArduinoISP)
It is a known bug. Try to disconnect all peripheral from arduino pins. And repeat uploading sketch.
Maybe the Mega328P or the Mega 32u4(?) chip or both are blown. I had one once and it was pretty much as you described - in my case the Mega28P was partially blown due to a short circuit and, its a bit difficult to describe, but it sort of got more erratic over time before it stopped working completely.
As for the Mega328P, many Uno's mount them in a socket, so you could try switching the 328P MCU from a "not working one" to a "working board" and see if the "working board" stops working, the "non working board" starts working and so on.
I think this could also occur if the bootloader is corrupt or missing, but I think you tried to address that, but perhaps double check this procedure:
https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoISP

avrdude : stk500_getsync not in sync:resp=0x87

I am using arduino uno r3 board and arduino 1.6.5 on windows 8. When Itried to upload my program on ATMEGA328 microcontroller it is showing:
avrdude:stk500_getsync not in sync:resp=0x87.
help me to solve this error
This boils down to 3 problems usually..
The bootload on the chip is missing (unlikely if you purchased the board from Arduino).
The serial connection between the arduino and the computer is disconnected or interrupted.
You've simply selected the wrong board type or port when programming, and thus the IDE is searching for a signal that the arduino isn't coming back with.
This problem is most likely due to option 3, however it can occur in odd situations especially on the Arduino Micro where the board does all USB comms on chip and can be flooded by main without an appropriate delay to the point it can't communicate with the IDE. However this is just most likely a bad board selection or a bad port selection.
I've tried many things but this worked for me. If you have a working Arduino lying around (in my case Uno) you can use it as an intermediate in-system programmer (ISP).
Follow this guide to first load the ISP sketch into your working Arduino.
Once you are done, for your non-working Arduino, select from the Tools > Programmer menu and choose Arduino as ISP, and set Board and Processor accordingly. To program choose Sketch > Upload using programmer.
Hope this works.
I think the reason that this work is that it will bypass the CH340/FTDI chip, and all those synchronization issue. Given that that is your problem.

Not able to upload code to Arduino

My Arduino Uno was all set up and was working fine.
Project: Arduino controls a 9v motor depending on the command given. As the Arduino only provides 5v, I added a 9v battery to it through a transistor
I decided to add new code into the Arduino but when I tried it failed. I have uploaded code thousands of times before (successfully) all of a sudden the IDE keeps giving the following message
avrdude: ser_open(): can't open device ".\COM3": Access is denied.
I have looked up for a lot of solutions on this forum and elsewhere. Here are the things I have tried so far:
Changing the COM port
Disabling all the other devices CONNECTED to COM
Tightening the CONNECTIONS
Re installing all the drivers and the IDE
Rebooting the system
Using another laptop to upload code
All the above have given me the same output for some reason. The built in LED light and the power LED switch on when the board is connected to a power source (my laptop). Could the board have been damaged by any chance? How can I check if the board is spoilt? Should I buy a new board?
this may help;
remove the mcu from the board and connect the board to your PC.
try to open the com port.
if it opens, short TX pin to RX pin.
send some data and check if you are getting the data back. this way you can make sure your usb-ttl is not damaged.
With my verry limited experience with Arduino I've seen that the IDE sometimes resets the saved arduino on startup. Press extra -> Board -> yourboard and try again.
make sure you have the right ports COM1 and COM1
activate it too in arduino
Once it happened to me that a defective USB cable was the culprit. For one board it gave messages like
avrdude: stk500v2_ReceiveMessage(): timeout
But for another board I also got these messages "can't open device - access denied". It's always worth to try another cable.

Arduino Uno blinking YL "Programmer is not responding"

Hey guys so I'm pretty new to Arduino and I've been having some trouble with my Uno MC, I decided to pick one up as a little side project in the January sales and only just freed up the time to really start using it.
The first problem is, when I hook up my Uno to my windows 64x PC using a UsbA-B cable (for power) I get a blinking YL on the Uno.
Second problem is, when I attempt to upload an example sketch to the Uno, for instance, "Blink" using the Arduino IDE I get the following error.
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x01
avrdude: stk500_recv(): programmer is not responding
Have no idea how to fix the issue, but here's some information I know:
My board does show up in Computer Management under my COM3 port as "Arduino Uno" so I believe my drivers aren't the issue here.
I also have the correct board selected in the IDE.
I reinstalled the IDE and reset my computer after installing the drivers, none ofthe errors were fixed.
I've tried holding down the reset button on the Uno (As shown here: https://www.youtube.com/watch?v=plCxXwiUK-w) and that doesn't solve my issue.
Any advice?
Under Tools>Port in the IDE I inexplicably had (COM1) as my active port and not port (COM3) where my Uno actually was.
Program now successfully uploads without errors.
You have to install Boot Loader.To do this you can use a micro controller Programmer such as USBasp and your Arduino software.First insert your atmega328 micro controller on Programmer then use Burn Bootloader in Tools menu of Arduino software then return back your atmega to its location on Arduino.

avrdude: stk500v2_ReceiveMessage(): timeout

This is the main error that I get when I try to run my ARDUINO program. The full list of errors is as follows:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
My code is as follows:
int led=13;
void setup()
{
pinMode(13,OUTPUT);
}
void loop()
{
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);
}
I have tried updating the drivers (they are fully updated) and downloading some programs. I have Windows 7 and my arduino is a MEGA 2560. It shows up in the Device Manager and all of my connections are correct. The green PWR light is on and so is the flashing L light. The RX and TX lights flash when I update. I have tried almost everything on the web. What is the problem?
Another possible reason for this error for the Mega 2560 is if your code has three exclamation marks in a row. Perhaps in a recently added string.
3 bang marks in a row causes the Mega 2560 bootloader to go into Monitor mode from which it can not finish programming.
"!!!" <--- breaks Mega 2560 bootloader.
To fix, unplug the Arduino USB to reset the COM port and then recompile with only two exclamation points or with spaces between or whatever. Then reconnect the Arduino and program as usual.
Yes, this bit me yesterday and today I tracked down the culprit. Here is a link with more information: http://forum.arduino.cc/index.php?topic=132595.0
The error message basically means that the programmer is unable to contact the bootloader on the device; the code you're trying to upload has no bearing on the problem.
What causes this can be numerous and varied, some possible issues:
UART communications
Blinking is happening, so hopefully you aren't using the wrong port. It might be worth checking again though, sometimes USB COM devices install on strange port numbers.
Connect TX to RX (and disconnect them from the AVR if possible) then open a terminal on the COM port, you should see characters echoed if you type them. If you don't, something is wrong up-stream of the chip, it could be the communications chip (I think the Arduino 2560 uses a secondary AVR instead of an FTDI for some reason, so that could be broken, either its software or hardware)
ATmega* bootloader
The AVR is not executing the bootloader for some reason. If the programmer is not resetting the micro before attempting to connect, this might be the reason. Try to reset the AVR (press and release the button) while the programmer is attempting to connect. Sometimes software that runs in a tight loop will prevent the bootloader from connecting.
Barring that, the fuses might have gotten messed up or the code erased. You would need to reflash the bootloader and proper fuses, again, see the appropriate info page for your device.
Arduino Mega 2560 only: ATmega8U/16U software
Might not be working and would need reprogramming. See the Programming section on the info page, you will need the firmware and Atmel-compatible DFU (device firmware update) software on your computer to reflash the target.
Hardware damage to the board, AVR(s), or FTDI chip
You're hosed; need a new chip.
Check this forum post for some more ideas.
I got this error because I didn't specify the correct programmer in the avrdude command line. You have to specify "-c arduino" if you are using an Arduino board.
This example command reads the status of the hfuse:
avrdude -c arduino -P /dev/ttyACM0 -p atmega328p -U hfuse:r:-:h
To my humble understanding, this error arises in different scenarios:
you have selected the wrong port or you haven't at all. go to tools > ports and select the com port with your Arduino connected to.
you have selected the wrong board. go to tools > board and look for the right board.
Do you have one of these Arduino replicas or you don't have the boot-loader installed on the microcontroller? I don't know the solution to this! if you know please edit my post and add the instructions.
(windows only) you don't have the right drivers installed. you need to update them manually.
sometimes when you have wires connected to the board this happens. you need to separate the board from any breadboard or wires you have installed and try uploading again. It seems pins 0 (RX) and 1 (TX), which can be used for serial communication, are problematic and better to be free while uploading the code.
Sometimes it happens randomly for no specific reason!
There are all kinds of solutions all over the internet, but sometimes hard to tell the difference between magic! Maybe the Arduino team should think of better compiler errors to help users differentiate between these different causes.
The same problem happened to me and none of the solutions above worked. What happened was that I was using an Arduino UNO and everything was fine, but when I bought an Arduino Mega 2560, no matter what sketch I tried to upload I got the error:
avrdude: stk500v2_ReceiveMessage(): timeout
And it was just on one of my windows computers and the other one was just ok out of the box.
Solution:
What solved my problem was to go to tools > boards > Boards Manager... and then on the top left of the opened windows select updatable in the Type section. Then select the items in the list and press update on the right.
I'm not sure if this will solve everyone's problem, but it at least solved mine.
Open Terminal and type:
$ sudo usermod -a -G dialout
(This command is optional)
$ **sudo chmod a+rw /dev/ttyACM0**
(This command must succeed)
This isn't really a fixing solution but it may help others. Unlike Nick had said for me it was due to code in my program. I have the mega ADK model. The issue was tied to a switch statement for processing and parsing the returned byte[] from the usb connection to the Android. Its very strange because it would compile perfectly every time but would fail as the OP had stated. I commented it out and it worked fine.
I was running this code from Arduino setup , got same error resolve after changing
serial port to COM13
GO TO Option
tool>> serial port>> COM132
If you use the ino command line:
ino upload
it can be because you use the arduino software at the same time, try to kill it.
I've connected to USB port directly in my laptop and timeout issue has been resolved.
Previously tried by port replicator, but it did not even recognized arduino, thus I chosen wrong port - resulting in timeout message.
So make sure that it is visible by your OS.
Ensure the serial monitor is not running and nothing is reading/writing dev/tty/S0 (or whichever port you're using), which may cause uploading interference.
I had the same problem, and in my case, the solution was updating the usb-serial driver using windows update on windows 10 device's manager. There was no need to download a especific driver, I just let windows update find a suitable driver.
I faced same problem. but Root cause of issue. Incorrect communication was set and thats why I occurred Communication timeout.
Solution: If you connected to laptop through USB port.
Change Port as USB. Please follow steps
Open Arduino-IDE
Go to Menu "Tools --> Port" and Select option "USB" { for me its showing as /dev/ttyUSB0 }
It working fine for me.
Something not yet mentioned is that this message also appears when the baudrate is not properly set... for Arduino, it is generally 115200.
My aurdino mega 2560 returned same error. It seems the problem exists in unofficial clones. The issue solved by pressing reset button just before uploading starts, as advertised in following video.
https://www.youtube.com/watch?v=tAzjO4v7oF4&list=LLDn5ewJDzz53IiwWmZTgQnQ&index=1

Resources