REVISED 2018-07-16
If you buy a cheap USBasp V2.0 ICSP programmer on eBay, chances are, avrdude will give you the following warning message:
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
While it’s just a benign warning message which can be ignored with no ill effects, it’s still a constant irritant. Furthermore, it also prevents my speed up technique from working, because it relies on changing the sck period. To get rid of the warning, you must update the firmware to the latest version: usbasp.2011-05-28.tar.gz
If you have another ICSP programmer already, such as a USBtinyISP, programming in the new firmware is quite simple. If you have more than one USBasp, you can even use them to program each other. Here are the steps:
0. Verify that you have a USBasp V2.0, and that it has a 12MHz crystal and an ATMEGA8 or ATMEGA8A MCU onboard. DO NOT CONNECT IT TO THE USB PORT OF YOUR COMPUTER.
1. Short the JP2 (self-programming) jumper.
2. Connect the USBasp V2.0 to the USBtinyISP (or other ISP) using a 10-pin ribbon cable
3. Flash in the new firmware: avrdude -c usbtiny -p atmega8 -U flash:w:usbasp.atmega8.2011-05-28.hex
4. Reprogram the USBasp’s fuses: avrdude -c usbtiny -p atmega8 -u -U hfuse:w:0xc9:m -U lfuse:w:0xef:m
If you’re not using a USBtinyISP, substitute the proper parameter after -c (e.g. -c usbasp).
Note that the usbasp.2011-05-28.tar.gz archive doesn’t contain a compiled .hex file, so you have to re-compile it using WinAVR. Instead, you can just use my hex file, which I compiled directly from the sources: usbasp.atmega8.2011-05-28.zip
If you don’t have another ICSP programmer, you can use an Arduino, following these instructions: Updating firmware on USBASP bought from eBay. However, you may also have to also set the fuses according to Step 3 above. My PC wouldn’t recognize the reprogrammed USBasp until I set the fuses.
cannot set sck period update firmware,,,,
i am using usbasp programmer, interfacing with atmega8 microcontroller,
i want to burn program into atmega8 controller, using usbasp programmer , the same error i am getting ,,
what can i do? how to solve this error?
i need command line based setting. if any hardware setting are their it’s ok, please please…………i am new to this controller & linux…….how to over come this error sir…?
You can just ignore the error. It’s just a warning. Or, if you don’t want to see it anymore, follow my article to update its firmware.
grasias por la informacion.
Hi,
I made my own USBasp and set fuses and programmed it just like you did, and now the red LED is glowing, but is not recognized by windows (device descriptor request failed). Do you maybe know what could be the issue?
Sorry, wish I could help, but I have no idea
I used your info as a reference although I re-flashed mine using an Arduino. The fuse bits were relevant. Thanks for sharing!
After flashing this firmware update the USBasp is not recognise anymore under Win7.
Any idea?
It sounds like there was an error when you flashed the firmware. It should work. Did you see any errors from avrdude when you flashed it?
Sam Would you mind posting an .eep file so I can use avrdudess to set the fuses. I have been able to flash my Chinese USBASP using another like unit which uses an ATMEGA8L. I am now unable to get that one to be recognized by my WIN7 computer, suspect the fuses.
Thanks
Alan
Hi Alan, sorry, I didn’t see this until just now, but I see that you figured out how to set the fuses yourself.
Used a usbtiny to reprogram a usbasp and worked great. Thanks for taking the time to write this up.
Hi, i do like u wrote. Work for me. After flashing, only 1 code can be written on chip (atmega 32 through arduino sw), if i want write another, i obtain error:
avrdude: error: programm enable: target doesn’t answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
After unplug and plug usbasp back – work for 1 cycle again.
Any idea?
closing jp3 – slowdown help :o)
Strange, I’ve never had that problem, and I have 3 USBasps. Lately, though, I have been finding different variations of the hardware
Managed to reprogram my usbasp successfully. Thanks.
yeehaa worked perfectly first time – this was the easiest guide I found thanks
side note: some usbasp clones prevents firmware reads and setting fuses, therefore you need to do a chip erase first. just upgraded mine. thank you 🙂
Great post. I updated my new USBASP using your .hex file and worked fine. I also use Khazama AVR GUI. It helps understand which fuse is what! My new chinese USBASP has only one unamed jumper under the ATmega8, acessible only by solder side. I assumed as JP2 and it worked. By the way, I installed a male jumper there for future updates! Thank you for your post.
Thanks for the tip on Khazama AVR GUI.. checking it out now
after updating usbasp firmware, it is no more recognized, get device descriptor error.
issue was with fuse bits, thanks a lot, it works.
Ok I have two of those low cost USBasp burners. Now what I understand how to connect them .. just use the 10 pin ribbon cable and be sure to set the jp2 on the one to be programmed. But what software do I used to program it with? The Arduino IDE?? Thanks Great day to you.
How do you do this? Verify that you have a USBasp V2.0, and that it has a 12MHz crystal and an ATMEGA8 or ATMEGA8A MCU onboard. The chip is real small. It says Atmel and there is a 12.00 MHZ clock ship how do you know if it is V2.0? Thanks again
if it’s marked USBasp V2.0, then it’s the same board. AVRDUDE is bundled with Arduino, and if you search the files, you can find a copy in there somewhere. Otherwise, download a new one here: https://www.nongnu.org/avrdude/