Programming Tiny Blinkenlight Projects With Light

[mitxela] has a tiny problem, literally: some of his projects are so small as to defy easy programming. While most of us would probably solve the problem of having no physical space on a board to mount a connector with WiFi or Bluetooth, he took a different path and gave this clever light-based programming interface a go.

Part of the impetus for this approach comes from some of the LED-centric projects [mitxela] has tackled lately, particularly wearables such as his LED matrix earrings or these blinky industrial piercings. Since LEDs can serve as light sensors, albeit imperfect ones, he explored exactly how to make the scheme work.

For initial experiments he wisely chose his larger but still diminutive LED matrix badge, which sports a CH32V003 microcontroller, an 8×8 array of SMD LEDs, and not much else. The video below is a brief summary of the effort, while the link above provides a much more detailed account of the proceedings, which involved a couple of false starts and a lot of prototyping that eventually led to dividing the matrix in two and ganging all the LEDs in each half into separate sensors. This allows [mitxela] to connect each side of the array to the two inputs of an op-amp built into the CH32V003, making a differential sensor that’s less prone to interference from room light. A smartphone app alternately flashes two rectangles on and off with the matrix lying directly on the screen to send data to the badge — at a low bitrate, to be sure, but it’s more than enough to program the badge in a reasonable amount of time.

We find this to be an extremely clever way to leverage what’s already available and make a project even better than it was. Here’s hoping it spurs new and even smaller LED projects in the future.

18 thoughts on “Programming Tiny Blinkenlight Projects With Light

      1. I think those also modulated the width of a light band on the screen itself thanks to the predictable precise timing CRTs allow. If I remember they stopped working with LCDs like light guns did.

    1. The fun part is that it doesn’t require a dedicated sensor to receive the data. And it’s even better because the hardware he designed a half year ago with the single purpose to display things worked out of the box for this kind of reception, just by using different software.

  1. From the video, one of the best quotes, I’ve heard in a while:

    When I set out to do this I was expecting to make a new version of the badge with a different circuit originally I had to add a bunch of components just to make the amplifier work. But, I just kept optimizing and whittling it down and eventually ended up back with the original circuit. This badge is the same one I showed off six months ago. It’s unmodified there are no hardware changes at all. So in a sense, the ability to do wireless updates was there all along – we just had to unlock it, by thinking really hard about the problem.

    1. Reminds me of this quote from Michelangelo,

      “The sculpture is already complete within the marble block, before I start my work. It is already there, I just have to chisel away the superfluous material.”

Leave a Reply

Your email address will not be published. Required fields are marked *

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.