SPI Programmer - Miniprog

If there is no ISP adaptor in a circuit and the use of a bootloader is not possible, then the microcontroller has to be programmed in an external circuit. This external programmer could be build on a breakboard, or if it is required more frequently, a PCB might be handy. This PCB provides a simple adaptor to connect a 10pin SPI header to some sockets. As additional option, it is possible to use serial high voltage programming, allowing to use the reset pin as extra I/O. This especially interesting for the AVRs who have few pins (DIP8, DIP14). The software for HV programming is based on the unbricking software found here and an earlier version here.



  • Four sockets for AVR programming
    • IC1 14pol: ATtiny44 and similar (ATtiny24, ATtiny84)
    • IC2 28pol: ATmega8 and similar (ex AT90S4433, ATmega168)
    • IC3 20pol: ATtiny2313 and similar (ex AT90S2313)
    • IC4 8pol: ATtiny45 and similar (ex ATtiny13, ATtiny25, ATtiny85)
  • Each socked can be clocked by a shared crystal
  • If an external clock is required, the reset for IC4 can be disconnected, then an AVR in socket IC4 can generate a (slow) clock an AVR in one of the other three sockets.
  • A power LED indicates power.
  • One LED is connected to a pin of IC1, IC2, IC3, allowing a simple visual check if the clock source is selected properly (right blinking frequency)
  • Some ATtinys can be high voltage programmed with a serial interface. Namely those fitting in IC1 or IC4. A stabilized external +12V power supply and proper fitting HV programmer is required.
  • A sample code for HV programming with the help of an external ATmega8 and a serial port is provided. On the host side the programmer (YASAP) can be used with a VT100 terminal (19200 baud). For Linux a simple .hex -> yasap program is provided.

Software and schematics

As always, use at your own risk.
miniprog-v1-1.zip Software and schematics version 1.1
miniprogV1-1.pdf Just the schematics