
Just finished putting together Limor’s $22 Wave Shield for Arduino. This shield snaps on top of the Arduino microcontroller board, creating a ridiculously easy way to get audio playback into physical computing prototypes. The Wave Shield will play back uncompressed .wav files of any length from a regular SD card, either over headphones or through a small speaker. Now projects can chant, count, warn, soothe, mumble, moo, cajole, challenge, respond, sob and sing.
Like all of the Adafruit kits, Limor has made the ????????schematic and board files available for download, so once you’ve prototyped with the shield, you can adapt her design into a custom PCB. My favorite story so far is an NYC Resistor guy who combined a light sensor with a prerecorded scream. He made his Arduino afraid of the dark.

In case you hadn’t heard, we’ve made Botanicalls Twitter as a do-it-yourself example for people who like to–well–do it themselves. It’s the first step in making Botanicalls available to a wider audience, and the online press has taken note. In the last 48 hours, we’ve been graced by the attention of:
Make Magazine
CNet
Slashdot
Lifehacker
Gizmodo
Wired
…and even Business Week
Botanicalls Twitter would not have happened without both brilliant code and sage advice from Limor Fried. We also appreciate the support of Phil Torrone who inspired our Twitter venture and helped to make it a success. Botanicalls is a project from Kate Hartman, Kati London, Rebecca Bray and Rob Faludi.

People ask me all the time which battery they should use for their Arduino project, or how long an XBee will run on a specific type of battery. Rather than continue to give vague answers, I decided that it would be much more helpful to generate some real-world battery life results for Arduino projects and XBee mesh networking radios. There were a lot of surprises. The results depend of course upon which battery you choose, but everything else makes a difference too. Changing the duty cycle of a single LED doubled battery life on an Arduino project. Simply sleeping an XBee radio between transmissions generated a whopping 1470% increase in battery life. In a few cases specific types of batteries failed completely–probably the most helpful test result of all.
Use the real-world battery life results to help choose which setup is right for your project. You can also use my Battery Test program in Processing to run your own tests. Send me any well-documented results and I’ll gladly add them to the list.

On the Arduino microcontroller, the millis() function counts the number of milliseconds since the program started running. Unfortunately, this count resets to zero after approximately 9 hours and 32 minutes. I have written a millisRollover() function that detects these rollovers, so that programs can respond properly to the overflow event. This can solve problems with servo routines, steppers, timed pauses and a variety of other calculations. In addition, because my millisRollover() function counts the number of times rollover has happened, it is now possible to record total Arduino runtime with a counter that’s good for over 35 years.
You want to blink an LED only on Christmas during leap years? Totally possible now.
(yes, there really is a millis police department)