usbasp cannot set sck period?

I got a cheap usbasp off ebay and i get a message in the ide saying canot set sck period, Online it says to upgrade firmware bu theres no isp on it, hoe can i fix this?

I also have the same error message trying to boot load the ATMega328-PU-ND with said cheap usbasp programmer.

Online it says to upgrade firmware bu theres no isp on it, hoe can i fix this?

Using a ATmega? which one on the USBasp?, is it ATmega8?

I'm using this one:

I get the very same error when using version 1.0, but apparently it works despite of it

If I use version 0021 there is no problems, so apparently using an older tool chain could be a solution

The instructions to upgrade the firmware is in the readme_file:

Ill try the older toolchain, but this particular usbasp has no isp to do the firmware, that's the annoying part

winner10920: Ill try the older toolchain, but this particular usbasp has no isp to do the firmware, that's the annoying part

Which one do you have. Do you have a link to a photo? All the ones I've seen, especially the low cost ones don't use any driver chips between the AVR and the 10/6 pin ISP connector so the same pins on the connector used for programming are used to program it. All that is required is to install a programming jumper.

Also, the ones with the older firmware that don't support setting of the clock period in s/w usually have a jumper that can be used to set the slower programming clock rate.

--- bill

I use the HK USBasp and get the same message. Its just a warning, but I'm not shure if programming is done succesfully. I use WIN7/64 Bit and a Flyduino Mega board with an ATMEGA 2560. Unfortunately I have not found a schematic of the board, so I'm not able to check if the Blink Sketch uses really a port with a LED attached. Also I have no idea to update the firmware of this USBasp, in the files section of the shop there is a V1.0 firmware available but no instruction how to get it on the controller. Wood be thankful for some "foolproof" instructions - I'm just entering the arduino world.

All these low cost USBasp devices are based on the fischl design.
Usually there is no change from fischl’s circuit design as they use fischl’s binary firmware image.
What I have noticed is that the jumpers may be labeled on the device differently than in the schematic.
For example, in Fischl’s design
J1 Target VCC
J2 Firmware upgrade
J3 Force slow SCK clock

On my board
J1 Force slow SCK clock
J2 Target VCC (not marked and is a soldered 0 ohm resistor) I need to replace with header/jumper
J3 Firmware upgrade

For linux, you might want to look at fixing the udev rules to keep from having to use “sudo”.
Attached is a script that will patch it for recent debian/ubuntu releases.

To update the board, you need another ISP programmer.
You hook up USBasp connections to the 2nd ISP programmer
set the “firmwware upgrade” jumper on the USBasp - which simply holds the part in reset.
Then program it with the 2nd ISP programmer.
NOTE: Be very careful with the power/vcc line on the USBasp.
The best thing is not to hook up the USBasp being programmed to USB.
Let the 2nd ISP programmer power it.

BTW, you don’t actually have to upgrade to the newer firmware.
The slow sck is only needed for parts using slow clocks (less than 1.5 Mhz).
If you need the slower SCK clock, you can always not tell avrdude
to set it, and then install the slow clock jumper on the USBasp.

— bill (622 Bytes)

I tried everything mentioned above and even contacted the manufacturer in China for Schematics but all the only jumper this has does is short out the programmer…
Any Help?
Thank you :slight_smile:

In order to play with low cost h/w you will often need to educate yourself a bit so you can use/maintain/update it. It is that grand tradeoff between knowledge, time, & money (You can often save money and time if you have knowledge)

Here is thread that discusses updating USBasp based devices:,149668.0.html

Note that I updated my kkk USBasp and retrolefty updated his HobbyKing USBasp device and that once you update your USBasp device to the later firmware the warning will go away.

The bottom line is that USBasp used to use a jumper to set a slower ISP clock rate. The newer USBasp firmware can set the slow ISP clock rate in s/w through the USBasp commands over the USB or by using the slow ISP clock jumper. avrdude has been updated to use the newer USBasp commands to set the clock rate to make it easier since you won't have to use the slow ISP clock jumper any more. (The slow clock jumper can still be used with the new firmware) If you have a newer avrdude and older firmware, avrdude tries to set the clock rate and fails because the older firmware doesn't support the newer commands to set the ISP clock rate. (That is what the warning is).

If you are using a slow clock rate in the AVR (like with virgin chip which runs at 1Mz), then a slow ISP clock rate is required when updating the AVR. The clock can be slowed down by either installing the slow ISP clock jumper in the USBasp device or if the USBasp device has the newer firmware, avrdude can be told to tell the USBasp device to slow it down. If the AVR is not running a slow clock, then there is no need to have a slow ISP clock to program it. Avrdude will give you a warning but the programming will work just fine.

One of the things that I don't like which is what is causing much of this confusion is the way avrdude was updated to use the new AVRasp set clock rate command. avrdude has a command line option to set the ISP clock rate. The USBasp code ALWAYS uses the new set ISP clock rate command even when the avrdude commandline option was NOT used. i.e. it always tries to set the clock rate and uses a default rate if you don't specify one. That is why you will always see the "cannot set sck period" warning. Because even if avrdude is not asked to set a sck period, avrdude tries to set it to a default rate on USBasp devices. Had avrdude not tried set a rate unless you asked for it, you wouldn't see the warning.

--- bill

NOTE: A lot of the USBasp programmers on Ebay from China automatically supports slow clk rate for mcu running down to 1MHz built in. However, they do not support the avrdude clock option -B command. So avrdude will complain about updating firmware. You do not have to upgrade your USBasp programmer unless you need to support mcu clock rates below 1MHz.

One drawback of upgrading one of these programmers is that you lose the auto-clock rate support. Which means you lose the ability to program ATtinys@1MHz from the Arduino IDE, since the IDE doesn’t support directly the avrdude –B option.

I have several of these China made USBasp programmers most of them automatically support slow clk rate which will support AVRs running down to 1MHz. I use these to program many ATtinys running down to 1MHz using the Arduino IDE. They will not however support auto clock below 1MHz. So ATtinys running at 128KHz will not be supported by these programmers.

You can verify if your programmer supports auto-clock if the description says:

  • Support for AVRDude from version 5.2 onwards
  • Allows you to to read or write the microcontroller EEPROM, firmware, fuse bits and lock bits
  • Support for WIN7 and XP
  • 5 KB/sec maximum write speed
  • Software controlled SCK option to support targets with low clock speed (< 1.5MHz)
  • 10 pin ISP interface
  • These programmers are a perfect companion to the Protostack 28 pin AVR Development Board or the Protostack ATMEGA8 Development Kit.

So these programmer will automatically support slow clk below < 1.5MHz but only down to 1Mhz. If you need to go slower (like 128KHz) then you will need to upgrade the firmware.

Alternatively some USBasp programmers have a hardware jumper support for slow clk option then you don’t need to upgrade. These will support programming down to 128Khz speeds.

I was having same problem. How did I solve ? I put 100nF bypass cap to AREF pin. Worked !