Eagle files and gerbers for a programmer designed for Microchip's series of AVR microcontrollers. There is also a KiCad variant in the kicad directory, but I haven't tried it yet. It was ported from Eagle and I re-routed the board.
Microchip's series of AVR chips are simple 8 bit microcontrollers often used in Arduino boards. This programmer board can be used to program fuses and flash for bare AVR chips.
This board is based on the hardware design for USBASP and is 100% compatible wth the USBASP firmware. I designed it to support different target voltages (namely 3.3v) and wanted built-in serial IO so I could connect a single connector to boards I design.
The board shows up as two USB devices: a FTDI serial port and a USBASP programmer. There is an on-board USB hub that exposes both devices. Target voltage is selectable through the VTARG switch and has three values:
If your board provides voltage of its own make sure you keep VTARG in the middle position.
The different voltage levels are shifted through an array of level shifters. This circuit will change direction of the signals if PGM is bridged, which allows for initial programming of the board. All connections other than TXD and RXD also go to a high-impedance state whenever the red programming light is off (I reuse that signal line so I don't need any modifications to the USBASP firmware). Signal direction and tri-state is controlled by discrete logic, again so no USBASP mods are needed. The level shifters I'm using go to high-impedance state when VCCA or VCCB is grounded. This is handled by a push-pull pair of mosfets driven by discrete logic.
Once the board is complete it must be flashed with the USBASP code. You need another working programmer for this.
If successful, a green LED should be lit on the board. This LED is controlled by the USBASP firmware so it's a good indicator everything's working. Remove the bridge to PGM and you should be good to go.