AVR Butterfly
Encyclopedia
The AVR Butterfly , about the size of a credit card, is the cheapest self-contained, battery-powered single board microcontroller available. 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.
driving by running a 14 segment
, six alpha-numeric character display. However, the LCD interface consumes many of the I/O
pins.
assembly language or C
with a free Integrated Development Environment (IDE) called 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.
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
Atmel Corporation is a manufacturer of semiconductors, founded in 1984. Its focus is on system-level solutions built around flash microcontrollers...
AVR ATmega169PV
Atmel AVR
The AVR is a modified Harvard architecture 8-bit RISC single chip microcontroller which was developed by Atmel in 1996. The AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other...
Microcontroller
Microcontroller
A microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM...
IC. The board includes a liquid crystal display
Liquid crystal display
A liquid crystal display is a flat panel display, electronic visual display, or video display that uses the light modulating properties of liquid crystals . LCs do not emit light directly....
(LCD), joystick
Joystick
A joystick is an input device consisting of a stick that pivots on a base and reports its angle or direction to the device it is controlling. Joysticks, also known as 'control columns', are the principal control in the cockpit of many civilian and military aircraft, either as a center stick or...
, speaker, serial port
Serial port
In computing, a serial port is a serial communication physical interface through which information transfers in or out one bit at a time...
, real-time clock
Real-time clock
A real-time clock is a computer clock that keeps track of the current time. Although the term often refers to the devices in personal computers, servers and embedded systems, RTCs are present in almost any electronic device which needs to keep accurate time.-Terminology:The term is used to avoid...
(RTC), internal flash memory
Flash memory
Flash memory is a non-volatile computer storage chip that can be electrically erased and reprogrammed. It was developed from EEPROM and must be erased in fairly large blocks before these can be rewritten with new data...
, 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.
LCD
The AVRButterfly demonstrates LCDLiquid crystal display
A liquid crystal display is a flat panel display, electronic visual display, or video display that uses the light modulating properties of liquid crystals . LCs do not emit light directly....
driving by running a 14 segment
Fourteen-segment display
A fourteen-segment display is a type of display based on 14 segments that can be turned on or off to produce letters and numerals. It is an expansion of the more common seven-segment display, having an additional four diagonal and two vertical segments with the middle horizontal segment...
, six alpha-numeric character display. However, the LCD interface consumes many of the I/O
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...
pins.
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.Features
- ATmega169V AVR 8-bit CPU, including 16 KbyteKilobyteThe kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
of Flash memory for code storage and 512 byteByteThe byte is a unit of digital information in computing and telecommunications that most commonly consists of eight bits. Historically, a byte was the number of bits used to encode a single character of text in a computer and for this reason it is the basic addressable element in many computer...
s of EEPROMEEPROMEEPROM stands for Electrically Erasable Programmable Read-Only Memory and is a type of non-volatile memory used in computers and other electronic devices to store small amounts of data that must be saved when power is removed, e.g., calibration...
for data storage - 100-segment LCD (without backlight)
- 4-MbitMegabitThe megabit is a multiple of the unit bit for digital information or computer storage. The prefix mega is defined in the International System of Units as a multiplier of 106 , and therefore...
(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 directiveRestriction of Hazardous Substances DirectiveThe Directive on the restriction of the use of certain hazardous substances in electrical and electronic equipment 2002/95/EC was adopted in February 2003 by the European Union. The RoHS directive took effect on 1 July 2006, and is required to be enforced and become law in each member state...
) - Piezo speaker
- Solder pads for user-supplied connectors: 2 8-bit I/O ports, ISPIn-System ProgrammingIn-System Programming is the ability of some programmable logic devices, microcontrollers, and other programmable electronic chips to be programmed while installed in a complete system, rather than requiring the chip to be programmed prior to installing it into the system.The primary advantage of...
, USI, JTAGJTAGJoint Test Action Group is the common name for what was later standardized as the IEEE 1149.1 Standard Test Access Port and Boundary-Scan Architecture. It was initially devised for testing printed circuit boards using boundary scan and is still widely used for this application.Today JTAG is also... - RS232 level converter & interface (Cable and connector provided by end user)
- 3 V battery holder (CR2450 battery included)
Software
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.Reprogramming
Software may be written for the Butterfly using the Atmel AVRAtmel AVR
The AVR is a modified Harvard architecture 8-bit RISC single chip microcontroller which was developed by Atmel in 1996. The AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other...
assembly language or C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
with a free Integrated Development Environment (IDE) called 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
JTAG
Joint Test Action Group is the common name for what was later standardized as the IEEE 1149.1 Standard Test Access Port and Boundary-Scan Architecture. It was initially devised for testing printed circuit boards using boundary scan and is still widely used for this application.Today JTAG is also...
ports for in-circuit programming and debugging.
Popularity
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.Butterfly projects
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.
External links
- 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