How To Check Usbasp Firmware Version

Posted on  by 

Usbasp driver

The USBASP is a popular and inexpensive programmer for AVR controllers. These are frequently sold with an outdated firmware. Find out below how to easily update it to support TPI and get rid of warning messages.

J2 Firmware upgrade Target VCC J3 slow SCK option Firmware upgrade (hooks to ISP reset) So mine uses J3 instead of J2. I had to follow the traces to see which jumper was which as there as no documentation. Also complicating matters is that a few of the USBasp boards change the i/o pins used and ship with altered firmware. When I fkashed my first kk2, I did it using the usb avr programmer that came with the KK 5.5. It did not work with the official usbasp drivers, but I'd found a video somewhere on youtube that showed how to use it by installing libusb. Now I can't seem to find it anymore. This was when I had a 32 bit version of Win 7.

The problem

The USBASP is an open-source in-circuit programmer for Atmel AVR controllers designed by Thomas Fischl. On his website1, you can download the most recent firmware and find all the information to build one. You can also buy it for really cheap from several places on the web. However the cheap versions may have an outdated firmware. One sign of old firmware is the following warning message:

However, this is just a warning and the programmer is probably still uploading the files correctly. One feature your USBASP is missing is the support for Tiny Programming Interface (TPI)2 required to program smaller AVR microcontrollers like the ATtiny10. Therefore if you want to program the ATtiny10 you better update the USBASP.Updating the firmware it’s relatively easy and can be done with just an Arduino and some jumpers.

- a common USBASP programmer -

Set up Arduino as ISP

We need Arduino to act as a programmer. To do so we just need to upload a sketch already available within the Arduino examples.Therefore from the Arduino IDE:

  1. Go to File > Examples > ArduinoISP
  2. Connect Arduino
  3. Click on Upload

Done. Now Arduino is ready to upload a firmware to another device, the USBASP in our case.

Wiring

The following scheme shows the connections between the Arduino pins and the USBASP. Double-check the connections as most of the issues will come from a loose wire or wrong pins connected.

ArduinoUSBASP
5V2
GND10
137
129 (MISO)
111 (MOSI)
105 (RESET)

Close jumper 2

Make sure you close the JP2 in on the USBASP board. Without doing so the board cannot be reprogrammed.To close jumper 2 on the USBASP you can solder something to it or simply use a wire and tighten it to both holes. Make sure it doesn’t move and lose the connection halfway the firmware upload.

- close the jumper using even just a wire or a paper clip. No need to solder. -

Firmware

The firmware can be downloaded from Thomas Fischl website. Once you have downloaded the latest version you should find a .hex file inside the archive. That is the file we’ll upload to the device.In case of the 2011 firmware (the most up-to-date the time of writing), is the following:

avrdude

The final step is to upload the firmware using avrdude3. I will assume you have the Arduino IDE installed. Then the easiest way to get Avrdude is to look for it inside the Arduino IDE files (alternatively you can get it from the web).The avrdude executable will be at the following location:

We will also need a configuration file avrdude.conf that can be found here:

Copy4 these two files and paste them inside a folder together with the firmware file (usbasp.atmega8.2011-05-28.hex in this case).Then you need to identify the port used by Arduino. To find it:

Version
  1. Connect Arduino to the USB
  2. Open the Arduino IDE
  3. Go to Tools>Port

Make note of the port used (/dev/cu.usbmodem14101 in my case)From the terminal navigate inside the folder where you placed avrdude and type the following command using the right port for the option -P

Done! If you don’t get any error message, your USBASP is ready.

References

How To Check Usbasp Firmware Version For Windows 7

  1. Thomas Fischl website↩

  2. TPI Notes from Atmel ↩

  3. Avrdude user manual↩

  4. Here I suggest to copy the avrdude executable and configuration file inside a folder with the .hex file just because when running it from the terminal the path is shorter ↩

Coments are closed