Drawing PPM images on the Tildagon in MicroPython


Various circuit boards showing images.

The Tildagon has 2MB of RAM. That's not enough to do... well, most things you'd want to do with a computer! There's not much processing power, so running complex image decoding algorithms might be a bit beyond it. Is there a simple image format which can be parsed and displayed? Yes! The ancient Portable PixMap (PPM) format. The standard is beautiful in its simplicity. Here's the header: P6 # Created by GIMP version 2.10.38 PNM plug-in 120 120 255 ���t�{... The P6 identifies it as a PPM…

Continue reading →

Setting the time on the Tildagon


Hexagonal circuit board with circular screen. It is showing the date and time.

I'm beginning my adventures in MicroPython in the hope that I'll have something interesting working on the Tildagon Badge for EMF2026. Here's a basic implementation of a clockface. Here's how to set the time on the badge. There's a hardware clock which should keep time between reboots. Install mpremote on your computer. Connect the Tildagon to your computer using a USB-C data cable On your computer's command line, run mpremote. You should see: > Connected to MicroPython at /dev/ttyACM0 >…

Continue reading →

Displaying a QR code in MicroPython on the Tildagon Badge


A hexagonal circuit board with a circular screen. The screen displays a monochrome QR code.

This was a bit of a labour of love - and something I wanted to get running during EMF Camp. I'm documenting in the hope it'll be useful for EMF 2026! Here's the end result: Background I'm going to assume that you have updated your badge to the latest firmware version. You will also need to install mpremote on your development machine. You should also have successfully run the basic Hello, World! app. Drawing surface The Tildagon screen is 240x240 pixels. However, it is also a circle. …

Continue reading →

EMF 2024 - A Quick Retrospective


Selfie of me in front of a Tesla Coil. A big metal tube shooting sparks.

Six years ago, I went to my first EMF Camp. The next event was cancelled by Covid. The one after that saw me come down with Covid - although I presented remotely. So I was beyond thrilled to be able to attend & speak this year. There's always a risk that you can never recapture the magic of your youth. But EMF is consistently brilliant. A delightful alternative reality of robots, lasers, art, lasers, music, lasers, technical talks, lasers, and strange lights in the sky. Also, a TESLA COIL! …

Continue reading →

Infrared Infrastructure


Portacabin with hotspots.

I recently went to EMF Camp (which is Glastonbury for geeks - lots of random electronics, talks, art, and camping). Naturally, I took along my Infrared camera and pointed it at interesting things! First up… sewage! Festivals often have big tanks to take away human effluence. But how can you, a normal human, tell how full they are? Luckily, fresh sewage is warm. Phone boxen were plenty - thanks CuTel. Because the metal of the box is cold and human fingers are warm, it's possible to see r…

Continue reading →

Chatting Solar Panels at EMF Camp


A lot of very blurry faces overwhelmed by the light saturation.

I fucking loved my first visit to #EMFcamp. After two years of lockdown, I was over-excited at the chance to be with all my friends in a field this year. I was over-excited about doing a talk about my beloved solar panels. I was over-excited about sleeping in a goddamned camper-van! I was even - sadly - excited at seeing my name broadcast on TELETEXT! Photograph © Skylar MacDonald 2022. All Rights Reserved. The moral rights of the author have been asserted. The universe, of course, had other …

Continue reading →

Convert WebVTT to a Transcript using Python


YouTube showing subtitles.

I want to convert YouTube's auto-generated subtitles into a plain transcript. Why is this so hard? This blog post gives a more detailed explanation than my answer to this StackOverflow question. Here's what the subtitles look like when you view a video: And here's what the code which generates those subtitles looks like: 00:00:00.930 --> 00:00:03.080 align:start position:0% and<00:00:01.230><c> now</c><00:00:01.439><c> can</c><00:00:01.709><c> we</c><00:00:01.800><c>…

Continue reading →

Reflections on #EMFcamp - a Science-Fact Convention


Terence and Liz in front of Lasers at emfcamp.

At a science-fiction convention, you queue for hours to hear a bit-part actor describe what it was like on the set of a forgotten sci-fi show. At a science-fact convention, you have a beer with a person who is literally changing the world with a laser cutter, some diodes, and a smattering of Python. Welcome to ElectroMagnetic Field! (I've stolen the subtitle from Ken MacLeod's description of Charles Stross's story Dechlorinating the Moderator.) I'm not one for camping. Or doing anything in a …

Continue reading →