AVR_ISP_Programmer


AVR_ISP_Programmer C

Architecture unaware library that tries to program AVR devices by ISP.
Architecture unaware library that tries to program AVR devices by ISP.

AVR ISP Programmer

Program AVR chips from almost any microcontroller. This library bit-bangs the ISP protocol in plain C, so the only thing tying it to your hardware is a thin port layer you write yourself. Born for the cramped ATmega48, it now also runs on the ESP32-S2.

What it is made of

  • One header-only C library implementing the AVR ISP serial programming protocol by bit-bang.
  • A thin port layer โ€” eight functions for reset, SCK, MOSI, MISO and microsecond delay โ€” that you fill in per target.
  • Routines for chip erase, flash page load, EEPROM, fuse bits and lock bits.
  • Proven on ATmega48 (programmer) and ESP32-S2 (programmer); targets ATmega48.

How it works

Bring your own IO layer. Once you wire up reset, SCK, MOSI, MISO and a delay function, the library takes over: it enters serial programming mode by pulsing reset and sending `0xAC 0x53`, then verifies the echo. Every SPI byte is clocked out manually, MSB first. The higher-level functions map directly onto AVR's serial programming instructions, covering erase, flash, EEPROM, fuses and lock bits, with ready/busy polling keeping writes in step with the target's own timing.

License: Apache License 2.0

  • avr
  • avr-isp
  • avr-programming
  • esp32

๐Ÿ“… Created 2024-02-24 ยท ๐Ÿ”„ Updated 2026-08-07

View on GitHub โ†’