[personal profile] chebe
It's (roughly) the mid-point between EMFcamps. Let's tend to that fire burning in our hearts by talking about the badge.

In 2024 they decided to do a really cool thing; make the event badge reusable, creating a stable platform for people to learn, and build projects upon. I love this idea, because I personally hadn't had much success with the badges. The 2014 badge was my first ever, iirc, event badge, from any event. I was made up just getting it working. Which it did, occasionally. I actually wrote a little app for the 2016 badge, at camp. But never got to making use of the hardware. (I also never fixed the neopixel.) 2018 I failed to obtain a badge. 2020, well, yeah. The 2022 badge only had a USB-C plug connection, and I didn't have a USB-C socket, so I couldn't do anything with it. 2024 decided to flip the script, with the Tildagon. The idea is a pair of boards; the base board being the main platform, paired to a faceplate, with the screen, LEDs, themed artwork, etc, that will be updated for each event.


Badge


The base board is an ESP32-S3, and runs MicroPython. I did not look much into the apps yet, instead trying to learn about the capabilities of the badge by looking at the hardware. Because, the spicy part is, the base board also has six expansion bays for, hexpansions, if you will.

But first, flash back to being in a field, queuing up, getting a badge kit, and then assembling it in the van, booting it up, and, um, 'Unknown error'. Okay then.


Photo of the Tildagon faceplate; a green hexagon PCB with side-lighting rgb LEDs all around the outside (with little white hexagons screenprints to highlight the LED colours), and a circular display screen (on blue PCB) in the middle simply displaying the text 'Unknown error' white on black, against the grey fabric of a van seat.

Tildagon, freshly assembled
Photo by [personal profile] chebe



Flashing the badge is a whole thing. A process involving needing to install a Chromium browser (that saddens my Firefox heart), plugging in USB cables with one hand while holding down buttons on the badge with the other hand, and clicking mouse buttons with the, uh, other other hand. And is entirely dependent on reliable network, and good firmware versions.

The screen is also only pressure-fit to the faceplate. This is not ideal. Especially not for a wearable. I picked up a replacement ribbon cable, because I thought mine was torn. But it wasn't. I even ordered a replacement screen. (And I saw others lose theirs quite a bit.) But the trick is, I have to manually ensure a good connection by pushing the screen down (from A to D). A quick soldering would fix everything. (But I want to hold off on that to see what's happening with the 2026 hardware.) I did get it working by the end of the weekend though, with the screen caveat. Here it is, in all its RGBLED glory, running the Matrix rain app.


Photo of the Tildagon faceplate; a green hexagon PCB with side-lighting rgb LEDs all around the outside lit up in a rainbow colour scheme, and a circular display screen (on blue PCB) in the middle displaying the signature Matrix green text falling against a black background, against the brown wooden table of a village tent.

Tildagon, in operation
Photo by [personal profile] chebe



Hexpansions


And that would have been it. The event over, the badge obsolete. But that is not the fate of the Tildagon!

Flash back to finally unpacking after camp, and looking closer at the hardware. The first thing I do with new microcontrollers is prototype. So I order some Protoboard Hexpansions from Jake Walker, and wait for them to arrive. The idea is a simple one. Previously I made an add-on PCB that uses the SAO standard, that used to be common on event badges of events I never went to. It will not work with the Tildagon, but surely I can make an adapter with the protoboards?

Here's me testing the concept, by simply clipping the add-on board to the power rails of the protoboard. Success!


Photo of a purple protoboard hexpansion plugged into the mostly off-screen Tildagon, with two alligator leads connected to a different purple blob shaped PCB's headers, with LEDs lit up on all boards.

Prototype the circuit
Photo by [personal profile] chebe



(Please excuse my terrible surface mount soldering, it's a learning process.) My add-on board uses the 4-pin SAO version (+, -, SDA, SCL) (even though the circuit only uses the + and -), but a 6-pin version now exists, so on the off-chance of the possibility of reusability I planned for that version. (Which is even less likely, because, I'm pretty sure I placed that SAO pinout upside down, severely limiting which boards would fit.)


Photo of the protoboard with a 6 pin area marked, and the back of the add-on board with the 4 pins labelled +, -, SDA-1, SCL-2.

SAO pinout
Photo by [personal profile] chebe



From reading the documentation, I suspect that I need to connect these pairs of SAO pin to hexpansion breakout;

3V to +
GND to -
SDA to SDA
SCL to SCL
GPIO1 to LSA
GPIO2 to LSB

I don't have anything to test these suspicions though, because all I'm using is + and -, so this is a fingers crossed exercise.


Photo of the top and bottom sides of the prototype board with colour coded markings of which pins need to connect.

SAO to hexpansion pinout
Photo by [personal profile] chebe



And this is how I planned to connect the dots. With wire and solder.


Photo of the top and bottom sides of the prototype board with colour coded markings of the circuit connections, also labelled; 3v, SDA, GPIO1, GND, SCL, GPIO2.

Circuit map
Photo by [personal profile] chebe



Completing the circuit with a 2x3 socket header on the top of the hexpansion.


Photo of the top of the protohex board, with a 2x3 socket header and some solder joints visible.

Soldered protohex board, top
Photo by [personal profile] chebe



The bottom is a mess, but I made sure there were no shorts. (I'm still pondering if a cover is necessary, and if so what kind. A chunk of Sugru? A 3d-printed case?)


Photo of the bottom of the protohex board, with six coloured wires and some solder joints visible.

Soldered protohex board, bottom
Photo by [personal profile] chebe



The final test; the add-on board plugged into the protoboard hexpansion, plugged in to the Tildagon. Eyes glow! Success!


Photo of the front of the add-on board (a design of the character Entrapta) with purple glowing eyes, plugged into the protohex board, plugged into the Tildagon (showing the default menu; App store, Sponsors, Update).

By their powers combined, moar LEDs!
Photo by [personal profile] chebe



The next steps are 1) more complicated hexpansion circuits, and 2) writing apps to interact with the hexpansions. (Not looking forward to learning about I2C EEPROMs.) But sometimes you just need to write a blog post to close some 80 browser tabs.


Case


In the meantime I printed the official bumpers case in rainbow silk PLA, because all my other EMFCamp badges have cases, and if this badge is for the long term, then protect it we must! (There is a growing list of different ideas on how to go about that too.)


Photo of the a black PCB hexagon shaped board, with a yellow PLA outline, with detailing around the USB sockets, and held on with screws.

Back of the Tildagon, in the bumper case
Photo by [personal profile] chebe




Photo of the a green PCB hexagon shaped board, with a yellow PLA outline, held on with screws, with a separate outline and cover for the circular screen in the middle

Front of the Tildagon, in the bumper case
Photo by [personal profile] chebe