V-USB Reference Implementations


AVR-Doper is an STK500 compatible In-System Programmer (ISP) and High Voltage Serial Programmer (HVSP). It comes with a built-in USB to Serial adaptor to connect directly to USB.
Warning: There is a serious bug in ISP mode in all versions up to 2007-08-07! Please upgrade to at least 2007-12-01. See release notes below.


  • HVSP allows using RESET pin for I/O, which is especially beneficial on 8 and 14 pin devices.
  • Simple hardware which can be built on a single sided PCB. No special USB chips are needed.
  • Compatible to Atmel’s STK500 with built-in USB to Serial converter.
  • Adjustable ISP clock allows flashing of devices clocked at very low rate, e.g. 32 kHz.
  • ISP clock can be lowered with a jumper (if the programmer software does not support setting the ISP clock).
  • Second USB to Serial converter for processing debug output from the target.
  • HVSP connector compatible with HVProg, another STK500 compatible programmer (see www.der-hammer.info/hvprog/index_en.htm).
  • Uses USB power supply, no external supply required.
  • Firmware can be compiled to run on metaboard hardware and USBasp hardware.
  • Open Source (including firmware and schematics).

More Information

More information about the project and all the sources for hardware, software and firmware can be found in the download below.

Note: Implementing a USB CDC device with V-USB violates some aspects of USB 1.1. CDC-Mode may therefore fail or be unreliable on some operating systems or computer hardware. Please look at the compatibility list included in the AVR-CDC project or test a simplified prototype on breadboard with your computer if you want to use CDC mode.

We recommend that you use AVR-Doper in HID mode instead, which has no such problem. This mode is supported by avrdude. More information about interface modes and their relative advantages can be found in the project description.

Derived Work

There are many ways to improve AVR-Doper. Some people have modified the circuit to fit particular needs:
  • www.rototron.info: This is a simplified version without the High Voltage Serial Programming part.
  • hobbyelektronik.org (German description only): A somewhat smaller PCB for AVR-Doper.
  • www.kreuzholen.de: This version omits the High Voltage Serial Programming part, but adds ESD protection and has a PCB which fits well into a commercial case. This site also offers an alternative debug terminal which utilizes AVR-Doper’s built-in serial interface.
  • www.z-v.si: This is an alternative to the board above, but with a single sided PCB.
  • Opto-Isolated AVR-Doper: This is an ISP-only version with opto-isolation between host and target.
  • AVR tiny Doper SE: This is a German construction manual for a tiny version with full set of features.


To download an archive with firmware and circuit diagram, please click one of the files below.

Download AVR-Doper
AVR-Doper.2012-12-08.tar.gz Download485 kB
AVR-Doper.2012-12-08.zip Download531 kB
AVR-Doper.2008-11-27.tar.gz Download467 kB
AVR-Doper.2008-11-27.zip Download503 kB
AVR-Doper.2008-04-27.tar.gz Download457 kB
AVR-Doper.2008-04-27.zip Download488 kB
AVR-Doper.2008-04-26.tar.gz Download457 kB
AVR-Doper.2008-04-26.zip Download488 kB
AVR-Doper.2008-02-05.tar.gz Download425 kB
AVR-Doper.2008-02-05.zip Download455 kB
AVR-Doper.2007-12-01.tar.gz Download423 kB
AVR-Doper.2007-12-01.zip Download453 kB
AVR-Doper.2007-08-07.tar.gz Download387 kB
AVR-Doper.2007-08-07.zip Download420 kB
AVR-Doper.2007-03-29.tar.gz Download376 kB
AVR-Doper.2007-03-29.zip Download396 kB
AVR-Doper.2007-02-01.tar.gz Download379 kB
AVR-Doper.2007-02-01.zip Download398 kB
AVR-Doper.2006-10-23.tar.gz Download378 kB
AVR-Doper.2006-10-23.zip Download397 kB

Release Notes

Release 2012-12-08

  • Fixed interrupt vector name for ATMega48/88/168 for USART Rx.
  • Turn on green LED on first USB packet.
  • Added some delays in hvspExecute() to conform to datasheet.
  • Fixed two bugs in ispProgramMemory() which affected completion polling.
  • Improved UART Rx interrupt so that global interrupts are not disabled for an extended period of time.
  • Updated to newest version of v-usb.
  • Modernized code for current avr-gcc.
  • Added patch from Sjors Hettinga to avrdebug. This patch adds HID support for Windows in avrdebug-hid.exe.

Release 2008-11-27

  • Fixed report ID for debug data HID interface. This interface is not yet in use because no host side driver has been written.
  • Fixed interface detection for Metaboard/USBasp hardware.
  • Don’t configure Timer 1 for USBasp hardware.

Release 2008-04-27

  • Fixed bug from previous release: LED pin was not configured as output on AVR-Doper hardware.

Release 2008-04-26

  • Assigned a serial number. This should help to assign a consistent COM device regardless of the USB port used.
  • Improved ISP speed.
  • This version can be compiled for metaboard and USBasp hardware

Release 2008-02-05

  • Reverted to old algorithm for entering HVSP mode.
  • Added .inf file for Windows Vista. This is required for CDC mode.

Release 2007-12-01

  • Fixed a serious bug in ISP mode! Reading fuse values and similar commands with avrdude could have unpredictable results on the chip, including chip erase etc. Please upgrade to this version!
  • Fixed HVSP mode for ATTiny24, 44 and 84 in circuit: Pins 11, 12 and 13 of the programming socket must be connected to GND.
  • HVSP mode is now tested with ATTiny11, 12, 13, 44 and 85.

Release 2007-08-07

  • Transmit high address bits for devices with more than 64 kB of Flash.
  • The command line tool "avrdebug" accepts keyboard input now which is sent to the target device over the serial interface.
  • The "avrdebug" tool checks for both modes now: CDC and HID.

Release 2007-03-29

  • Connected pins 2 and 3 of the 8 pin programming socket. These pins are swapped on some 8 pin devices.

Release 2007-02-01

  • Fixed bug in ISP value polling. Value polling is used when programming older devices such as the AT90S8515.
  • Always round timer delay values up, never down.

Release 2006-10-23

  • Added patch for avrdude to support HID mode.
  • Updated Readme file with information about HID mode and avrdude.

Release 2006-09-12

  • Added compatibility macros to allow ATMega88 instead of ATMega8.
  • Ignore synchLoops parameter in ISP mode since avrdude sometimes sends 0.
  • Changed default ISP clock speed to 2 (instead of fastest).