The finished result of this project is to create an AVR-compatible In-Circuit Serial Programmer using an ATtiny85 as the controller. The board will interface using the open-source USB protocol and is able to program a range of AVR compatible microcontrollers with it. The cost is around $16 for which you can easily purchase a fully assembled and tested device, but I just found it so neat to be able to create my own programmer.
The schematic, code and drivers listed on this page are mostly all works of others so I will not take credit for that. I merely have this page here to show you how it's done and what the end result looks like.
- source code
- binary (.HEX)
Firmware version 1.3 File:Littlewire v13.zip
Firmware version 1.1 File:Combined.zip
- program the programmer
I used a pololu programmer to program this project onto a new ATtiny85 microcontroller.
These are the commands to flash the hex file into the chip:
(I copied the contents of a little batch file)
set PROJECT=littlewire_v13 set PORT=\\.\USBSER000 set GCC_DEVICE=attiny85 set PGM_DEVICE=t85 set PGM_PROTO=avrispv2 echo erase chip avrdude -c %PGM_PROTO% -P %PORT% -p %PGM_DEVICE% -e echo write program to chip avrdude -c %PGM_PROTO% -P %PORT% -p %PGM_DEVICE% -U flash:w:%PROJECT%.hex -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xfe:m
- Final result
- usage instructions
Before I created my own programmer I was using the (also very simple) programmer from Pololu. In order to program avr's with this programmer I used the following avrdude command line:
Pololu programmer avrdude command to program an ATtiny85
set PORT=\\.\USBSER000 set PGM_PROTO=avrispv2 avrdude -F -c %PGM_PROTO% -P %PORT% -p t85 -U flash:w:myproject.hex -D
With the new programmer I have to change things slightly, just tell avrdude we're using a different programmer:
set PORT=\\.\USBSER000 set PGM_PROTO=usbtiny avrdude -F -c %PGM_PROTO% -P %PORT% -p t85 -U flash:w:myproject.hex -D
- drivers for windows
NOTE: the drivers for Linux are already supported in recent Linux kernels.
- source design from LittleWire