USBTiny-MkII SLIM programmer (AVRISP-MKII clone) supports all Attiny, Atmega, and Xmega µcontrollers. It has three programming interfaces: ISP, PDI, and TPI. It works with AvrStudio or AvrDude. Small convenient board, contains double direction voltage translator for all interfaces and working from 1,2V, jumper for target chip voltage selection 5V or 3,3V (LDO stabilizer), and status LEDs. The heart of the device is a AT90USB162 controller with hardware USB, so it can provide fast programming speeds.
Circuit built and based on LUFA project (link), programmer inspired by USBTiny-MKII (link), and USBTiny MKII PL (link). I used MAX3002 in place for original GTL2003 translator, exactly like author of the PL version – this chip is more available. This change also need a change of code, which is described in last link – code in attachment is already moded – original will work incorrectly.
Programmer has a three IDC 6pin sockets to provide support for three programming protocols: ISP, PDI, and TPI. They allows to programm all of available Atmega, Attiny, and Xmega chips. PCB just looks complicated, but it can be also homemade. Vias are not placed under chip or other elements so they can be made with a wire. Vias placed under the at90usb162 chip derives its other free pins to pads on the bottom side of pcb – so circuit can be used also as a test board for other codes using hardware USB. Code change is very simple, it is made trough built-in USB bootloader and free tool from Atmel – FLIP.
Under IDC sockets a voltage selection jumper is placed – you can select voltage which can be used to power your target chip. Short the 1 and 2 for 5V, or 2 and 3 for 3,3V. For voltage reduction, LDO MCP1825S-3302ED stabilizer is used – but you can use any pin-compatible one, like LF33. Removed jumper will disconnect voltage from the “translated” side, and you have to provide this voltage from target chip to allow programmer to work.