Making Friends by Ghosting Strangers
This is the story of how we ended up making and giving away hundreds of custom ghost SAOs to cybersecurity conference attendees.
In the beginning...
All stories have to start somewhere. This one starts a few years ago, when a group of three friends (that's us, hi!) decided to finally attend DefCon. We had been going to smaller cybersecurity conferences for several years at this point, and were excited for something even bigger.
While prepping for the trip, we stumbled upon a spec for conference badge add-ons, and the ideas started flowing.
While the badges had no power source, we obviously needed blinkenlights. We also had more than enough programming projects in the works, so we wanted a no-code solution. So... no microcontrollers. No problem! A tilt switch, 555 timer, decade counter, and a whole lot of LEDs later, and you have a pretty good if somewhat flat rendition of a magic 8-ball. Pick a blue solder mask for the PCB and voila! Introducing the Magic Blue Ball.
We made 20 of them, by hand, and brought them with us to DefCon, where we gave them away to anyone who showed an interest. Those were overwhelmingly some of the best and most rewarding interactions we had at the con. We were hooked.
Before we even left Vegas, we ordered a pick-and-place and committed to scaling up production.
The Blushing Ghost
Perhaps the most interesting part of watching people interact with the Blue Ball was the moment when they realized there was no microcontroller... and the conversations that ensued.
We decided to double down on our no-code approach, and design something completely analog with (hopefully) interesting behavior. And LEDs. Always LEDs.
And if it was going to be analog, we wanted it to look the part. So we also decided not to use any ICs with more than 6 pins. So... what can you do with mostly passive components and a few transistors? Well... you can make an LED light up... and stay lit for a while... and (with some frantic googling) you can make a square wave oscillator...
That's great, but it still needed to be interactive. How about... it blushes when you boop it? Every gadget we'd encountered that responded to boops used code, so was it even possible?
After many hours of searching for an analog capacitive touch circuit, and discovering instead why that doesn't really exist, we settled on a conveniently low pin-count capacitive touch button IC.
Add one adorable pixel art ghost, and the first prototype of Blushy was ready to order.
Tuning
Tuning Blushy's personality involved a lot of math in a spreadsheet to try and predict the behavior of each circuit segment, and then several more hours of fiddling with component values and a hot air rework station to get it just right. Once we were happy with the behavior, we set the now quite toasty prototype aside, and went to go caffeinate.
It turns out that resistors are temperature sensitive. Oops. Blushy's personality was completely different from what we'd intended... and it was perfect. So we ordered 120 of them. (We actually received closer to 150, shout out to our manufacturer!)
Manufacturing
The pick-and-place was a dream come true. One of those dreams where everything keeps inexplicably breaking every time you get it working. The reflow oven, on the other hand, worked far better than it probably should have, being converted as it was from a upcycled toaster oven and you have to manually power cycle it for every run.
The only component on the ghost that is hand-soldered (aside from the occasional touch-up when a transistor would wind up upside down) is the SAO connector, because some components should simply not be SMD.
Somewhere around the second round of prototypes we'd also had the idea to give Blushy a hat. In fact, we ended up making several different (swappable!) "hats". A swordfish counts as a hat, right? The hats connect with a 3-pin connector we've lovingly dubbed eSAO for even Shittier Add-On. The detailed spec will be added here and on the hats page as soon as we get around to writing it up.
Reception
We worried at first that we'd made far too many ghosts. We needn't have. They were a much bigger hit than we'd anticipated, with multiple people at one point coordinating an effort to hunt us down at the conference to come get one. People also seemed to like the hats!
As with the Magic Blue Ball, the interactions and conversations that came from giving away the ghosts were consistently and overwhelmingly some of the most fun and gratifying parts of attending the conference. So much so that we've now tweaked the design based on user feedback and are bringing an updated version to other cons we attend.
What if we wrote code, actually
Like any good addiction, we just couldn't stay away from programming. We spent some time during our first DefCon attempting various puzzles created by other attendees, and decided to join in on the fun. We painstakingly crafted a website the week before the con (originally in PHP, now in Rust), and created some puzzles that turned out to be way too difficult (as of February 14th 2025, no one has solved all 6. You could be the first!).
Now what?
If you see us at a con, come say hi! If this story inspires you, or if you've just made something cool and want to share it with people who will be excited, please tell us about it! And please, take a ghost... we made so many of them...