USBASP MOD

Modifications to the USBASP AVR Programmer

What is USBASP?

USBASP is a wonderful device from Thomas Fischl. http://www.fischl.de/usbasp/ It's used to program a vast array of Atmel microcontrollers. I've been a big fan of Atmel microcontrollers for several years now and I've built a couple of these handy devices myself.

This project I've dubbed usbasp+ and is a modification to the programmer with added support for the on chip UART enabling it to communicating with your AVR projects through the programmer device.

When combined with the PC host component USBASP_tty.exe you will be able to send and receive TTL level serial data to/from your microcontroller project via the programmer.

You can also build your own programmer but you will still need access to a programmer to install the firmware.
OR For a few dollars you can find one of these on ebay (actually you'll want to get at least two)

These devices are not exactly built to the schematic shown.

Pins 4,6,8 and 10 on the 10 pin connector are all connected to GND.

I'll explain the modification steps below

History:

One of the first things I like to do when developing a microcontroller based project is to first get some sort of serial communication going for invoking and testing individual function as they are added to the project as well as debugging the entire system.
Most all of the Atmel chips have at least one UART but if not it's usually not to difficult to emulate one.
In the past I'd need to have a USB-Serial adapter as well as the USBASP programmer connected to my target device throughout the development process. This got a little clumsy sometimes, especially if the project was in an inconvenient location or needed to be moved around a lot. I noticed the 2 connections to the RXD and TXD pins in the USBASP schematic and wished for some way to use them or any other method to make the programmer talk to my project in something other than programming mode. Finally I just started playing with the source code and figured out how to make it happen.

Hardware modifications

Step 1: drill some tiny holes near pins 4&6

Un-solder pins 4 & 6 and lift them away from the board (difficult to see)

Find some very thin wire and carefully connect 2 wires to pins 30 & 31 of the ATMega 8 chip.

Find the smallest 1k resistor you can and attach it to pin 4 on the 10 pin connector.

Run the wires through the holes and connect pin31 to the 1k resistor and pin30 to pin 6 on the 10 pin connector. Use a tiny piece of electrical tape to cover the GND pads on the board and add a dab of hot glue to keep everything in place.

(sorry for the fuzzy image here)

Here's what the PC screen looks like with an example of a menu generated by the target device.


Download Links:

USBASPTTY.zip Source code and binaries for the USBASP firmware update and the PC Terminal program

USBasp_ATMega8.pdf USBASP Schematic.