Minimal Arduino with ATmega8

Summary of Minimal Arduino with ATmega8


Summary (under 100 words): This article describes building a Minimal Arduino using an ATmega8 and five parts: ATmega8 chip, a 10k resistor, 0.1µF capacitor, tiny breadboard, and hookup wire. It uses the ATmega8 internal 8MHz oscillator and requires an external FTDI USB-to-serial cable or an old Arduino for uploads. A modified Arduino NG bootloader (at 38400 baud) tailored for ATmega8 is provided; install it into arduino-0015/hardware/bootloaders/atmega8_noxtal and program the ATmegaBOOT.hex via ISP (AVRISPmkII or Arduino as ISP) or using the Arduino software.

Parts used in the Minimal Arduino with ATmega8:

  • ATmega8 chip
  • 10k resistor (single)
  • 0.1uF capacitor (single)
  • Tiny breadboard
  • Hookup wire
  • FTDI USB-to-serial cable or old Arduino board (for serial uploads)
  • AVRISPmkII programmer or Arduino as ISP (for programming bootloader)

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.
Minimal Arduino with ATmega8
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.
Minimal Arduino with ATmega8 Schematic
Read More: Minimal Arduino with ATmega8

Quick Solutions to Questions related to Minimal Arduino with ATmega8:

  • What components are needed to build the Minimal Arduino with ATmega8?
    ATmega8 chip, one 10k resistor, one 0.1uF capacitor, a tiny breadboard, hookup wire, plus an FTDI USB-to-serial cable or old Arduino for uploads; and optionally an AVRISPmkII or Arduino as ISP for bootloader programming.
  • Does the Minimal Arduino require an external crystal?
    No; it uses the ATmega8 internal 8MHz oscillator so no external crystal is required.
  • How do I get the Arduino bootloader onto the ATmega8?
    Install the atmega8_noxtal bootloader files into arduino-0015/hardware/bootloaders, then program ATmegaBOOT.hex using an AVRISPmkII programmer or Arduino as ISP (make isp) or via the Arduino software after adding the board.
  • What modifications are in the ATmega8 bootloader variant?
    The bootloader uses the internal 8MHz oscillator and a serial speed of 38400 instead of 19200.
  • Where do I put the atmega8_noxtal bootloader files?
    Unzip into the arduino-0015/hardware/bootloaders directory to create atmega8_noxtal.
  • Can I use an old Arduino board to program the bootloader?
    Yes; seat the ATmega8 into the old Arduino, plug the AVRISP into the ICSP header, and program the ATmegaBOOT.hex, or use the Arduino as ISP method.
  • What serial speed does the modified bootloader use?
    The modified bootloader uses 38400 baud for uploads.
  • Is a USB-to-serial converter included on the Minimal Arduino?
    No; the Minimal Arduino does not include a USB-to-serial interface, you must provide one with an FTDI cable or an old Arduino.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter
Scroll to Top