Preview build — page text is a draft awaiting human review. Code badges come from real compiles. The flasher is real but not yet hardware-tested; the Playground is still a preview.
Programmer · USBasp

“avrdude: warning: cannot set sck period. please check for usbasp firmware update.”

A harmless warning from USBasp clones with old firmware. Programming still works; if it fails, set the slow-clock jumper. Updating firmware removes the warning.

USBaspATmega328PATtiny85ATmega8Updated 3 Nov 2026

Community draft — report a mistake

What you see

OutputOutput
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "C:\...\optiboot_atmega328.hex"
avrdude: writing flash (32768 bytes):

Writing | ################################################## | 100% 0.00s

Almost every cheap USBasp prints this line. Their firmware predates the command avrdude uses to set the programming clock, so avrdude says so, and the programmer carries on at its default speed.

If the device signature reads correctly afterwards, nothing is wrong. Only when the target chip runs very slowly do you need the slow-clock jumper.

Quick fix — try in order

  1. 1

    If the signature reads correctly, ignore it

    A valid “Device signature = 0x1e950f” after the warning means programming works. The warning only says avrdude couldn't choose the clock speed.

  2. 2

    If programming fails, set the slow-clock jumper

    Close the JP3 (“slow SCK”) jumper on the USBasp. That forces a low SPI clock, needed for chips running from the 1 MHz internal oscillator (new ATtiny85s, fresh ATmega chips).

  3. 3

    Update the USBasp firmware (optional)

    Flash the 2011 firmware from fischl.de onto the stick's ATmega8 using a second programmer (or Arduino as ISP), with the self-programming jumper closed. The warning then disappears.

Why it happens

Why does the warning appear?

avrdude asks the programmer to switch its SPI clock (the -B option). Clone sticks with 2009-era firmware don't support that command, so they keep their default clock and avrdude warns.

Is the default clock too fast?

For a 16 MHz Arduino chip, no. For a chip on its 1 MHz internal clock it can be — that's when the slow-clock jumper matters. Symptom: Invalid device signature.

Board-specific notes

ATtiny85: A factory-new ATtiny85 runs at 1 MHz. Use the slow-clock jumper until you have burned the bootloader/fuses for 8 MHz.

↑↓ to move · Enter to open