AVR Butterfly

Last updated
AVR Butterfly Module AVRButterfly.jpg
AVR Butterfly Module

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. [1] 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.

Contents

Feature set

LCD

The AVRButterfly demonstrates LCD driving by running a 14 segment, six alpha-numeric character display. However, the LCD interface consumes many of the I/O pins. [2]

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. [2]

Features

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 name tag — the "name" may be entered via the joystick or over the RS-232 port, and will scroll across the LCD. [2]

Reprogramming

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. [2]

A pre-installed bootloader allows the board to be re-programmed with a standard RS-232 serial port, requiring no special hardware. [1] 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. [1] [2]

Butterfly projects and applications

Several projects have been built using the Butterfly as a base platform, often with few or no additional parts:

Related Research Articles

AVR microcontrollers

AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit RISC single-chip microcontrollers. 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 microcontrollers at the time.

Atmel Corporation was a designer and manufacturer of semiconductors before being subsumed by Microchip Technology in 2016. Atmel was founded in 1984. The company focused on embedded systems built around microcontrollers. Its products included microcontrollers radio-frequency (RF) devices including Wi-Fi, EEPROM, and flash memory devices, symmetric and asymmetric security chips, touch sensors and controllers, and application-specific products. Atmel supplies its devices as standard products, application-specific integrated circuits (ASICs), or application-specific standard product (ASSPs) depending on the requirements of its customers.

The PIC16C84, PIC16F84 and PIC16F84A are 8-bit microcontrollers of which the PIC16C84 was the first introduced in 1993 and hailed as the first PIC microcontroller to feature a serial programming algorithm and EEPROM memory. It is a member of the PIC family of controllers, produced by Microchip Technology. The memory architecture makes use of bank switching. Software tools for assembler, debug and programming were only available for the Microsoft Windows operating system.

JTAG is an industry standard for verifying designs and testing printed circuit boards after manufacture.

NanoVM is an open-source implementation of the Java virtual machine. The NanoVM was initially developed to run on the Atmel AVR ATmega8 used in the Asuro Robot. It was ported to run on the C't-Bot and the Nibo-robot and can easily be ported to other AVR-based systems.

Interrupt vector table Data structure

An interrupt vector table (IVT) is a data structure that associates a list of interrupt handlers with a list of interrupt requests in a table of interrupt vectors. Each entry of the interrupt vector table, called an interrupt vector, is the address of an interrupt handler. While the concept is common across processor architectures, IVTs may be implemented in architecture-specific fashions. For example, a dispatch table is one method of implementing an interrupt vector table.

In-system programming Embedded system programming technique

In-system programming (ISP), or also called in-circuit serial programming (ICSP), is the ability of some programmable logic devices, microcontrollers, and other embedded devices to be programmed while installed in a complete system, rather than requiring the chip to be programmed prior to installing it into the system. It also allows firmware updates to be delivered to the on-chip memory of microcontrollers and related processors without requiring specialist programming circuitry on the circuit board, and simplifies design work.

Atmel ARM-based processors are microcontrollers and microprocessors integrated circuits, by Microchip Technology, that are based on various 32-bit ARM processor cores, with in-house designed peripherals and tool support.

AVR32

The AVR32 is a 32-bit RISC microcontroller architecture produced by Atmel. The microcontroller architecture was designed by a handful of people educated at the Norwegian University of Science and Technology, including lead designer Øyvind Strøm and CPU architect Erik Renno in Atmel's Norwegian design center.

Arduino Open source hardware and software platform

Arduino is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed under a CC BY-SA license, while software is licensed under the GNU Lesser General Public License (LGPL) or the GNU General Public License (GPL), permitting the manufacture of Arduino boards and software distribution by anyone. Arduino boards are available commercially from the official website or through authorized distributors.

PICkit

PICkit is a family of programmers for PIC microcontrollers made by Microchip Technology. They are used to program and debug microcontrollers, as well as program EEPROM. Some models also feature logic analyzer and serial communications (UART) tool.

OBDuino is an open source trip computer design based on the Arduino platform. An OBDuino may be assembled and customised by an electronics hobbyist; it displays information such as instantaneous fuel economy, engine tuning parameters etc. on an LCD.

Faustino (platform)

Faustino is a physical computing platform geared towards process monitoring and control. The faustino platform consists of a single-board microcontroller with embedded analog and digital I/O support, an input module with LCD, sensors and actuators in form of solid state relays. The development software is based on Eclipse and WinAVR, a variant of GCC for AVR microcontrollers. For visual presentation of measurements, a XML-configured Windows status monitor application is available.

Bus Pirate

The Bus Pirate is a universal bus interface device designed for programming, debugging, and analyzing microcontrollers and other ICs. It was developed as an open-source hardware and software project.

Ethernut is an open source hardware and software project for use as an embedded-Ethernet-system.

debugWIRE is a serial communications protocol, designed by Atmel. It is used for on-chip debugging of AVR microcontrollers.

STM32 ARM Cortex-M based Microcontrollers by STMicroelectronics

STM32 is a family of 32-bit microcontroller integrated circuits by STMicroelectronics. The STM32 chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M33F, Cortex-M7F, Cortex-M4F, Cortex-M3, Cortex-M0+, or Cortex-M0. Internally, each microcontroller consists of the processor core, static RAM, flash memory, debugging interface, and various peripherals.

ATmega328

The ATmega328 is a single-chip microcontroller created by Atmel in the megaAVR family. It has a modified Harvard architecture 8-bit RISC processor core.

Arduino Uno Microcontroller board

The Arduino Uno is an open-source microcontroller board based on the Microchip ATmega328P microcontroller and developed by Arduino.cc. The board is equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to various expansion boards (shields) and other circuits. The board has 14 digital I/O pins, 6 analog I/O pins, and is programmable with the Arduino IDE, via a type B USB cable. It can be powered by the USB cable or by an external 9-volt battery, though it accepts voltages between 7 and 20 volts. It is similar to the Arduino Nano and Leonardo. The hardware reference design is distributed under a Creative Commons Attribution Share-Alike 2.5 license and is available on the Arduino website. Layout and production files for some versions of the hardware are also available.

Arduino Nano

The Arduino Nano is a small, complete, and breadboard-friendly board based on the ATmega328P released in 2008. It offers the same connectivity and specs of the Arduino Uno board in a smaller form factor.

References

  1. 1 2 3 "AVR Butterfly - ATAVRBFLY | Microchip Technology Inc". Microchip. Retrieved 2018-04-10.
  2. 1 2 3 4 5 AVR Butterfly Evaluation Kit - User Guide (PDF). Atmel Corporation. 2005.
  3. FlutterBot Archived December 5, 2006, at the Wayback Machine - An educational robot based on the AVR Butterfly.
  4. Camera, Dean (2007). "ButtLoad". Four Walled Cubicle. Retrieved 2018-04-10.
  5. "AVR Butterfly MP3". www.brokentoaster.com. 18 May 2008. Retrieved 2018-04-10.
  6. "C Programming Book for Microcontrollers". Smiley Micros. 2006-04-27. Archived from the original on 31 October 2007. Retrieved 2018-04-10.
  7. Pardue, Joe (August 2008). "Smiley's Workshop 1: Introducing the AVR C Programming Workshop Series". Nuts and Volts Magazine . Retrieved 2018-04-10.
  8. "AVR Butterfly Logger". www.brokentoaster.com. Retrieved 2018-04-10.
  9. "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com. Retrieved 2018-04-10.