One of the surprises we unveiled at FutureStack13 was the custom electronic badge we built for attendees. A number of months ago, Chris Kelly and I sat down to brainstorm new ways to encourage conference interaction. Our discussion eventually led to the conference badge. Badges are universally boring at conferences even though they’re usually the first place you look when meeting a new person. What would happen if we put software into a conference badge?
Having been to a number of conferences, I’ve constantly struggled with sharing my contact information with others. Sure, I could come with a stack of business cards, but would I have enough? Where would I put them? Would the people I gave them to remember me or bother connecting with me later? I quickly realized the central purpose of our badges would be to facilitate frictionless information sharing.
With this goal in mind, the next step was to design the hardware of the badges. NFC became an ideal technology as it allows for rapid sharing in close proximity. It uses little power so we wouldn’t have to worry about on/off switches or recharging. We also had to figure out how to program 800 badges and link them to a central data store. At first, we considered linking them via Bluetooth to a mobile app. But what if someone didn’t have a phone? Pairing your badge with 800 other people in the room would also present an interesting problem. Eventually, I settled on using Electric Imp. Electric Imp solved so many problems at once it was practically a slam-dunk. First, attendees would pair with their badges via Electric Imp’s clever optical signaling system (in other words, your phone screen flashes at a light sensor on the badge). Then, the Imps would download their firmware over Wifi and signal the mobile app when they booted. Since the Imp is an ARM chip and a Wifi package all in one, I didn’t have to worry about handling low-level drivers and wrote the firmware from the comfort of my browser.
Putting it All Together
What started with a simple idea quickly grew into a complex ecosystem. The badges ran their own firmware that communicated with a second layer of server-side firmware called an agent. The agents would interact with our backend built on Rails 4 and hosted by Heroku. We also wrote mobile apps for Android and iOS. The mobile apps interfaced both with our backend via REST and with Electric Imp via their mobile SDKs. To close the loop, the mobile apps would communicate via flashes of light with the badges. As a backup measure, we built a web version of the mobile app for people without Android or iOS.
The user experience went something like this: An attendee picked up a badge from registration and installed our mobile app. Upon launch, the mobile app guided the user through the badge setup process. After flashing (literally) the badge, the mobile app displayed connection stats, a list of contacts, and the conference schedule. We even included New Relic for Mobile graphs for each app since they were built with New Relic mobile agents. To make a contact, all you had to do was hold one badge over another until the lights on one of the badges flashed, indicating the connection was complete.
More than anything, we realized this project would be an incredible and unique learning experience for us. Thus, we sought to record metrics for every facet of the system. The badges allowed attendees to vote on talks, providing our speakers with valuable feedback. We mapped the Wifi access points at the conference to give us an idea of where people were making connections and how well talks were attended. With this data, we’ll be able to optimize the conference experience and expand popular areas (like the Hacker Lounge) next year.
What’s Next? (That’s Up to You)
As promised, we’ve unlocked the firmware on the badges. This means you’re free to reprogram and repurpose your badge and Electric Imp to your heart’s content. If you’d like to play with NFC, you can get started by loading our example firmware hosted here. If you’d like to use your Imp in a new project, check out this page for a list of breakout boards to get started.
Additionally, we’ll be adding functionality to the FutureStack mobile apps over the course of the next few months as we release content from the conference.
Last, but certainly not least, we’d like to thank everyone for coming to FutureStack and participating with the badges. We’re already looking forward to next year and can’t wait to push the limits of software further.