The Done Button


Place a Done Button near a task you do in the real world like exercising, feeding the dog, brushing your teeth or watering a plant. When you do it, simply hit the button to catalog your action. If you’ve been good, the button will glow green, but if you’ve missed your goal, it will glow yellow, then red. An app handles setup and keeps track for you.

The Done Button takes advantage of muscle memory habits, creating a user experience that is almost subconscious. It has been suggested that it could be great for busy adults, kids, or even those suffering from Alzheimer’s or memory loss.

iPad App:


Photos from ITP’s Winter Show:

View process here

I/O Pins – A Saga

Setting up the system:

Adding Xbee endpoints to the system was difficult because they are “dumb.” For Arduino to identify which Xbee was sending, I have Button 1 Xbee connected to pins 0, 1, 2 — Button 2 Xbee to 3, 4, 5 etc. That way, the YUN could send or receive data on a specific pin and the code could identify which Xbee was sending by the pin number:

Xbee Map

Pin numbers, oh the pin numbers!

I have the Xbee Explorer USB from Sparkfun. (The red board below) Look at the pins on the right side of the board: DIO12, DIO11… even DIO9 on the other side. Well, these are not DIO pins. Unfortunately, I counted the I/O pins listed on the board (9) which was exactly the pins that I needed! But alas, no that’s not true. On the right, I have a picture of the Parallax USB Adapter Board, which seems to have an accurate label.

The Parallax board matches the data sheet:

Xbee I / O Chart

Important things about addressing the radios:

To use the DIO pins, you have to set each one as Input or Output according to the chart (I copied it from the data sheet below on the right.) For example, to set Pin 0 as an Input it would be “ATD03”. Also important is setting the I/O Address, ATIA to FFFF so that all radios listen to I/O from other Radios. I set myself up a big old chart to keep these things straight:

Screen Shot 2013-12-10 at 11.16.31 AM

Unfortunately, since Pins 9, 11, and 12 were not actually DIO pins, I can’t program them, and my third button will be on the sidelines until I find a better solution.

Working with Xbees – Two way communication

To make multiple smaller buttons, I’m using Xbees to send button presses and light up LED’s. First, I was having a lot of trouble configuring them. Thanks to Matt Richardson for recommending these tutorials:

Digital Input with a Button

Digital Output with an LED

It seems the thing that made it work was to set the i/o input address (ATIA) to FFFF so that all radios would receive it. Funny thing, however as none of the other documentation that I found mentions “ATIA.”

I had to make a chart for myself to make sense of it all. I will fill out the rest once I get more of the radios going:

Screen Shot 2013-12-06 at 11.18.39 PM

Here are some resources that helped me make it work:

A Simple Explanation

A Good Chart of the Pins and Abilities 

Explanation of Pins & How to Set them

The Bible

Making the Button Better

I have many ideas for my internet connected button, but the next two steps are clear: I would like to develop a more approachable user interface for the button’s website, including a set up form to name and configure the buttons. Then, I would like to transform my large button into a “hub” that will serve as the center of communication for smaller buttons connected via Xbee.

Getting a feel for a smaller button:

A rough sketch of the button’s presence on the web:

MockUp UX