National Public Radio’s Morning Edition show did a little piece on Botanicalls today. They made a genuine effort to be charming so give Steve Inskeep’s piece a nice listen. Thanks again to Josh for lending his voice to the Fiddle Leaf Fig.
Archive for the 'General' Category
Spent the weekend with friends in San Francisco who are building an art car out of an Chevrolet El Camino. I helped design circuits for nighttime running lights and spent several laborious hours tweezing tiny beads onto the adhesive-slathered hood. The front of the car will be such varied designs of tiny colorful glass beads that I couldn’t stop taking macro shots. The back will be four treelike structures with mushroom tops that support a canvas shade structure. I’ve been a fan of art cars since seeing Harrod Blank’s brilliant documentary “Wild Wheels” at the Red Vic art house in San Francisco, so I’m glad to finally lend one a hand.
Reuters did a lovely piece on Botanicalls this week. I was out of town so you won’t see me in it. Kate and Rebecca made agile and articulate appearances. Kati’s description of being drunk-dialed by the Cuban Oregano deserves many more public airings. I seem to recall that the following morning, all the other Botanicalls plants were laughing their roots off.
![]()
ATRE Command Brings Sanity:
When putting an XBee into a project and doing the configuration from software code. I often have the problem of some crazy sleep mode or pin definition going on that I didn’t know about. So now, all my functions for setting up an XBee start with the command ATRE. That resets the radio to factory defaults before issuing the remainder of the setup commands like ID, MY and so forth. As long as you don’t write the settings back to firmware with WR, the factory reset is transient. As soon as that radio loses power, it goes back to whatever unique settings it had before you ran your program. Pretty handy if you’re popping the same units back and forth between hard configured Direct I/O mode and software configured applications.
New Ember ZigBee Coming:
Looks like Maxstream is coming out with a new line of ZigBee radios. These will be based on the Ember chipset rather than the current one from Freescale. The existing XBee radios will continue to be manufactured and fully supported in the 802.15.4 mode that we use here at ITP. For the ZigBee layer, it looks like that will mainly be developed on the new XBee Series 2. Inside information is that the AT commands and API will essentially match the current one. All good news.
Cookware Antennas:
One of the many reasons I can’t wait for my thesis to be done is so I can try out New Zealander Stan Swan’s method for repurposing “Asian cookware scoops” into parabolic WiFi and ZigBee antennas:
He claims that by using these #13 cooking scoops with an XBee Pro, the signal range would be theoretically only limited by the curvature of the earth. Wow! I wonder if by using a giant #13 spatula to flatten the earth, I could further extend this range…

I just received a small CEM-1203 buzzer from Spark Fun for an Arduino project with sound output. After writing up a basic function to run it, I decided to generalize and fully comment so that other people could use similar buzzers without having to think through the math each time they wanted to hear a particular sound frequency. All you need to do is tell the function which pin you’d like to use, the frequency you want to hear, and the duration to play that frequency.
My buzzer example function should easily work with other types of sound output devices.

I’ve been meaning to make a nice little function to test available memory for some time, so tonight in response to a mailing list question, I went ahead and created an Arduino Available RAM Test for exploring memory allocation.
While I’m still learning about AVR’s memory management, here’s what I understand so far: The ATMEGA8 has 8K of program memory but only 1K of RAM. (Program memory is for code and RAM is for dynamic variables.) Actually it’s effectively less than 1K of RAM, I think because the Arduino libraries take up some dynamic memory space for themselves. The ATMEGA168 increases program memory to 16K, but RAM remains unchanged at 1K.
The Arduino environment will happily let you compile a program that exceeds the microcontroller’s RAM limits, however program behavior will become totally unpredictable, the code will do bizarre things and/or crash. It is equally difficult to describe the negative emotional results for the coder. Dysphoria comes to mind.
Hopefully, the Arduino Available RAM Test code can provide a pathway back to happiness, or at least cathartic understanding.
I did a quick test tonight to see just how big a text string I could allocate memory for on the Arduino ATMEGA168. Since there’s 1KB of RAM on the 168, the theoretical maximum would be 1024 characters. However my particular test (with Serial on and a few words for debugging) failed after 623 characters. How much is that? Here’s 613 characters:
“When in the Course of human events it becomes necessary for one people to dissolve the political bands which have connected them with another and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature’s God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness.”
Not so much, especially when you consider that it’s a _maximum_. As you add any variables to the program you’ll have proportionally even less space.
Here’s the code I used:
char* incomingResponse; // a pointer for a character string
int length =623; // the length of the string we’re going to allocatevoid setup() {
pinMode(13,OUTPUT); // set up the status led
digitalWrite(13, HIGH); // turn on the status LED
Serial.begin(9600); // start serial for debugging outputif((incomingResponse = (char*) malloc(length+1)) == NULL) { // attempt to allocate string memory
Serial.println(”memory allocation failed”); // report if allocation fails
}
else {
Serial.println(”memory allocated successfully”); // otherwise report that allocation succeeded
}
}void loop () {
digitalWrite(13, LOW) ; // turn off the status LED because we’re done
}
I’ll be teaching a new course at ITP in the Fall that examines collaboration on wireless networks. Students will create experimental devices and connect them together. Here’s the official description:
Collaborative Mesh Networking
H79.2672 (Robert Faludi) Wednesday 12:30 p.m. - 3:00 p.m.
Modern devices no longer need to be isolated. Recent advances in wireless mesh networks have created the potential for a massively interconnected world of easy information sharing. Cheap communications, high reliability, unique addressing, small size, efficiency, standardization, broadcast options and routing features combine to enable exciting new interactions. Developers of toys, wearables, performance devices, portables, network objects and sensor arrays can take advantage of radio mesh networking to design more interesting, better informed and more complex behaviors for their projects. This course explores devices that connect with and respond to each other. The technical focus will be on 802.15.4/ZigBee wireless mesh networks. Interconnections with other platforms and devices will be examined as needed. Students will gain an expertise in all functions of the ZigBee system to facilitate smart and novel behaviors in their projects. Through a series of accessible weekly exercises, students will build skills and explore the challenges and delights of mutual connectivity. As a final project, the class will construct an dynamic device network. Most labs and projects involve group work, so students should be ready to collaborate extensively as they experiment on the cutting edge of device interaction.
NYU listed my blog today in the “Blog Beat” section of the Alumni Connect newsletter and I cannot resist the temptation to recursively post about it.
Here’s an overview of ITP if you’d like to know more the Tisch program that creates remarkable projects through the study of the recently possible.
Kate, Jenny, Rebecca, Kati and I were invited to speak this morning to a roomful of high school girls in a panel discussion of Art and Technology for the Trendsetters Network. We gave an overview of our projects and process in the 40-minute session. They got to hear a bit about Botanicalls, the Meatrix, Portable Phone Booth, Popularity Dialer, WildLight, Social Genius, a Sopranos game, Go-go Gloves and Collective Collage. About half of the girls in the room were interested in engineering as a career. Every single one had a cell phone that could take pictures. The future should be cool.



