App note: AVR Butterfly

AVR butterfly is a cheap LCD development platform for the ATmega169 microcontroller. This board features:
- LCD-on-Glass display with 120 segments.
- 4 direction joystick with a push-button.
- Piezo element as a speaker.
- 32KHz crystal for real time clock projects.
- 4Mbit DataFlash memory.
- RS-232 level converter.
- NTC thermistor as a temperature sensor.
- Light dependent resistor as a light level sensor.
- 3V 600mA/h button battery.
- Programmed demo app, and bootloader.
Atmel has been kind enough to provide the schematic, located in the user guide.
This entry was posted in app notes and tagged ATmega169, AVR Butterfly, LCD.

Comments
No USB?
The original butterfly is a nifty small board. But it is getting old now !
Weird, why didn’t they cut out the pcb for the lcd and placed lcd in the level with pcb. It would make the board much more interesting. Also the button/jogg .. would be way better if that was capacitive sensor on pcb instead of that clunky thing ..
Wouldn’t capacitive sensing use up A LOT more power than that normal switch? Presuming the Atmega169 can have wake up from pin level/change, it can sleep till the switch changes. The only power usage is the pullup or pulldown on the switch if you are using one. If you have a capacitive sensing you need a timer to wake it up every maybe 1/2 second or more often to activate the other timers and mcu core. Then the other timers and core would have to do the sensing of the finger, mcu does its thing (LCD change or something), and go back to sleep. This is a lot more power usage compared to just sleeping till a pin changes.
At least, that is how I think it happens. :P
Can the butterfly be programmed using the Arduino IDE? Would be nice…
I don’t think so but there is port of the firmware to the GCC and some additional drivers, quite a lot code around the net for this board. After all this is more than 8 years old board (http://www.atmel.com/dyn/corporate/view_detail.asp?ref=&FileName=Butterfly.html&SEC_NAME=Product), don’t know how it made it to the “news” :)
If you want something modern there is actually similar follow up board with Xmega, segmented LCD, touch buttons and USB with bootloader. At shop: http://store.atmel.com/PartDetail.aspx?q=p:10500293;c:100113 or product page: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=17372&category_id=163&family_id=607&subfamily_id=1965&source=xplain_page
I used the Butterfly about 5 years ago; it’s a great little board for the price. It was probably designed as a giveaway in shows, since it has a safety pin on the back to use as a nametag.
I programmed my Butterfly using the avr-gcc port and the Atmel assembler/downloader. I don’t know if it can be programmed with the Arduino IDE.
For my application, I built a data logger. I removed the pin and battery and added a couple of DS1820 temp sensors. Power was supplied by two NiMH AA batteries, connected to the solar cells and recharging circuity from a solar powered night light. I used a 3.3V MAX1595 as a regulator. In addition to the three temp sensors (two 1820s and the on-board thermistor) I also logged the light level from the onboard CDS cell as well as the battery level. All the data was saved in the onboard flash. I had planned on adding external flash storage, but ran out of time.
I dropped the data logger on a small volcanic hill in the Mojave desert, and it collected data between June and October (when I picked it up). The highest temperature was close to 150F inside the box, yet the Butterfly worked perfectly (even the LCD, which I’d turned off). The light sensor also detected the full Moon on four of the five months. Battery levels never wavered, since power consumption was minimal.
Don’t discount this board just because it doesn’t have USB or the latest and fastest AVR processor. It’s a very low powered designed with a surprising amount of expandability. Not clearly seen in the pictures above are connections for header strips to add features.