Arduino Uno R3 was working fine with sketches uploading easily through USB and serial COM port but now fails to upload any new
sketches and gives the alert..
avrdude: stk500_getsync(): not in sync: resp=0x00
I understand that this signifies a corrupt bootloader and have followed all the 'hold reset' while uploading
suggestions and built the parallel programmer with giveio installed but now just get..
avrdude: can't open device "giveio"
avrdude: failed to open parallel port "lpt1"
I can see that many people have suffered with this and sometimes it works and sometimes it doesn't, so
there doesn't seem to be an easy and reliable fix.
It should be the easiest and most fundamental process to upload a program to a microcontroller and this
doesn't give me any confidence to put these controllers to work in the field.
Does anyone have any solution to this problem that doesn't involve buying more hardware or another programmer?
when you go to tools board - make sure you select the correct board.
When you go to tools programmer - make sure you select the one that corresponds to your environment. The easiest is the USB on the Uno (AVR ISP)
Just to let you know, I have 3 programmers and can only get the FTDI cable to work for programming. I can not find a good solution to burn a boot loader yet. sigh
ChasJohn:
It should be the easiest and most fundamental process to upload a program to a microcontroller and this
doesn't give me any confidence to put these controllers to work in the field.
From the very first sentance on arduino.cc:
"Arduino is an open-source electronics prototyping platform based on..."
You might expect during development that you could corrupt parts of the system. Corrupting the bootloader is the software version of burning out the voltage regulator.
I've never heard of a "giveio". If you are doing serious microcontroller development you might want to invest a small amount of money into a programmer. The USBtiny is popular. Personally, I use a Bus Pirate.
On winblows you need to install 'giveio.sys' to let avrdude get low-level access to the printer port. I don't know if it works with anything newer than xp.
I suggest getting a dedicated ISP programmer that connects via usb. Best to check compatibility with your OS version beforehand.
I use the USBTinyISP from adafruit. I had to assemble it myself, but when that was done, it works fine, and I think it's less than $20 shipped.
Also, it allows you to burn your project as "the only thing" without a bootloader, so there is no stall on reset waiting for a possible upload.
Thanks for the suggestions but I was hoping not to hear that I need another programmer.
I've been evaluating the Arduino for use in industrial applications where PLC's are an overkill or just not flexible
enough in a small package.
I like the Arduino because of its growing popularity, great potential, and ease in which sensors can be interfaced, but whilst my applications are not exactly mission critical, the kit does need to be pretty robust, and an easily corruptible (and unrecoverable by reset) start up procedure is not good.
It looks as though if I were to use Arduino I have to get rid of the bootloader and step back into the world of printer ports and DOS command lines which I thought I'd left for good.
If the Arduino is only for prototyping then perhaps it should be dismissed for anything other than a platform for hobbyists?
I've yet to be convinced that the Arduino is what I'm looking for.
ChasJohn:
It looks as though if I were to use Arduino I have to get rid of the bootloader and step back into the world of printer ports and DOS command lines which I thought I'd left for good.
If you have a programmer, there are no command lines involved. The Arduino IDE has menu options for calling avrdude and re-flashing the boot loader.
ChasJohn:
If the Arduino is only for prototyping then perhaps it should be dismissed for anything other than a platform for hobbyists?
No, it should only be used for prototyping. I'm not sure I see the connection between "prototyping" and "just for hobbyist". Professional engineers prototype their designs. The components used in the prototypes aren't always what ends up in the final design.
For troubleshooting steps...
Have you done the loop back test yet? To verify if the ATmega328 or the 8u2 is the device that isn't responding?
Can you post your code of the last sketch that uploaded?
If I were only 10 years old, I wouldn't have such a grudge against the 'unmentionable OS'. If I were only 10 years old, I would probably have never used it. It has stolen months and years of my life - and money too.
If I were only 10 years old, I wouldn't have such a grudge against the 'unmentionable OS'. If I were only 10 years old, I would probably have never used it. It has stolen months and years of my life - and money too.
ChasJohn:
Thanks for the suggestions but I was hoping not to hear that I need another programmer.
...
I've yet to be convinced that the Arduino is what I'm looking for.
Here's how I view it:
The AVR is a nice microcontroller. You can wire it up with VCC, a resonator, a reset pull-up, and three pins to the USBtinyISP on a breadboard, and you're ready to go! This has nothing to do with Arduino. You can use AVRStudio, or avrdude, or whatever, to program the device.
The Arduino is a value-add on top of the AVR microcontroller family. First, the board itself is a programmer -- assuming you can live with the bootloader overhead. Second, the "shields" define a simple electrical bus that allows you to exchange money for time, getting common peripherals (motor drivers, LED drivers, various inputs, Real-time clocks, etc) in a plug-and-play fashion. This is highly productive!
Once you're done prototyping/developing on the Arduino platform, you have a choice:
Buy Arduinos and shields for all of your units shipped. If the number of units shipped is small, and the cost of the hardware negligible, then this is a fine way to go.
Sit down and turn your AVR and peripheral chips into a board that you build yourself. I'm a hobbyist, I like veroboard and DIP packages. If you're a little bit less ghetto, you break out Eagle and send a file off to pcbexpress or iteadstudio or whatever.
I don't quite understand why this doesn't work for you. Are you that much allergic to the bootloader? If so, Arduino may not be for you, and you should look into something like AVRStudio if you want to use the AVR family. Or there are other uC families -- anything from the frustratingly baroque PICs, through 8051, MSP430, all the way up to ARM computer-on-a-module systems like OMAP or Geode (x86!). Your first job is probably to gather requirements, including the cost/time trade-off. Then you can figure out which uC suits you best.
Going with DOS command lines and parallel port programmers probably is just a result of following bad or old advice. There are plenty of USB based programmers that work well with modern versions of Windows. (As I said, I use the USBtinyISP and Windows 7 x64 -- but the Arduino IDE and Uno board are all the programmer you need for 95% of all projects)
Seeing as you are from the UK maybe see if there is a local group that could help with your problem.
In any situation where you only have one part and there is the possibility of damaging that part due to experimentation or such then your time working on the project will come to a halt. Over the years I've seen where the OP has only bought one chip and in the process set the fuses for the wrong clock.
Then days are spent trying to figure out why it won't respond to ISP (yes, I've also seen where it will take many tries on many chips doing the same thing for the OP to finally ask why).
Do yourself a favor and spend some bucks and get another UNO. Turn that into an ISP programmer and fix the one you have now. Now you have a backup.
What is your time worth anyway?
Also it's not a good idea to piss in the punchbowl.
ChasJohn:
avrdude: stk500_getsync(): not in sync: resp=0x00
I'm not sure why you would be getting the error since you only mention the single Uno board but I can easily bring up that error message by plugging the USB cable into a different (clone) Arduino Uno but still plugged into the same PC USB port. I don't know if it happens with two "genuine" Arduino boards or if it's because one is a clone but Windows invariably changes the COM port number.
If I forget to change to port number in the IDE, I initially get an error dialogue box asking me to check the COM port. However, if I then select the correct port and try to upload a sketch without restarting the IDE, I get that same error message:
avrdude: stk500_getsync(): not in sync: resp=0x00
I tend to think it's more a Windows issue than an Arduino.
It looks as though if I were to use Arduino I have to get rid of the bootloader and step back into the world of printer ports and DOS command lines which I thought I'd left for good.
I'm not sure I understand this comment. What have printer ports got to do with it?
You said it was working, and now it isn't. Quite possibly you broke it. There are a few things to consider. There is a maximum current you can draw from one pin, and a maximum from a group of pins. Also a maximum for the chip in general. These are documented in the data sheet for the device. Also if you happened to be testing a motor without reverse protection diodes you may have blown something.
This site documents a number of ways (10) you can destroy your chip:
However to be fair, you can destroy any chip if you are not careful. Personally I haven't destroyed any, and this includes after I have been drinking.
You can throw your Uno out the window if you want to. And then in a couple of months you might be throwing out your Microchip evaluation board.
I have a number of them sitting around my house doing things like monitoring if the garage door is open. I have to say that they are completely reliable.