Design and Hacking Drilldown: SuperCon Badge

One can imagine a political or business conference without an interactive badge — but not a hacker conference. Does this make the case for hackers being a special breed of people, always having something creative to show for their work? Yes, I think it does.

Following the Hackaday Belgrade conference in April of this year, we met at the Supplyframe offices to discuss the badge for the Hackaday SuperConference that will happen in Pasadena on 5+6th of November. The Belgrade conference badge (which was fully documented if you’re curious) was surprisingly popular, and I was asked to design the new one as well.

I was prepared to come up with something completely new, but [Mike Szczys] suggested keeping with the same basic concept for the project: “No reason to change anything, we have a badge that works”. To which I responded: “Well, the next one will also work”. But then I realized that “works” does not stand for “being functional”. The key is that it was embraced by visitors who played with it, coded on it, and solved a crypto challenge with it.

The World Doesn’t Have Enough LEDs

led-modules-versus-smdFast forward six months — here are the modifications made to the basic concept. First, the existing LED matrix, which was composed of two compact 8×8 blocks, was replaced by 128 discrete SMD LEDs. It was a much needed change to help scale down the dimensions and clunkiness, but also to avoid another painful experience of trying to purchase and have the matrix displays shipped, which seriously threatened the production of the previous badge.

It’s a long story which I discussed in my Belgrade talk — it turned out we did not manage to get enough common anode (CA) displays from all distributors in the whole world. We had a plan B, which also fizzled, leaving us with the plan C which actually included two “C”s: Common Cathode. We cleaned up all the supplies at five distributors, and managed to get 122 CA red, 340 CC red and 78 CA green displays (enough for only 270 badges) — the entire world supply. After that, you couldn’t get any 38 mm Kingbright’s display for months! The only problem was that there were two different versions of PCBs, one for CA and the other for CC displays, but luckily only one version of software, as it could autodetect the display type.

accelerometer-on-the-boardMotion and Expansion

So, what else was new in the concept? In the Belgrade version, the badge supported an accelerometer module and included an unpopulated footprint in case you decided to install it, but now the badge has the MEMS chip LIS3 as an integral part. There are nine pads (with five I/O ports, driven directly from the MCU) to which you can add a 9-pin expansion connector. There will be a number of these connectors at the Design Lab, so that anyone can expand their badge for their convenience, on the spot.

The Visual Design

The biggest change was in the visual design. What we came up with ended up being a fair bit smaller, lighter, with a more convenient shape, and less than half the thickness of the previous one. After we had scrapped quite a few ideas during the development process (including stylized skull, frog, etc), we were left with a couple of options which you can see on the image below. The wireframe drawing on the left hand side is the Belgrade badge, shown here for a size comparison. At this point the locale and date of the conference weren’t yet definitive, which is why you see San Francisco written on the images.


Design number 4 prevailed, so the PCB layout could begin. I don’t like autorouted PCBs, so I was in for quite a rough time trying to solve the routing manually having only 2 layers on the board at my disposal.

Routing a Compact LED Matrix

The LED matrix is so dense that there was virtually no room on the LED layer, so most of the tracks on the component layer had to be routed as if it was a single layer PCB. To make matters worse, the LED layer is routed as a matrix, with a bunch of horizontal and vertical tracks, otherwise a good reason to use a 4-layer PCB. To stay inside the budget, everything had to be placed on 2 layers, and that’s why the final result seems so confusing at the populated area between batteries:


That pretty much covers the changes — the badge is virtually the same as the previous one in all other aspects. It includes an infrared optical port, which uses the existing UART on the MCU, so it is easy to implement in user programs. Communication range is several meters, and as long as you are in a room with white walls and ceiling, you don’t have to worry about the direction of the transmitter and receiver. Every badge has its unique serial number, and the default infrared UART routine will receive only messages which contain the matching number in the address field of the header.

Hacking the Badge

The badge was presented in a video we published last month. We plan to have a lot of fun with this hardware throughout the weekend. SuperConference visitors will be challenged to use their badges to solve the special puzzle task, which will be composed of several layers. And we want everyone to give badge hacking a try, with firmware, hardware, or both.

Here is the schematic diagram for the new badge:


The badge is hacking friendly, as there is a USB port and bootloader, so the programming is fast and easy, even without a separate hardware programmer. All you need is your computer and one Micro-B USB cable, and you’re all set for hacking at the SuperConference.

bothThe firmware is more or less the same as the Belgrade badge but the bootloader has been updated. Our friends at Microchip adapted their Xpress board bootloader for us so that the Hackaday SuperConference badge acts as a USB mass storage device. Simply plug in the USB cable, hold power while pressing reset, and drag your HEX file to the drive that appears on your computer.

There is a kernel in protected bootloader space which covers all BIOS functions. LED matrix scan is fully supported, so all you have to do in your software is write 0’s and 1’s to the 16-byte frame buffer in the Data RAM. All other services (keyboard scan, low power sleep ON-OFF, brightness adjust, infrared serial reception and pause screen) are also located inside the Timer Interrupt routine, so the user does not have to deal with low-level hardware if they don’t want to. Some more routines (32-bit pseudorandom number generator and Accelerometer support) are also available in kernel.

Choose Your Hacking Difficulty:

I Can Blink

Even those who have never touched a bare PCB can still easily get this badge to do their bidding. Start with the example in the C framework. Play around with which LED turns on and how to change the timing, then build your skills from there.

Bring It On

You fancy yourself a programmer? Show us what you can accomplish in one weekend. The low-level hardware servicing is completely handled for you, which means the rest is up to your creativity. Program a clever and creative user experience to claim your moment of glory.

Hurt Me Plenty

You are a wizard of embedded development. Read the schematic, grab a few datasheets, and take this to bare metal. Completely bypass the kernel in one of two ways. Start with the C framework but remove the “goto” assembly commands that send interrupts back to the kernel, giving you full hardware control. Or bring your own PIC programmer and completely blow out the bootloader and kernel. We only saw one person do this in Belgrade, but it was epic!

We have just published a C framework for badge hacking. You have your choice of installing MPLAB X and using the GitHub repo, or using the cloud IDE version called MPLAB Xpress.

Full documentation of the badge has begun. Follow along on the page.

Will this be enough for a good time at Pasadena in November? That depends on you. If you plan on coming charged with some positive and creative energy, and even bringing some ideas with you — then there should be no room left for doubt in the answer!

14 thoughts on “Design and Hacking Drilldown: SuperCon Badge

    1. Thanks, CaptMcAllister.
      There is not much need for voltage booster. BooSTick is very good for some other projects, but in this case it doesn’t fit the visual design. Also, $13.50 is 2/3 of the total cost of the badge.
      Power consumption varies between 10 and 160 mA (average 60), depended on brightness setting and displayed bitmap on the LED matrix.

      1. Well, the parts don’t cost $13.50 – that’s just the fee for the build, testing, shipping and so on, which you’re already paying for on your project.

        Since this is a badge, I was thinking you could make it lighter weight by removing the weight of one of the batteries. You’re right, it will add cost, but I think it would be limited to the TPS61029 regulator cost, which is $0.95 each in 1k quantities from Digikey. You could possibly offset much of that cost by using the single cell battery holder and eliminating one battery.

        I released all the files under Creative Commons, so if you’d like to drop parts of the design into your next badge, please feel free to do so. The design should be more than able to handle 160 mA peak current at 3.3 V with a single AAA, but obviously the battery life is going to be cut by more than half. I just wanted to let you know because I found it pretty hard to find a good boost regulator that can output a great deal of current, so I wanted to share.

    2. A AAA has half the capacity of a AA. Boost converters are less efficient that just being able to run directly off the battery. And any regulator at all increases BOM cost and complexity.

      The LED driver is set to 19mA per channel.

  1. So IR send and receive then? Did anyone do an IR blaster game? I think that would be pretty fun at a conference. Set up a game where the LED’s display a “health” bar and the buttons fire an IR packet at other badges. Sadly travelling from Scotland would be too costly, unless we were to win the hackaday prize *cough*MyComm*cough*

    1. Your comment reminded me of an old “User Friendly” strip, where Boris was attending a trade show and using a high power IR setup on a balcony beamed his vcard to everyones PDA at once. Whether they wanted it or not…

    1. The project is open and all source files will be available soon.
      A few words about the algorithm. It handles a list of 44 X,Y coordinates for 44 dots. Each dot can be moved or not moved by one pixel, depending on the compared result of the accelerometer data and pseudorandom number generator output. So higher inclination data results in higher probability that the dot will be moved by +/1 one pixel. If the target location is occupied by another dot, new coordinates will not be updated, and that’s all.
      There is one exception: if the accelerometer data is is higher then some predefined value, it goes to Dice mode: instead of displaying chaos of dots, it draws the standard dice with random (one of six) face for a few seconds, and the returns back to the dot chaos. So you shake it violently and you can play some dice game :)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s