Assignment 11 – Personal Public Computing (Throwies)
The Floating Throwie, Motown Throwie and Ventriloquist Throwie – Explorations in Personal Public Computing
I sought to create small, cheap and fun circuits that could be quickly built and deployed by individuals in public spaces. My audience was people with some technical background who might be interested in “livening up” their cities or other public places, adding to a sense of community or just pranking each other.
The term “Throwie” comes from the “LED Throwie”, a piece of electronic urban graffiti invented by Graffiti Research Labs in New York City in 2006. An LED Throwie is created by taking an LED, a watch battery and a magnet and quickly taping them all together such that the LED leads connect to either side to the battery and the magnet is exposed. Then, the whole device is tossed onto a public metal surface, where it sticks and the LED glows for up to weeks at a time for others to see. “Throwie” is now used in the DIY community as a general term for any electronic circuit placed in a public setting by throwing and attaching via a very strong magnet. My three projects sought to see how “Throwies” could be extended using cheap off-the-shelf and hobbyist microcontrollers to add elements of personalization and telepresence to such acts of public performance.
The “Floating Throwie” is a circuit consisting of an LED, magnet and watch battery combination, as well as a microcontroller, a transistor, a pager motor attached to the magnet, and a pair of large helicopter paper wings attached to the whole circuit. After being tossed up, the Floating Throwie is supposed to turn on the pager motor, allowing itself to vibrate free from the magnetic surface and float down (its movement dictated by the helicopter paper wings.) It is designed to create a light show in the soft drifting of the LED. (The “Floating Throwie” does not yet detach properly, though you can throw it and it will vibrate – the design needs iteration.)
The “Motown Throwie” is constructed similarly to above, except that instead of having a pager motor attached to the transistor, a music chip with built-in speaker torn from a Hallmark greeting card is instead wired and operated by the microcontroller. After being placed and a time delay has passed (enough time for someone to find a hiding spot from which to watch people’s reactions), the speaker plays whatever the greeting card company placed on the music chip – in this case, “Ain’t Too Proud to Beg” by the Temptations .
The “Ventriloquist Throwie” is nearly identical to the Motown Throwie, except it uses the chip from a greeting card that allows the sender to record personal, 10-second messages directly onto the chip for playback. The device can thus be thrown up and play back an arbitrary audio recording (such as “Watch your step!” or “Hey, ugly!”, depending on how nice the thrower chooses to be.)
Prior art for this technique includes the “Throwie Talkie”, which uses a ATtiny45 microcontroller and blinks the LED (without additional hardware).
How It Works:
If this section’s a little long-winded, it’s because a) I’m writing it step by step for use in preparing Instructables, and b) it forks whenever the processes for each Throwie differ to avoid repetition and save space on the blog.
It seems the blog can’t handle the hundreds of photos I’ve taken to document my process. I’ve uploaded enough to begin telling the Floating Throwie story with these steps, but for the full picture set, you’ll have to wait for the Instructables (or write me directly).
The heart of each device is a small, $1 computer chip called the ATtiny13a. This chip can be programmed in C to do many things; here we program it to turn on and off small electrical devices attached to the chip. Specifically, a transistor is soldered directly to an output pin of the ATtiny, and receives instructions to turn itself off and on. In turn, the transistor, when on, turns on (by completing a circuit) an outside piece of small electronics. The outside piece of electronics is attached to the transistor either by soldering the transistor collector and emitter pins directly to high and low elements of the electronics (as in the case of the motor) or by soldering wires with metal pads that could be placed on either sides of an existing switch (as in the case of the greeting card speakers.)
The chip is first programmed by using an AVR ISP hardware programmer. Two popular choices for this task are the AVR ISP MKII (from Atmel, and also the one I own), and the USBtinyISP (from Adafruit Industries). If you don’t own a programmer already, I’d actually recommend the USBtinyISP, as it removes the step of externally powering the chip from this process (My understanding is that Adafruit takes care of that for you by letting you give your chip power directly from your laptop.)
The hardware programmer is, in turn, controlled by software. On Windows, the popular choice for this is AVRstudio, whereas in the Mac and Linux worlds, the open-source program avrdude is used (as AVRstudio is Windows-only). We assume you’re running WIndows and can download and run AVRstudio, since it provides a good integrated development environment and can step you through debugging both your code and your hardware programmer connections.
The chip is placed on a breadboard, and six wires are run from the hardware programmer into appropriate pins on the chip (in accordance with the ISP standard.) The chip is then programmed using your software of choice, which talks to the chip via the hardware (ideally at a speed of 125Mhz.) *phew!*
Fortunately, most of that is behind the scenes. You just need to put the chip on a breadboard, (for the MKII) provide it with 3V of power, and hook that power into the chip as appropriate. You wire the chip as follows: 3V goes to Pin 8 or VCC of the chip, GND goes to Pin 4 of the chip, and your resistor of size 4k to 10k connects Pin 1, Reset, to 3V. (The resistor is needed as a pull-up, meaning the programmer can electronically set the Reset pin to on or off as it sees fit. This is needed for proper programming.) I purchased a 3V coin cell CR2032 battery holder with DIP pin connections from Digikey as an easy way of quickly providing my breadboard with power, and that is the technique shown in the pictures below – but a variable power supply will also do the trick.
Then, it’s just a matter of connecting the hardware programmer to your breadboard circuit. The relevant pinouts to programming the ATtiny13a chip are as follows, and can be verified against the datasheet as needed (with the pin closest to the dot being Pin 1, going counter-clockwise as is conventional with integrated circuits):
The corresponding pinouts on the AVR hardware programmer depend on the model; you should consult the datasheet for your programmer. For the AVR ISP MKII, note that a faint little triangle can be seen on the side of the female header; that indicates Pin 1 (MISO) of the ISP header. (Don’t think that the triangle represents the reset pin- a few websites say it does, but they’re wrong, at least on mine. I killed a day barking up that tree.)
Let’s walk through an example to make sure I’ve said it clearly:
Let’s say you want to start by hooking up the MISO pin of the programmer to the MISO pin on the chip. You take a wire and strip both ends of it. One end of the wire goes into the female header on the programmer (for the MKII, Pin 1, by the faint triangle), and the other end goes into the breadboard at Pin 6. To program the chip with the programmer, you must connect all 6 programming leads to their corresponding chip pins in this manner.
To clarify – we are NOT soldering the 6 programming wires onto our chip (that’s precisely why we had to grab a breadboard.) The soldering comes after the chip is programmed.
We program the chip by loading onto it the following code. In AVRstudio, we do this by:
*Selecting “Run” from the menu bar
*Selecting the “Com” button on the toolbar
*Setting your programming speed to 125Mhz
*Selecting “Use program currently in memory” and pressing “Program”.
Refer to the screenshots for details.
Once the ATtiny chip has been programmed, we can pull it off the breadboard and begin building our circuit around the chip. This is done by soldering wires directly onto the DIP pins of the ATtiny chip.
First, we create a connection between the transistor’s base pin, a 1k resistor and Pin 3 (the switch output pin we designated) of the ATtiny13a. No wire will be used to make this – all three can be soldered together in series, as shown. If possible, try to cut the leads shorter before soldering so they stay together once soldered. Also, for every connection from here-on out, heat shrink tubing can be used to help secure the connection – just cut a piece, place it onto the wire *before* soldering away from the point of solder, and then after soldering slide it down to cover the connection.
(Not necessary for purely sound-based applications of Ventriloquist and Motown Throwies) Next, we create a connection between the LED and ground so the LED is lit by Pin 2 of the ATtiny13a. This can be done by simply soldering the long end of the LED to Pin 2, and the short end to Pin 4 (the ATtiny13a’s ground. Again, cutting the leads of the LED shorter before soldering will be helpful – but remember to leave the positive end of the LED longer than the negative end, or you’ll be confused when you go to solder!
Then, you create the connections that tie the microchip’s power pins to the battery. Wires for the chip’s power and ground are soldered to pieces of copper tape, which are then folded in on themselves to give a smooth exterior. This creates reusable “leads” for the circuit, rather than soldering wires directly to the battery. This allows the battery to be quickly attached and replaced.
The wire for ground should be soldered on one end to Pin 4 of the chip, and on the other end to a piece of copper tape.
The wire for high/vcc should be soldered on one end to Pin 8 of the chip, and on the other end to a piece of copper tape.
Now, we can begin connecting the external circuit to the transistor such that electronics can be turned on and off via the microcontroller.
This is done differently for the two types of Throwies.
For the Floating Throwie: Just as we did with the power and ground wires, we take two wires and turn them into copper leads out of our circuit. We take a third wire and use that to connect our motor to the collector pin of our transistor. Effectively, we use the wires to create the following chain:
+3V (Battery High) [ ]———Motor——-Collector, Emitter——-[ ] Ground
where the +3V and Ground are the two sides of the battery, and the Collector and Emitter are the appropriate pins on the transistor.
This creates another set of copper leads, which also need to be connected to the two sides of the battery. To avoid having to tape two sets of leads onto both sides, you can solder the high leads together and the low leads together to make a single set of power leads again.
For the Motown and Ventriloquist Throwies: Just as we did with the power and ground wires, we take two wires and turn them into copper leads out of our circuit. This time, the plain side each wire goes to the two remaining pins on the transistor, and the copper end of each wire goes to the two sides of the switch.
We rip a small piece of paper and tape it to one side of each copper lead. This is done so we only expose each lead to one surface of the switch, rather than accidentally connecting multiple surfaces of the switch at the same time (which would always leave the card running).
Next we connect these leads to our greeting card. The copper lead running from the collector pin on the transistor is taped (exposed side down), to the highest voltage point in the circuit. This is the battery closest to the switch (you can verify this with your multimeter.) Then the copper lead running from the emitter pin on the transistor is slid under the switch, copper side down. The underside of the switch latch should be touching no copper and no parts of the bottom metal circuit; only paper. Here, you’ve created the equivalent of keeping your greeting card closed (and the plastic sliding under the switch to open it) at all times. Now, the switch can only be closed and the music can only be played by your microchip.
It is necessary to tie the grounds of the microcontroller circuit and the external circuit together such that the transistor is able to control the external circuit. This is done in different ways based on the external circuit (whichever is easier for that physical setup.)
For the Floating Throwie, we have already done this by powering both the chip and the motor off of the same power source – so no further work is needed.
For the Motown and Ventriloquist Throwies, the recording/music sound chips have their own power source and ground – so it is easier to use a single wire to tie the sound chip ground to the battery ground, leaving the second power source for the sound chip intact.
Finally, the circuit can be put together.
For the Floating Throwie:
Build the wing: Cut a small pair of helicopter wings out of paper. This can be done by cutting the outline of an “8” out of paper, folding a line down it the long way, and bending the fold on one of its wings outward (keeping the other wing folded inward.) The wing should now have one concave surface and one convex surface when viewed from the top. Then, cut two slits in the center of the wing, through which you can run a piece of string or thin strip of paper. Finally, wrap the string or paper around the microchip, affixing it with tape.
Attach the magnet: Finally, use hot glue to attach the magnet to the end of the vibrating pager motor.
For the Motown and Ventriloquist Throwies:
Use a piece of hot glue to attach the magnet to one side of the circuit board. Then, glue or tape the speaker onto the opposite side of the circuit board. If your card chip has a paper casing, you can contain the circuit in this paper and put the magnet and speakers on the outer sides of this paper. If it does not, you can glue these things with hot glue onto the circuit board safely, as long as you take care not to accidentally short any of the circuit board connections with metal on the magnet or speakers.
Take your watch battery and tape the leads to either side of the battery. Affix to a metal surface, run away, and after 15 seconds…voila!
For the Floating Throwie:
For the Motown and Ventriloquist Throwie:
Code for ATtiny13a:
#define F_CPU 1000000UL //Define the speed the clock is running at. Used for the delay.h functions
#include //Include the headers that handles Input/Output function for AVR chips
#include //Include the headers that allow for a delay function
void Delay_ms(int cnt);
void Delay_ms(int cnt)
DDRB = 0xFE;
init_io(); //Set up the pins that control the LEDs
int i; //Initialize variable to count through each LED
//if the code's actual function does not match the comments, please let me know:
//i'm still learning low-level C and actually didn't need it to work *exactly*
//as it claims to be written
PORTB |= (1 << 3); //turn on pin 3 (the LED pin)
Delay_ms(15000); //wait 15 seconds
PORTB &= 0 //turn off all pins (including LED pin)
PORTB |= (1 << 4); //turn on pin 4 (the transistor base pin)
Delay_ms(5000); //wait 5 seconds
PORTB &= 0; //(optional, for demo) turn off all pins (including both LED and transistor)
Delay_ms(5000); //wait 5 seconds and restart the cycle
Parts list (makes a single throwie):
For Floating Throwie: Miniature Pager Motor (available from electronic goldmine)
For Ventriloquist or Motown Throwie: Hallmark Music or Voice Recording Greeting Card ($5 at any drug store)
ATtiny13a microcontroller, 8-pin DIP format (for manually soldering wires onto the DIP pins – this would be a painful exercise in a surface mount format!)
Thin-gauge insulated wire (ideally the super thin 15 gauge stuff with paint insulation, but rubber should be fine too)
CR2032 3V Lithium Coin Cell Battery
1/2″ Dia by 1/8″ Thick Neodynium Magnet
10mm Diffused LED (for a super bright light visible at night, try to pick a brightness above 5,000 candella – digikey.com is a good source for super bright LEDs in various colors. This can be excluded from the Motown and Ventriloquist Throwies if you want those to go unseen and only heard.)
For Floating Throwie: 2N3904 transistor or other small-signal transistor controlling low-current devices (like our pager motor)
For Ventriloquist or Motown Throwie: An NPN TIP120 Darlington transistoror other similarly high-current transistor (for turning on high-current devices like the greeting card speakers)
Copper foil (thin and about 3″ square for the Floating Throwie, about 3″ by 6″ for the Ventriloquist and Motown Throwies – this is used to create removable power leads so you don’t have to solder wires directly to your batteries each time)
Scotch Tape (for holding batteries onto copper tape leads and attaching magnets as needed)
Solder (or Conductive Epoxy, though I have yet to try holding it together with such glues)
(Optional) Thin width Heat Shrink Tubing (for wrapping around soldered connections. Sorry “thin” is so vague, I’ll check the tubing width when I’m back in lab – but when shrunk, the tubing should wrap snugly around a standard DIP pin)
Soldering iron (ideally temperature controlled)
Exacto Knife (for cutting and stripping paint insulated wire)
AVR ISP MKII or Adafruit USBtinyISP Programmer (for programming ATtiny13a)
USB A-to-B cable (for attaching programmer to your computer’s USB slot)
AVRStudio Software for Windows or AVRdude Software for Windows/Mac/Linux
(here we use AVRStudio for easy of instruction)
Breadboard (for programming)
Resistor in value of ~5k but less than 10k (for programming)
CR2032 Coin Cell Holder with CR2032 Coin Cell Battery, or Variable External Power Supply (not required if using the USBtinyISP.)
22 Gauge (standard) rubber insulated wire, at least 8 pieces of at least 6″ length (6 to connect the chip on the breadboard to the programmer, 1 to connect the chip to breadboard’s external ground, and 1 to connect the chip to breadboard’s external high)
Wire Cutter/Stripper (to cut rubber-gauge wiring for programming, and for shortening leads of resistor, transistor and LED, as desired to make the circuit smaller and more robust. Can also be used to cut optional heat shrink tubing into desired lengths.)
Semi-optional/super helpful Helping Hands/Raised Clamps for your Soldering Station (for holding the circuit while you solder things onto it…it’s a little painful without these)
Optional/helpful: Multimeter (for checking connection quality and measuring voltage levels to check for dead batteries.)
Optional: Lighter or hair dryer (for heating and shrinking optional heat shrink tubing)
Revised Demo Day Poster: