The AVR Butterfly is a battery-powered single-board microcontroller developed by Atmel. It consists of an Atmel ATmega169PV Microcontroller, a liquid crystal display, 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.
CPU & Speed
The Butterfly's ATmega169 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 name tag — the "name" may be entered via the joystick or over the RS-232 port, and will scroll across the LCD.
The Butterfly can be freely reprogrammed using the same toolchains as for many other AVR controllers, for example using the Atmel AVR assembly language or the free integrated development environment (IDE) Atmel Studio for programming in C.
A pre-installed bootloader 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. All of these interfaces are implemented only as open soldering points, so the addition of some hardware is necessary to make them usable.
Butterfly projects and applications
Several 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.
- Project ButtLoad offers free plans to convert the Butterfly into a portable AVR-ISP for programming other AVR devices.
- Several plans are available on the web to convert a Butterfly into an MP3 player.
- C Programming for Microcontrollers, a book for learning to program AVRs using C, was written for the Butterfly as development platform.
- The Butterfly Logger is an open source data logger based on the AVR Butterfly.
- The Butteruino project is a set of libraries to integrate the AVR Butterfly with the Arduino development environment.
- "AVR Butterfly - ATAVRBFLY | Microchip Technology Inc". Microchip. Retrieved 2018-04-10.
- AVR Butterfly Evaluation Kit - User Guide (PDF). Atmel Corporation. 2005.
- FlutterBot Archived December 5, 2006, at the Wayback Machine. - An educational robot based on the AVR Butterfly.
- Camera, Dean (2007). "ButtLoad". Four Walled Cubicle. Retrieved 2018-04-10.
- "AVR Butterfly MP3". www.brokentoaster.com. 18 May 2008. Retrieved 2018-04-10.
- "C Programming Book for Microcontrollers". Smiley Micros. 2006-04-27. Archived from the original on 31 October 2007. Retrieved 2018-04-10.
- Pardue, Joe (August 2008). "Smiley's Workshop 1: Introducing the AVR C Programming Workshop Series". Nuts and Volts Magazine. Retrieved 2018-04-10.
- "AVR Butterfly Logger". www.brokentoaster.com. Retrieved 2018-04-10.
- "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com. Retrieved 2018-04-10.