Matrix hexpansion lite-loop
At Electromagnetic Field 2026 I will have a few assembled (white LEDs) boards and a few kits (your choice, white or green LEDs, or bring your own) for sale. Update: These are now all sold out, sorry. I'll try and put another batch up for sale online at some point.
- Companion app (Micropython, on Github) and on the Tildagon app store
- Hardware and firmware projects (KiCad projects coming soon, ch32fun C firmware project, on Github)
- Assembly instructions
- v1 BOM (
lite-loop 2026-05-22,lite-loop 2026-06-21)
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).

Updates
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. This isn't fully working yet so currently disabled in the badge app.
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).