Cheap USBASP programmer which you china buy on ebay, ali and others. Official project WebPage: http://www.fischl.de/usbasp/

- JP1 – Supply Target – Choose between 5V and 3.3V.
- JP2 – Self Program – jumper on for self program, normally free
- JP3 – Slow SCK – Jumper on only if the target clock is lower than 1.5 MHz.
- LED R – Programmer communicating with target device
- LED G – Power on
- IDC pinout: 
I will write how to solve:
avrdude: warning: cannot set sck period. please check for usbasp firmware update
You have to flash a new firmware version: usbasp.2011-05-28. Precompiled bin to flash is in \bin\firmware\ directory.
I’ve got USBASP with Atmega8 so I will use usbasp.atmega8.2011-05-28.hex and Arduino UNO R3 as ISP to flash it.
- First open ArduinoISP example in Arduino IDE 1.6.8 and upload the sketch (CTRL+U). Disconnect Arduino.
- Connect arduino to usb asp directly (without any adapter only cables) as follows:
 ArduinoUSBASP
 105 (RESET)
 111 (MOSI)
 129 (MISO)
 137 (SCK)
 5V2 (VCC +5V)
 GND10 (GROUND)
- Set jumper on JP2 (you can solder goldpins).
- Set power jumper for 5V (JP1)
- Connect only Arduino to USB and check which port com it use. You must not connect usbasp to usb!
- Download AVRDUDE avrdude-6.3-mingw32.zip: http://download.savannah.gnu.org/releases/avrdude/
- Copy correct hex file to avrdude.exe file directory.
- Check the connection with command:avrdude -c avrisp -P COMX -b 19200 -p ATmega8 -v avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53 
 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
 Copyright (c) 2007-2014 Joerg WunschSystem wide configuration file is “C:\WinAVR-20100110\bin\avrdude.conf” Using Port : COM4 
 Using Programmer : avrisp
 Overriding Baud Rate : 19200
 AVR Part : ATmega8
 Chip Erase delay : 10000 us
 PAGEL : PD7
 BS2 : PC2
 RESET disposition : dedicated
 RETRY pulse : SCK
 serial program mode : yes
 parallel program mode : yes
 Timeout : 200
 StabDelay : 100
 CmdexeDelay : 25
 SyncLoops : 32
 ByteDelay : 0
 PollIndex : 3
 PollValue : 0x53
 Memory Detail :Block Poll Page Polled 
 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
 ———– —- —– —– —- —— —— —- —— —– —– ———
 eeprom 4 20 128 0 no 512 4 0 9000 9000 0xff 0xff
 flash 33 10 64 0 yes 8192 64 128 4500 4500 0xff 0x00
 lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
 hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
 lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
 calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00Programmer Type : STK500 
 Description : Atmel AVR ISP
 Hardware Version: 2
 Firmware Version: 1.18
 Topcard : Unknown
 Vtarget : 0.0 V
 Varef : 0.0 V
 Oscillator : Off
 SCK period : 0.1 usavrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.04s avrdude: Device signature = 0x1e9307 (probably m8) 
 avrdude: safemode: hfuse reads as D9avrdude: safemode: hfuse reads as D9 
 avrdude: safemode: Fuses OK (E:FF, H:D9, L:9F)avrdude done. Thank you. replace COMX with correct com port for arduino. 
- Set the fuses like on Readme file:# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef 
 # TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
 # TARGET=atmega88 HFUSE=0xdd LFUSE=0xffwith command: avrdude -c avrisp -P COM3 -b 19200 -p ATmega8 -v -e -u -U hfuse:w:0xC9:m -U lfuse:w:0xEF:m
- If it recognize the M8 you can flash it:avrdude -c avrisp -P COMx -b 19200 -p ATmega8 -v -U flash:w:usbasp.atmega8.2011-05-28.hex avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53 
 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
 Copyright (c) 2007-2014 Joerg WunschSystem wide configuration file is “C:\WinAVR-20100110\bin\avrdude.conf” Using Port : COM4 
 Using Programmer : avrisp
 Overriding Baud Rate : 19200
 AVR Part : ATmega8
 Chip Erase delay : 10000 us
 PAGEL : PD7
 BS2 : PC2
 RESET disposition : dedicated
 RETRY pulse : SCK
 serial program mode : yes
 parallel program mode : yes
 Timeout : 200
 StabDelay : 100
 CmdexeDelay : 25
 SyncLoops : 32
 ByteDelay : 0
 PollIndex : 3
 PollValue : 0x53
 Memory Detail :Block Poll Page Polled 
 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
 ———– —- —– —– —- —— —— —- —— —– —– ———
 eeprom 4 20 128 0 no 512 4 0 9000 9000 0xff 0xff
 flash 33 10 64 0 yes 8192 64 128 4500 4500 0xff 0x00
 lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
 hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
 lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
 calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00Programmer Type : STK500 
 Description : Atmel AVR ISP
 Hardware Version: 2
 Firmware Version: 1.18
 Topcard : Unknown
 Vtarget : 0.0 V
 Varef : 0.0 V
 Oscillator : Off
 SCK period : 0.1 usavrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.04s avrdude: Device signature = 0x1e9307 (probably m8) 
 avrdude: safemode: hfuse reads as D9
 avrdude: NOTE: “flash” memory has been specified, an erase cycle will be performed
 To disable this feature, specify the -D option.
 avrdude: erasing chip
 avrdude: reading input file “usbasp.atmega8.2011-05-28.hex”
 avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
 avrdude: writing flash (4700 bytes):Writing | ################################################## | 100% 7.34s avrdude: 4700 bytes of flash written 
 avrdude: verifying flash memory against usbasp.atmega8.2011-05-28.hex:
 avrdude: load data flash data from input file usbasp.atmega8.2011-05-28.hex:
 avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
 avrdude: input file usbasp.atmega8.2011-05-28.hex contains 4700 bytes
 avrdude: reading on-chip flash data:Reading | ################################################## | 100% 3.89s avrdude: verifying … 
 avrdude: 4700 bytes of flash verifiedavrdude: safemode: hfuse reads as D9 
 avrdude: safemode: Fuses OK (E:FF, H:D9, L:9F)avrdude done. Thank you. 
- Done. Disconnect Arduino.
USBASP Drivers on Windows 8, 8.1 and Windows 10
Read this: http://tosiek.pl/manual-install-drivers-and-disable-drivers-signing-policy-on-windows-10-8-8-1/
You have to first disable check signed drivers on windows 8, 8.1 and 10!
(pull Shift and click to restart > Troubleshoot > Advanced options > Startup Settings > Restart button again > On the Startup Settings screen press 7 or F7 to disable driver signature enforcement.)
Download: usbasp-windriver.2011-05-28
Then install it manually in device manager.
 
 
14.11.2016 at 18:22
it works for me thank you
27.01.2017 at 20:26
Witam
Po aktualizacji do tego oprogramowania mój USBasp przestał działać w Arduino mam teraz:
avrdude: error: program enable: target doesn’t answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
wybrany port szeregowy
nie istnieje albo Twoja płytka nie jest podłączona
A próbuje już różnych sterowników pod moim win10 libusb-win, libusbK i tych usbasp-windriver.2011-05-28 programator przestał działać jako programator :/
27.01.2017 at 21:00
Zobacz w menedżerze urządzeń czy widać urządzenie. Nie wyłączyłeś pewnie wymuszania podpisów cyfrowych i możesz ich zainstalować.
Nie da się tej płytki uwalić, wgraj softa jeszcze raz przez Arduino as ISP i zdejmij zworkę do programowania.
11.06.2017 at 10:59
Cześć! Przechodzę cały proces bez żadnych problemów, dalej pojawia się jednak ten komunikat. Może jakieś pomysły co dalej z tym robić?
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target doesn’t answer. 0
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
Błąd przy wgrywaniu bootloadera.
Przechodzę cały proces bez żadnych problemów, dalej pojawia się jednak ten komunikat. Może jakieś pomysły co dalej z tym robić?
12.06.2017 at 07:53
Źle podłączone przewody?
21.10.2017 at 17:14
I follow your step, but message:
avrdude: stk500_recv(): programmer is not responding
I use Nano 16Mhz instead of Uno, all boards are health.