Matrix Hexpansion (lite-loop)
Six of these boards make a loop of 936 single-colour 0603 LEDs surrounding the badge, but its 18 × 8 matrix (with an additional 9th row of 12 in the center) is detailed enough to display text or animations on its own. This is a daughter board for the matrix-hexpansion (v2 base).
The CH32V006 microcontroller emulates a read-only EEPROM with a hexpansion header for identification, and runs a starfield pattern or scrolling text. It can be controlled from the "Matrix Hexpansion" Badge App Store app. It also has a bootloader mode so the badge app can flash new firmware with no additional hardware required, for example when more patterns are developed.
This is a hexpansion for the Electromagnetic Field camp Tildagon (2024) or Spaceagon (2026) badges.
Limited numbers will be for sale at the Always Plotting Something shop.
The Github repository has KiCad projects, firmware, and more documentation.
Starfield pattern with my orange-LED prototype boards (the final ones used warm-white LEDs)
Links
- Companion app (Micropython, on Github) and on the Tildagon app store
- Hardware and firmware projects (KiCad files and firmware code on Github)
- EMF Camp 2026: kit assembly instructions
- v1 BOM (
lite-loop 2026-05-22,lite-loop 2026-06-21)
Updates
August, 2026
I got the firmware updates working (in the field on day 1 of EMF Camp 2026) although there is still room for improving the badge app. I also moved the text rendering to the CH32V006, so the badge just sends ASCII characters and a scroll offset.
I got another 40 LED boards made with PCBA, and hand-assembled the bases because the processors were out of stock at LCSC. I've had some issues with the bonding between the base and the LED boards, and with the 3x3mm processor chip; about half the boards needed to be reworked after initial assembly. So now the processors are available again, I am going to make a version that will be a combined base + LED board. I still like the idea of having the generic base for prototyping, but if I'm making 50+ copies of something it is just too much work! That means the next batch will not align perfectly with the prototypes; while viewed top-down the LEDs will be in the same position, they are a little bit closer to the bottom of the badge.
July, 2026
Assembled and tested a handful of these boards with warm-white LEDs to offer for sale or trade at Electromagnetic Field 2026. Assembly takes over an hour per board, even with a stencil and "help" from the pick-and-place machine, as there inevitably are bad solder joints or missed placements that need to be tested and corrected. With the warm-white LEDs it looks pretty good, I think, and about matches the brightness of the 2024 badge pattern LEDs set to 10%.
Initial patterns are a Starfield (particle system, this could definitely be simplified to run a lot faster!) and static text display (using Blit fonts until I make my own variable width font). Scrolling text will hopefully be coming soon, as will more patterns.
The badge app detects and talks to the hexpansion over the I2C bus. I also really want it to be able to do a firmware upgrade to add new fonts or patterns to the board, so other users don't have to find me or buy a dedicated programmer. I have a bootloader that can erase and write the main program flash; this can be accessed over I2C again by pulling a particular pin bridged to the badge interface low during a power-on reset.
May, 2026
Initial concept, created together with the lite version of the matrix-hexpansion. The layout was again generated in JavaScript -- 156 LEDs in a 18x8 + 12 matrix that has gaps in the inner-most row -- and applied to the KiCad board with a Python script. Not sure if the CH32V003 can actually run a 156-LED matrix though (it has enough pins, but may not have enough memory for double buffering the PWM bitstream without further optimisation).
