The AVR Butterfly, about the size of a credit card, is an inexpensive self-contained, battery-powered single-board microcontroller. It runs the ATMEL AVR ATmega169PV Microcontroller IC. The board includes a liquid crystal display (LCD), joystick, speaker, serial port, real-time clock (RTC), internal flash memory, and sensors for temperature and voltage. The board is the size of a name tag and has a clothing pin on back so it can be worn as such after the user enters their name onto the LCD.
The AVR Butterfly comes preloaded with software that demonstrates many of the capabilities of the AVR microcontrollers. Factory firmware can scroll your name, display the sensor readings, and show the time. The AVR Butterfly also has a piezo speaker that can reproduce sounds and music.
CPU & Speed
The Butterfly's ATmega 169 CPU is capable of speeds up to 8 MHz, however it is factory set by software to 2 MHz to preserve the button battery life. There are free replacement bootloaders available that will launch programs at 1, 2, 4 or 8 MHz speeds. Alternatively, this may be accomplished by changing the CPU prescaler in the application code.
- ATmega169V AVR 8-bit CPU, including 16 Kbyte of Flash memory for code storage and 512 bytes of EEPROM for data storage
- 100-segment LCD (without backlight)
- 4-Mbit (512-Kbyte) AT45 flash memory
- 4-way Mini-Joystick with center push-button
- Light, temperature, and voltage (0-5 V range) sensors (light sensor no longer included due to the RoHS directive)
- Piezo speaker
- Solder pads for user-supplied connectors: 2 8-bit I/O ports, ISP, USI, JTAG
- RS232 level converter & interface (Cable and connector provided by end user)
- 3 V battery holder (CR2450 battery included)
The Butterfly comes preloaded with software that demonstrates many features of the ATmega169, including reading of the ambient light level and temperature and playback of musical notes. The device has a clothing-pin attached to the back, so it may be worn as a nametag — the "name" may be entered via the joystick or over the RS232 port, and will scroll across the LCD.
Software may be written for the Butterfly using the Atmel AVR assembly language or C with a free integrated development environment (IDE) called Atmel Studio (formerly AVR Studio 4) that is available for download at the Atmel website. A pre-installed bootloader program allows the board to be re-programmed with a standard RS-232 serial port (requiring no special hardware). The board also has ISP and JTAG ports for in-circuit programming and debugging.
The Butterfly is popular among hobbyists for its low price of about $20 USD, its flexibility, the availability of free development software and the ability to reprogram it without using special hardware.
Many fully usable projects have been built using the Butterfly as a base platform, often with few or no additional parts. There's an award-winning educational robot based around the Butterfly called the FlutterBot. There are free plans to convert the Butterfly into a portable AVR-ISP device (see Buttload) for programming a whole family of AVR devices. Several plans available on the web to convert a Butterfly into an MP3 player. There is also a popular book available from Smiley Micros for learning to program AVRs using C, which the Butterfly was designed around.
For example, there is a Youtube video of a school project; an "RC car automatically balancing and driving on two wheels," under Butterfly control.
- Atmel's product page
- Getting Started Guide
- Butterfly Beginner Site
- Butterfly Yahoo Forum
- Atmel AVR Butterfly Mini-FAQ for Linux
- C Programming for Microcontrollers with Butterfly and Free WinAVR Compiler
- Port of the AVR Butterfly demo firmware to the AVR-GCC compiler
- AVR Butterfly Carrier - Prototyping system for Butterfly projects with power supply, etc.
- FlutterBot - An educational robot based on the AVR Butterfly.
- Butterfly MP3 - An open source MP3 player based on the AVR Butterfly.
- Butterfly Logger - An open source datalogger project based on the AVR Butterfly.
- ButtLoad - Open source firmware-only solution to transform the Butterfly into an AVR Studio-compatible AVRISP programmer clone.
- AVR Flasher - Flasher for Mac OS X (and Linux) written in Java
- Butteruino - Arduino on the AVR Butterfly