A simple platform for light (in and out), and sound based on the Atmel AVR AtTiny13 platform. All the parts could be purchased at Digi-Key.

Philosophy of Emergence

There's a lot of talk these days about emergent behavior. Of devices that are simple, but react to their environment, and in groups develop complex behaviors. This project aims to implement something like that -- something that can both be acted upon, and which acts upon the world. This approach is of course simple, only a light, a sound, and a light detector. But it's sufficient to be entertaining and demonstrate interaction with the world. I've build one. I'm going to build 5. Time will tell what happens. Will patterns of rise and fall develop? Will a steady-state be acheived?

Design Notes

The LEDs are connected to pins for output from the ATTiny13. The speaker is connected to the PWM pin so that various tones can be generated. The photoresistor is connected to an ADC pin so that we can see varying light levels.



Layout and Etching

I recently discovered the wonderful tool, EAGLE, from They bill their software as, "If you are looking for an easy to use, powerful and affordable schematic capture and printed circuit board design package that gets the job done, EAGLE is the number 1 choice!" and having used it, I agree. It's very easy to use, and makes good designs.

My first PCB for this project (and indeed, my first in more than a decade.) This image shows the PCB after drilling & soldering components on. The PCB was made with the toner transfer method described at this website. Basically, one prints the design on cheap magazine stock, and then irons it onto the PCB. It's very fast. Acetone or "Oops Multi-purpose remover" do a great job of removing the toner from the PCB in clean-up.

Building and Programming


I used this project as a means of learning a lot more about working with microncontrollers and improving my hardware design and implementation skills. This board was easy to put together, and if you like, you can build your own.


LightyBug was programmed in C, using the AVR toolchain. All the source code is available, and is licensed under the Creative Commons Attribution ShareAlike license. Downloading of the code constitues acceptance of this license.

Back to projects

Gabriel Cain, email gabriel or visit (other projects)