Configuring make-file for other USBASP

Go To Last Post
9 posts / 0 new
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0



I've programmed on my ATmega328 for a couple of months now through a USBISP (comparable to this something like [1]). However, during un unfortunate turning of events, I've lost access to it. I bought a couple of new ones, which on the exterior at least, look the same. However, when I'm running my makefile I get the following error:

avrdude -p atmega328p -P USB -c usbasp  -u  -B 5  -U flash:w:main.hex 

avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='' product='USBasp'

I'm guessing this is because I bought the new one from China through eBay, resulting in a different version or ID.


How do I fix this? I've been looking trough my makefile but I can't find where I can change the ID's. Through my system info I get that it's a:



I've included my makefile in this post, too.


Big thanks, Christian


[1] -


This topic has a solution.
Last Edited: Tue. Jun 27, 2017 - 10:36 AM
This reply has been marked as the solution. 
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You can look at Device Manager to see if you really have a USBASP.


I suspect that you have a USBISP which is a HID device and only works with the Chinese Progisp172 which is a GUI program.

Incidentally,  the Progisp172 will work with a genuine USBASP



Last Edited: Tue. Jun 27, 2017 - 10:01 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

From this page:


The registered list of Atmel IDs is:

03eb  Atmel Corp.
	0902  4-Port Hub
	2002  Mass Storage Device
	2015  at90usbkey sample firmware (HID keyboard)
	2018  at90usbkey sample firmware (CDC ACM)
	2019  stk525 sample firmware (microphone)
	201c  at90usbkey sample firmware (HID mouse)
	201d  at90usbkey sample firmware (HID generic)
	2022  at90usbkey sample firmware (composite device)
	2040  LUFA Test PID
	2041  LUFA Mouse Demo Application
	2042  LUFA Keyboard Demo Application
	2043  LUFA Joystick Demo Application
	2044  LUFA CDC Demo Application
	2045  LUFA Mass Storage Demo Application
	2046  LUFA Audio Output Demo Application
	2047  LUFA Audio Input Demo Application
	2048  LUFA MIDI Demo Application
	2049  Stripe Snoop Magnetic Stripe Reader
	204a  LUFA CDC Class Bootloader
	204b  LUFA USB to Serial Adapter Project
	204c  LUFA RNDIS Demo Application
	204d  LUFA Combined Mouse and Keyboard Demo Application
	204e  LUFA Dual CDC Demo Application
	204f  LUFA Generic HID Demo Application
	2060  Benito Programmer Project
	2061  LUFA Combined Mass Storage and Keyboard Demo Application
	2062  LUFA Combined CDC and Mouse Demo Application
	2063  LUFA Datalogger Device
	2064  Interfaceless Control-Only LUFA Devices
	2065  LUFA Test and Measurement Demo Application
	2066  LUFA Multiple Report HID Demo
	2068  LUFA Virtual Serial/Mass Storage Demo
	2069  LUFA Webserver Project
	2103  JTAG ICE mkII
	2104  AVR ISP mkII
	2105  AVRONE!
	2106  STK600 development board
	2107  AVR Dragon
	2109  STK541 ZigBee Development Board
	210d  XPLAIN evaluation kit (CDC ACM)
	2110  AVR JTAGICE3 Debugger and Programmer
	2111  Xplained Pro board debugger and programmer
	2122  XMEGA-A1 Explained evaluation kit
	2140  AVR JTAGICE3 (v3.x) Debugger and Programmer
	2141  ICE debugger
	2310  EVK11xx evaluation board
	2404  The Micro
	2fe4  ATxmega32A4U DFU bootloader
	2fe6  Cactus V6 (DFU)
	2fea  Cactus RF60 (DFU)
	2fee  atmega8u2 DFU bootloader
	2fef  atmega16u2 DFU bootloader
	2ff0  atmega32u2 DFU bootloader
	2ff1  at32uc3a3 DFU bootloader
	2ff3  atmega16u4 DFU bootloader
	2ff4  atmega32u4 DFU bootloader
	2ff6  at32uc3b0/1 DFU bootloader
	2ff7  at90usb82 DFU bootloader
	2ff8  at32uc3a0/1 DFU bootloader
	2ff9  at90usb646/647 DFU bootloader
	2ffa  at90usb162 DFU bootloader
	2ffb  at90usb AVR DFU bootloader
	2ffd  at89c5130/c5131 DFU bootloader
	2fff  at89c5132/c51snd1c DFU bootloader
	3301  at43301 4-Port Hub
	3312  4-Port Hub
	4102  AirVast W-Buddie WN210
	5601  at76c510 Prism-II 802.11b Access Point
	5603  Cisco 7920 WiFi IP Phone
	6119  AT91SAM CDC Demo Application
	6124  at91sam SAMBA bootloader
	6127  AT91SAM HID Keyboard Demo Application
	6129  AT91SAM Mass Storage Demo Application
	6200  AT91SAM HID Mouse Demo Application
	7603  D-Link DWL-120 802.11b Wireless Adapter [Atmel at76c503a]
	7604  at76c503a 802.11b Adapter
	7605  at76c503a 802.11b Adapter
	7606  at76c505 802.11b Adapter
	7611  at76c510 rfmd2948 802.11b Access Point
	7613  WL-1130 USB
	7614  AT76c505a Wireless Adapter
	7615  AT76C505AMX Wireless Adapter
	7617  AT76C505AS Wireless Adapter
	7800  Mini Album
	ff07  Tux Droid fish dongle

So it seems the PID 0xC8B4 they are using is invalid.

Anyway, if it's supposed to be a "USBAsp" it shouldn't be using the Atmel VID!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sorry, I had not read your post properly. Yes, you need Progisp172.
No, you can NOT run it as a command line program. So you can forget about Makefiles.
You can always replace the firmware if you have another programmer.
Quite honestly, it is easier to just buy a proper Chinese USBASP.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thank's for the help! I'll see if I can find a USBASP in a hurry.


What's the best way to ensure that the product I'm looking at is a USBasp?

Last Edited: Tue. Jun 27, 2017 - 10:41 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


Is usbAsp the same as usbIsp?


I dunnoo much about Mac but your issue could be similar to an often encountered Linux one.

On Linux  'normal" users don't always have access to all usb devices.

You can easily check if this is also the issue on your system by running avrdude as root.

If avrdude runs fine if you run it with root priviledges you have to make a "udev" rule for usbasp to be able to run it as a normal user.


On my system I've made a file with the name "/etc/udev/rules.d/10-avr-and-other-stuff.rules" and with the contents (among some other stuff):

# copy this file to /etc/udev/rules.d/
# P.s. "udevadm control --reload-rules" could help but new rules should be autodetected.
# 2014-11-16 Does this file still work? Atmel usb bootloader disabled.

SUBSYSTEM=="usb", ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", GROUP="paul", MODE="0666"

SUBSYSTEM=="usb", ATTR{idVendor}=="03EB", ATTR{idProduct}=="2106", GROUP="paul", MODE="0666"

# SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ffa", GROUP="paul", MODE="0666"

Files with rules in "/etc/udev/rules.d/ are loaded in numerical order which is why the filename starts with "10", but it's just a convention.


If the udev rules do not bring you closer to the soltution, then find a terminal window and try these commands:



This gives a list of all devices connected to usb on you pc (Or at least on a linux box it should).



This shows the tail (default last 10) entries of the dmesg command.

dmesg logs messages each time an USB device is added/changed

The first number is the uptime in seconds.

This makes:

dmesg|grep usb

a handy command to troubleshoot faulty cables on a usbdevice.

Note that "grep" is just a simple text filter which only shows lines wich contain the specified text.

paul@dualcore ~ $ dmesg|grep -i "idvendor"
[    0.768078] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.784070] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    0.784643] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[    0.785024] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[    0.785395] usb usb5: New USB device found, idVendor=1d6b, idProduct=0001
[    0.785773] usb usb6: New USB device found, idVendor=1d6b, idProduct=0001
[    0.786142] usb usb7: New USB device found, idVendor=1d6b, idProduct=0001
[    0.786514] usb usb8: New USB device found, idVendor=1d6b, idProduct=0001
[    1.229311] usb 2-6: New USB device found, idVendor=05e3, idProduct=0608
[    1.473312] usb 2-8: New USB device found, idVendor=05e3, idProduct=0608
[    1.642811] usb 2-6.1: New USB device found, idVendor=147a, idProduct=e018
[    2.447059] usb 2-6.2: New USB device found, idVendor=0bda, idProduct=0151
[    2.605311] usb 2-8.2: New USB device found, idVendor=05e3, idProduct=0608
[    2.772806] usb 2-8.4: New USB device found, idVendor=0925, idProduct=3881
[    2.973308] usb 2-8.2.2: New USB device found, idVendor=046d, idProduct=c03d
[    3.144182] usb 2-8.2.3: New USB device found, idVendor=08bb, idProduct=2902
[ 8747.422023] usb 2-8.2.1: New USB device found, idVendor=067b, idProduct=2303
[ 8752.036025] usb 2-8.2.4: New USB device found, idVendor=16c0, idProduct=05dc

For more info on the commands above type:

man dmesg

man lsusb

man grep

man man

man woman


You'll get the idea.




Doing magic with a USD 7 Logic Analyser:

Bunch of old projects with AVR's:

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Naccache wrote:

Thank's for the help! I'll see if I can find a USBASP in a hurry.


What's the best way to ensure that the product I'm looking at is a USBasp?


The simple answer is:  You can never believe Ebay sellers.


However,  things like USBASP are available locally.   I could buy one from a UK seller and get it next day. 

If you buy from China,   it is cheaper.   You wait 10-20 days.   You do not know what you will get until it arrives.

If you want to avoid the HID firmware.   Look for descriptions like this:

Not need installing the driver,can be find Quickly when Plug into computer.

Perfect support for WINXP , VISTA, WIN7 …operating system.

Using the USB port power supply, 500mA recoverable fuse , short circuit flow insurance care, the target board can alsowith USB .

The download is complete, does not affect the operation of the target board.

Support S51 and AVR chips burn faster than the parallel port ISP faster, more stable; is not the best choice for the parallel port of the notebook and computer use. ( 3.3V version can not support the S51 , S51 series 3.3Vcan not download).

Using the latest version of the super-stable firmware, hardware jumpers to select low-speed download without having to download faster, more stable.

 The "Not need installing the driver," is the biggest clue that it might be HID.


Another advert says:

Support software: AVR_FIGHTER, Progisp1.72

AVR_FIGHTER looks just like Progisp1.72 i.e. all in Chinese.


Of course,  if I understood Chinese,  it might be easy to access this HID device.   It might even be possible to write command line access.   Some people actually like GUIs !!!


It does rather look like bare pcbs are non-HID.   Sexy Aluminium cases are HID.    I am not putting money on it.



Last Edited: Tue. Jun 27, 2017 - 12:11 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Oops, I apparently didn't read all posts properly.

I've bought a bunch of usbASP's over the years and they all seem to work.

Once laid them next to each other and I at least had 3 different versions.

I know for sure I've had success with the versions from "baite" whith the atmega8 under 45 degrees and the black pcb


Or buy directly from Fischl:


And when you have one working you can reprogram the others with better firmware.


Also note that avrdude supports a lot of different hardware for programming, including a few which are especially designed to bootstrap your first programmer.

I used it ages ago (From before Ali express) to program my first programmer with just a breadboard and a few resistors on an lpt port.

Nowadays avrdude has support for almost any device which supports linus and a few GPIO pins (Raspi, BBB, etc).

Doing magic with a USD 7 Logic Analyser:

Bunch of old projects with AVR's:

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes,  of course you can change firmware if you have a second programmer.

Many people replace the excellent Chinese firmware (as found on Baite) with inferior German firmware.


However,  the HID driver that comes from zhifengsoft is completely different.    The only software that works is from zhifengsoft.

Ok,  it works with its GUI.    But does not work from a command line.

Yes, you can replace the zhifengsoft firmware if you want.