Like me, you may have a few old Arduino boards or ATmega8 chips (in the boards) laying around from when you were first playing with Arduino. Those chips can still be really useful as the heart of a tiny âMinimal Arduinoâ setup.
A normal Arduino board contains support components that make it easy to use. If you want a smaller footprint, you can get one of the many Arduino work-alike boards. But if you want a really small footprint, and reuse your old parts, you can make an Arduino board using just five components:
â ATmega8 chip
â single 10k resistor
â single 0.1uF capacitor
â tiny breadboard
â some hookup wire.
(On the left, an IR remote controlled BlinkM. On the right an IR remote controlled RGB LED)
The Circuit
The minimal Arduino circuit is dead simple. It relies on the internal 8MHz oscillator (like the Lilypad Arduino). And like the Lilypad, it doesnât include a USB-to-serial. You have to provide that with a FTDI USB-to-serial cable or with an old Arduino board.
Getting the Arduino bootloader into the ATmega8
While the circuit is very similar to a Lilypad Arduino, the chip used is different. The ATmega8 has less memory and must be programmed slightly differently than the Lilypadâs ATmega168.
So a modified Arduino bootloader needs to be programmed into the ATmega8. The bootloader is a small program on the chip that listens to the serial port on power up and can reprogram the rest of the chip if instructed to. Here, a variant of the standard âArduino NGâ bootloader is used. The modifications are:
â uses internal 8MHz oscillator (no external part required)
â serial speed is 38400 instead of 19200 for faster uploads
Files for Minimal Arduino ATmega8 bootloader:
â atmega8_noxtal.zip
Unzip this file into the âarduino-0015/hardware/bootloadersâ directory of your Arduino installation to create the directory âatmega8_noxtalâ. The zip file contains:
â ATmegaBOOT.hex â the actual bootloader to program
â ATmegaBoot.c â the source code of the bootloader
â Makefile â Makefile to produce & program the bootloader
Actually programming the bootloader to the ATmega8 chip can be done in a few ways. I prefer using an AVRISPmkII programmer and an old Arduino board. Seat the ATmega8 into the Arduino, plug the AVRISP into the 6-pin âICSPâ header, plug both into USB, and program the ATmegaBOOT.hex file. If you are familiar with the command-line, go into the âatmega8_noxtalâ directory and type âmake ispâ to program. If not, you can have the Arduino software program it for you once you tell it about this new kind of Arduino board.
Read More: Minimal Arduino with ATmega8