benc's tildagon notes

Notes and adventures with my tildagon. Don't expect this stuff to make too much sense.


December 2025

spraying away battery acid with contact cleaner and visiting the toxic waste dump

the battery leaked a bit while my tildagon was waiting otherwise patiently for my attention

many people in their christmas holidays queuing up. more berlin dogshit.

after spray, everything except the down button works. very occasionally the down button does work, but mostly it either makes no input, or starts input clicks repeatedly which stops on reset.

ordered replacement ribbon cable (x5) from china. using link from tildagon website. a few days shipping - perhaps longer getting from Liege to my door than from China to Liege, much postage. it arrived without any customs trouble, which i was unsure about given recent changes in de-minimis exemptions.

while its disappointing that the down button doesn't work right now, this isn't overall a disappointment: it forced me to pay attention to whats going on with the hardware much more than if I was just tinkering, and that was interesting.

flashing a red LED using breakout board

Protoboard Hexpansion by jakew

even with nothing on at all these boards still do something: the tildagon OS notices a board plugged in and turns on the back-LED above that board. and also emits a log message to the serial console

soldered a header on. turns out that board is a fraction of a mm too short for a header to fit and for the hexpansion connector to go in completely but only very slightly out so it "works".

at least for this use case, probably EMF Badge Interposer Hexpansion by Gavin's Creations would have been better.

Low speed pins couldn't flash my LED with the firmware I had. But that was documented on the tildagon website for that firmware version. so I rebuilt the firmware from github.

I didn't build an app to flash the LEDs: I used the USB serial port to ctrl-C out of the firmware and run pin commands in the micropython REPL.

Build firmware

Pretty much I followed the instructions in the readme of emfcamp/badge-2024-software and it worked. It was a bit confusing about how to get the badge into firmware loading mode. I don't quite believe the button sequence in that README.

piezo PWM

pimoroni rainbow hat for raspberry pi - I had this sitting around in my box, waiting for a use. The piezo there is powered off 5v, not 3v, in as much as I needed to feed 3.3v into the 5v supply not the 3.3v supply on the connector

PWM module on any of the high speed pins. I didn't try the low speed pins. Set duty to 0 or 100 for off, and to 50% (512/1023) for tone. Set pwm frequency to change the frequency of the tone.

hook into eventbus to make it beep when Something Happens (eg hexpansion insert/remove)

the driver app doesn't start at startup: i guess if it was in a hexpansion EEPROM, it would? but I don't have one of those.

this is interesting enough to think about getting components soldered onto protoboard

PR for documentation about eventbus synchronous vs async calls

test app that counts button presses using two different callbacks, one of each synchronicity.

tildagon-eventcounter app

Documentation PR #281

rule 22 1-d cellular automata on front LEDs

Doesn't look very good on such a small size, and especially bad because with 12 leds it rapidly turns into a boring pattern due to being a nice round number. I added some randomisation and colours which makes it look better.

it was a good first app though and I have a few other circular ideas to play with.

tildagon-pattern-ca app

in the badge-2024-software repo theres PR #235 unmerged, working on pluggable patterns via apps, which is otherwise a bit weirdly supported right now.

eventbus usage: the docs and examples I've seen attach events to the eventbus in app __init__ and then recommend removing them at minimise time. These aren't symmetric: when the app is reselected on the launcher, the events aren't reattached. I made a new foregrounding concept in my apps using a boolean. but I wonder if there's a better way to do it? I think it could be done on reactivate event notification, for example.


January 2026

even more chemical rinse

the down button is working for its longest ever! 10 minutes so far...