Five years ago, the SoundPuddle made its splashing debut as an art-grant funded project for Apogaea. Since then, our camp, known collectively as Electron Village, has been fortunate enough to create and share more and more electronic art, thanks to Apo's focus on and dedication to the arts.
In previous years we had also put on a soldering workshop at the event. In 2013 and 2014 we taught around 100 people each year how to solder. A unique PCB and kit was created for the participants.
This year we're bringing the soldering workshop back with a new badge for attendees to solder and enjoy. Meet the Propagand-Eye!
The Propagand-Eye, named for the theme of Apogaea this year, propaganda, is an eyeball-shaped PCB onto which participants will solder addressable LEDs as well as a variety of other components to make their own blinky badge they can wear with pride. Once assembled, the badges will be able to communicate with one another via infrared (IR) communication, creating an interactive game in which participants will be able to collect different blinky modes from other badges. This will create many opportunities for interaction among participants long after the workshop is over.
What seemed like a simple task, making a badge for a soldering workshop, evolved into a full project with two people, one hardware and one software, putting in countless hours to create a truly interactive experience.
I was fortunate enough to spend some time in the SparkX lab, which reinvigorated my desire to design PCBs. The experience was enough to motivate my art-grant submission. I had ordered prototypes before I was approved, knowing that even if I did not get the grant, they would make for a great experiment. For the protos, I pitted three fab houses against one another: OSHPark, BasicPCB, and JDBPCB by means of ALLPCB. You can see the results in the table below. Keep in mind that all three orders were placed on 4/11.
|Total Order Cost||# of PCBs||Fab House||Cost/PCB||Date Arrived|
ALLPCB has been my go-to thus far. They arrived just as fast as the BasicPCB, but they had more options for mask colors and board finishes than BasicPCB, which only offered traditional green.
Here's a shot of the final PCBs.
I got my stencil from OSHStencil, which I can't recommend enough. There were enough changes from the proto to the final to mandate a second order, but the stencil turnaround time was negligible to the PCB turnaround times.
The last major piece of hardware needed was a test fixture. One was ordered not too long ago. However, between it being combined with other orders and the most recent Chinese holidays, it got held up. With little to no time left to order one from even the fastest fab house, I set out to build my own using an OtherMill PCB mill and was able to piece together a functional pogo bed with no problem.
A Raspberry Pi was added, and *POOF* instant programming testing station.
Adding the IR communication was in no way new or novel; the idea came from the DefCon 23 Hardware Hacking Village Badge. And, unbeknownst to me, the Propagand-Eye was being developed around the same time as the SparkFun Roshamglo Badge , which uses IR communication to play Rock, Paper, Scissors between two users. In the case of the Propagand-Eye, the IR communication is used to participate in a "gene" collection game.
Using the 10 addressable LEDs in the center of the eye, 16 unique animations and 16 unique color sets were coded to create 256 unique gene combinations. Each board has that gene stored in EEPROM, so it always remembers its base gene. That is the only animation and color set available to the participant when his or her badge is completed and first powered. But once the badge "sees" another badge, they flash white to indicate that they would like to initiate an exchange of genes. All the users have to do is press the button after a white flash. That gene is then stored in EEPROM, and if/when the badges see each other again, they flash red indicating they have already exchanged genes.
A Python script was written to allow for batch programming of the EEPROM to give each eye a unique gene out of the bag. It uses a list of genes generated by another script.
Engineers Hate Surprises
One big hiccup occurred with the ATMEGA328p's used. That chip was chosen to allow the board to be Arduino compatible and allow for both experienced and inexperienced users to hack their badges after the event.
The lesson, shared here first, is never mix different batches of any part if you can avoid it. Several ATMEGA328p's were scavenged to save money, and about 2/3 were bought new. When it came time to batch program, the new ones would not accept the bootloader, which resulted in a large game of find the source of the problem. The issue was overcome, but not with a solution that provided any answer as to why the ICs did not behave as the ones found so regularly elsewhere. Rather, it was a chaotic menagerie of different programmers, swapping parts and using all three major operating systems. The working theory is a bad batch of internal oscillators was plaguing the newer ICs. But what matters is that they all got programmed and are sitting here, kitted, awaiting a plethora of participants to build them, play with them, and hopefully learn from them at Apogaea.
Who knows what'll happen if you get a bunch of them together...
Update: The workshop was a huge success! The soldering portion lastest about 3-4 hours. I strive for 100% success, and even after some hiccups were were able to send all participants away with a working badge. It was afterwards that was the most rewarding part though. Seeing people walking around wearing their badges with pride and participating in "gene-swapping" game filled me with joy.