AVR-ISP-MK2 - Open Source Hardware Board
AVR-ISP-MK2 - Open Source Hardware Board AVR-ISP-MK2 - Open Source Hardware Board
Olimex AVR-ISP-MK2 USB2.0 Microchip Atmel AVR ISP MKII compatible AVR programmer with ICSP PDI TPI support
Price19.95 EUR
10 - 49 pcs17.96 EUR
50 - 10000 pcs15.96 EUR
In Stock

AVR-ISP-MK2 supports the programming of Atmel 8-bit AVR microcontrollers with ISP, PDI or TPI interfaces. Using the AVR/ATMEL Studio software, designers can program tinyAVR and megaAVR devices using the ISP Interface, tinyAVR devices using the TPI interface, and AVR XMEGA devices using the PDI Interface. The programmer also works with AVRDUDE.


  • Tested and working with AVR Studio 4, AVR Studio 5, Atmel Studio 6, Atmel Studio 7
  • Tested and working with Arduino and AVRDUDE after a firmware change
  • Tested and working with Windows XP, Windows 7, Windows 10, Debian Linux, Ubuntu 14.04
  • Connects to PC via USB type B at 2.0 Full speed
  • No need for external power supply as it takes the power supply from USB
  • Uses Atmel's 2x5 pin ICSP and 2x3 pin PDI and TPI connector layout
  • Works with 5V and 3.3V targets and can supply target with power (selectable) 
  • Programs both flash and EEPROM
  • Supports fuses and lock bit programming
  • Upgradeable for future device support
  • Supports target voltages from 1.8V to 5.5V
  • Adjustable ISP programming speed (50Hz to 8MHz SCK frequency)
  • Dimensions: (45x30) mm ~ (1.7x1.2)" + 20 cm ~ 8" cable


  • This programmer is unrecognized in Atmel Studio 7. What should I do in order to get it recognized?
  • If you get error with message "MPLABCOMM_INVALID_HANDLE" - you can fix it by navigating in the menus of Atmel Studio 7. Go to Tools -> Options -> Tools -> Tool Settings -> Check Firmware -> False. (shown here: https://i.imgur.com/XWjed2c.jpg )
  • Update the firmware. Make sure that the suitable drivers for Atmel Studio are installed. Make sure that the libusb or libusb-win32 drivers (the drivers suitable for AVRDUDE operation) are uninstalled.

    To update the firmware please, follow the steps listed below

    1. Connect the programmer to the USB and with a sharp object (needle or pin) press the upgrade pin - it is in a small hole at the back of the board (this will start the bootloader and will turn off the LED, it will also probably show a new unrecognized device in the device manager for which we will install drivers in step 3)
    2. Download and install the latest version of "Atmel Flip" software (it can be downloaded from the Atmel's web-site)
    3. Open its install folder and update the software of the unrecognized device (usually under the "Other devices" tab) with the drivers from folder named "usb"; the device should now be recognized as AT90USB162 under "libusb-win32" tab
    4. Start "Atmel FLIP" and click "Select a target device" -> choose AT90USB162
    5. Click "Select a Communication Medium" and then USB medium
    6. From "File -> load HEX file" choose this HEX (CLICK TO DOWNLOAD) and click "RUN" in the "Operations Flow" section
    7. Disconnect the AVR-ISP-MK2 from the USB and connect it again
  • Does the firmware of AVR-ISP-MK2 differ from the original Atmel firmware?
  • The firmware of AVR-ISP-MK2 is based on the LUFA project by Dean Camera. It is a constant work-in-progress.
  • I use Windows 10 and Atmel Studio 7 but I have some problems connecting to AVR-ISP-MK2?
  • Try the driver inside the following archive (there are installation instructions inside): recommended drivers
  • Previously I used AVR Studio 4 successfully but when I installed Atmel Studio 7 I can no longer connect to AVR-ISP-MK2 in AVR Studio 4. What can I do to use AVR Stduio 4 and Atmel Studio 7 at the same time?
  • The drivers installed with Atmel Studio 7 overwrote the drivers that worked with AVR Studio 4. These drivers are not compatible you would have to downgrade the drivers manually. The official Atmel workaround can be found here: http://atmel.force.com/support/articles/en_US/FAQ/Downgrading-tools-to-use-older-Jungo-driver
  • I want to use AVR-ISP-MK2 with Arduino IDE. What should I do?
  • If you use Windows 10 it should work out-of-the-box - no changes required. If you use older Windows versions you need to perform a firmware change to a firmware suitable for AVRDUDE and to switch your drivers to the libusb ones drivers. A detailed explanation can be found in the user's manual.
  • I have performed a firmware switch. My drivers are properly installed. Still I can't properly program my target with AVRDUDE. I also tested with the latest Arduino IDE. What is the problem? Is my programmer bricked?
  • The hardware of your AVR-ISP-MK2 is fine. There is a software bug that affects LUFA-based programmers in newest releases of AVRDUDE. Either use AVRDUDE versions prior to 6.x.x or apply this patch to the AVRDUDE sources and compile.

    The same problems appears in newest releases of Arduino IDE – they use AVRDUDE versions 6.0.1 or newer. The last suitable Arduino IDE version that uses pre-6.x.x AVRDUDE version is Arduino IDE 1.5.7.

    The official bug report is here: https://savannah.nongnu.org/bugs/index.php?40831

    More about the issue can be found here: http://www.avrfreaks.net/forum/lufa-based-avrisp-mkii-doesnt-work-avrdude-601


  • XMEGA Devices: ATxmega16A4U, ATxmega32A4U, ATxmega64A3U, ATxmega128A3U, ATxmega192A3U, ATxmega256A3U, ATxmega256A3BU, ATxmega64B3, ATxmega128B3, ATxmega64B1, ATxmega128B1, ATxmega16A4, ATxmega32A4, ATxmega64A4U, ATxmega128A4U, ATxmega64A3, ATxmega128A3, ATxmega192A3, ATxmega256A3, ATxmega256A3B, ATxmega64A1, ATxmega128A1, ATxmega16D4, ATxmega32D4, ATxmega64D4, ATxmega128D4, ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3
  • MegaAVR Devices: ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega8A, ATmega16, ATmega162, ATmega164A, ATmega164P, ATmega164PA, ATmega165P,ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega16A, ATmega32, ATmega324A, ATmega324P, ATmega324PA, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega32A, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega64A, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega1284P, ATmega128A, ATmega2560, ATmega2561, AT90CAN128, AT90CAN32, AT90CAN64, ATmega16M1, ATmega32M1, ATmega64M1, AT90PWM1, AT90PWM161, AT90PWM216, AT90PWM2B, AT90PWM316, AT90PWM3B, AT90PWM81, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega16U2, ATmega16U4, ATmega32U2, ATmega32U4, ATmega8U2, ATmega169A, ATmega169P, ATmega169PA, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega329A, ATmega329P, ATmega329PA, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P
  • tinyAVR Device: ATtiny4, ATtiny5, ATtiny9, ATtiny10, ATtiny13A, ATtiny13, ATtiny20, ATtiny40, ATtiny24A, ATtiny24, ATtiny44A, ATtiny44, ATtiny84A, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny261A, ATtiny261, ATtiny461A, ATtiny461, ATtiny861A, ATtiny861, ATtiny26, ATtiny2313A, ATtiny2313, ATtiny4313, ATtiny43U, ATtiny28L, ATtiny48, ATtiny88, ATtiny87, ATtiny167
  • Automotive AVR Devices: ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, ATtiny87, ATtiny88, ATtiny167, ATtiny261, ATtiny461, ATtiny861, ATmega48 , ATmega88 , ATmega168, ATmega328P, AT90CAN32 , AT90CAN64, AT90CAN128, ATmega32C1, ATmega64C1, ATmega16M1, ATmega32M1, ATmega64M1, ATmega164P, ATmega324P, ATmega644P, ATmega169P, ATmega48PA, ATmega88PA, ATmega168PA