Email address / Username  


Yet another LUFA-based programmer? Yes, it all started with another new programmer (also LUFA-based) broken at its very first use... So a new design developed with robustness and better parameters in mind appeared.

LUFA PROG is AVR programmer. As the name shows it is powered by LUFA – that's the well known AVRISP-MKII Clone project by Dean Camera that emulates AVRISP-MKII functionality but working on slightly different than usual hardware. The device allows programming of the entire 8-bit AVR range via ISP 6-pin as well as the PDI (XMEGA) and TPI (TINY). It works with AVR/Atmel Studio(4) 4, 5 and 6.1 in Windows, Avrdude 5.10 and above in Linux and avrdude in crosspack under OSX.

What the new programmer has to offer:


Of course all the features of  the great LUFA AVRISP-MKII Clone still count:



5 V supply voltage depends entirely on PC USB port. Practice shows that this voltage sometimes is less than 5 V;


The supply current offered to the target device depends entirely on the PC USB port where the programmer is connected to. As per USB specifications when any device is initially connected it is considered a low-power device allowed to draw maximum of 100 mA. During the enumeration process the device may ask its current limit to be increased by the host to 500 mA. This depends on the .MaxPowerConsumption descriptor. It is up to the host if additional power will be available so until allowed the device should draw no more than 100 mA. The AVRISP-MKII clone firmware announces 100 mA consumption (descriptors.c). Practice shows though that most PC USB ports can safely provide currents of up to 500 mA without special request that's why LUFA Prog's circuitry is designed for 500 mA;


Voltage drop on the 5 V programmer-supplied line is around 100 mV – around 4.9 V supplied to the target if 5 V is selected.


4 Sep 2014, FW 140302 and probably lower: Atmel Studio 6.2 issues "Tool connect failed" error (StatusCode: 131118) when trying to connect to the programmer. Lower versions work fine. While this issue is not resolved in new firmware, please use Atmel Studio version up to 6.1!


The programmer can be used with any type of AVR supporting ISP, PDI and TPI interfaces. The programming interface is selected by plugging the supplied interface cable into the corresponding connector: PDI for XMEGA chips, TPI for TINY chips and ISP 6-pin for the rest. Connector pinouts are different for each type of interface:

  ISP       PDI       TPI       XTAL
  1 2       1 2       1 2         1  


  1. Connect the programmer to any PC USB port using normal type-A to mini-USB-5-pin cable – it should be recognized as AVRISP mkII without supplying a driver. This is valid if the programmer is in Jungo mode. If the firmware is compiled with the RESET_TOGGLES_LIBUSB_COMPAT option this mode is indicated by two yellow blinks of the status LED (STATUS) when the USB interface is connected;

  2. In AVR/Atmel Studio the AVRISP mkII should be selected in the configuration dialog.


The bi-color STATUS LED shows the status of the programmer:

The red PROTECTION LED shows the target protection status:

Note: If it is not possible to enter programming mode please LOWER YOUR INTERFACE CLOCK until all functions are useable! 2 MHz ISP clock not always works with a 8 MHz devise for example although the ISP clock is exactly 1/4 of the device clock.


If the firmware is compiled with the  RESET_TOGGLES_LIBUSB_COMPAT token enabled pressing the RST/CMP button while connected toggles programmer's mode between Jungo and libUSB compatibility. The Jungo mode is then indicated by two yellow blinks of the STATUS LED at startup and the libUSb mode – by four yellow blinks of the same LED at startup.


Firmware is open-source and can be downloaded from the LUFA page. After downloading the entire package the firmware is available under LUFA-xxxxxx\Projects\AVRISP-MKII. It is suggested to use the latest available firmware.

Before compiling AT90USB162 must be selected as target device. Equivalent parameter is MCU=at90usb162. The CPU frequency parameter has to be F_CPU=16000000.

Optionally configuration tokens can be enabled/disabled. They are available under LUFA-xxxxxx\Projects\AVRISP-MKII\Config\AppConfig.h.


After successful compilation the resulting .hex file has to be programmed into the programmer via the USB interface. To update the firmware the programmer has to be put in programming mode, i.e. bootloader activated – please follow these steps:

  1. When the USB interface is connected using a fingernail or tipped object press and hold the RST/CMP button, then press and hold the HWB/UPD button, then release the RST/CMP button and finally release the HWB/UPD button;

  2. Existing AVRISP mkII device should disappear, the STATUS LED should go off and a new AT90USB162 device should be recognized;

  3. Start your programming software, set target device AT90USB162 and establish connection;

  4. Program the .hex file.


In rare cases when using FLIP it may fail at writing the new firmware - shut down your computer, start it and try again.


The programmer is shipped with following firmware options enabled:


140928 Jungo compatible
Jungo compatible with rescue clock
Jungo/libUSB switchable with rescue clock
libUSB compatible with rescue clock
libUSB compatible
FW version .hex file
140302 Jungo compatible
Jungo compatible with rescue clock
Jungo/libUSB switchable with rescue clock
libUSB compatible with rescue clock
libUSB compatible
FW version .hex file
130901 Jungo compatible
Jungo compatible with rescue clock
Jungo/libUSB switchable with rescue clock
libUSB compatible with rescue clock
libUSB compatible


Please do not use solvents for cleaning the programmer – use wet cloth instead.

We at use only essential technical cookies to identify sessions. These cookies cannot be used for user identification or marketing-related purposes. This website cannot operate properly without this types of essential technical cookies.
Terms, Conditions and Privacy ePrivacy Directive 2002/58/EC