Geppetto Electronic's Latest Board Makes Programming an AVR From a Raspberry Pi a High-Speed Cinch
Hooking onto the GPIO header, this "cap" accessory works hand-in-hand with a patched avrdude for high-speed AVR programming.
Geppetto Electronics' Nick Sayer has launched a board that aims to make programming AVR microcontrollers from a Raspberry Pi as simple as possible, by hooking into the general-purpose input/output (GPIO) header.
"This is an adapter board that allows you to perform AVR programming with Raspberry Pi GPIO pins," Sayer explains. "The board includes a 3 position switch to allow you to provide target power at either 3.3 volts, 5 volts, or self-powered. To protect the Raspberry Pi, the power is supplied through an AP2331 current limiting switch. This should allow you to hot-plug the target without any risk of transients causing your Pi to reboot."
"The programming pins of the target are connected through a level-shifting bus buffer chip so that programming will work at any (reasonable) target voltage. The programming pins are also held at a high impedance state (virtually disconnected) when programming is not taking place, so that the programmer won't interfere with normal operation of the target. Lastly, there is an LED that will turn on when programming is taking place (when RESET is held low and the programming signals are active)."
On the software side, the adapter can be used via avrdude
via bit-banging — but that's not the most efficient approach. "There is a higher performance variant of this that actually uses the Pi SPI bus," Sayer notes. "To use it, you must first enable SPI in raspi-config
. Once this is done, you'll see /dev/spi0.0 show up."
The board, which comes as a kit with the PCB, a shrouded six-pin DIP header, and a 26-pin stacking header, is now available from the Geppetto Electronics Tindie store priced at $12.50; more details on the board and how to patch avrdude
for improved performance can be found on the project's Hackaday.io page.