Programming Tiny Blinkenlight Projects with Light
Mitxela faced a unique challenge with his ultra-small projects: how to program them when there isn’t enough physical space to mount a connector. Instead of turning to wireless solutions like WiFi or Bluetooth, he devised an innovative light-based programming interface that leverages the dual function of LEDs as both emitters and sensors.
This creative approach was partly inspired by his recent LED-centric projects, such as wearable LED matrix earrings and blinky industrial piercings. LEDs can act as light sensors, although not perfectly, which sparked the idea for a light-based communication system.
To test this concept, mitxela chose his relatively larger yet still compact LED matrix badge as a prototype. This badge includes a CH32V003 microcontroller and an 8×8 array of SMD LEDs. The challenge was to create a reliable communication method using these components without additional hardware.
After some experimentation and prototyping, mitxela found a solution by dividing the LED matrix into two halves. He connected each half to the two inputs of an op-amp within the CH32V003, creating a differential sensor that mitigates interference from ambient light. The programming process involves placing the matrix directly on a smartphone screen, which flashes alternating rectangles to transmit data. Although the data rate is low, it’s sufficient to program the badge within a reasonable timeframe.
This light-based programming method is a brilliant example of ingenuity, using existing components in novel ways to overcome design constraints. It’s not just a solution to a problem, but also a potential catalyst for even smaller and more intricate LED projects in the future.
Read more: Programming Tiny Blinkenlight Projects with Light