Example script for an unnamed charlieplex double 7-segment display for Arduino Nano
One day I found half of a broken baby food maker, which still had an intact motor and control panel. The control panel intrigued me since it lacks any membrane switches or mechanical buttons and instead appeared to operate by capacitance. I tried to deduce how to connect it to a UART or other interface but then gave up and decided to extract just the LED module.
This is the baby food maker where it came from [https://www.alibaba.com/product-detail/detail_1601604703955.html]
Its part number doesn't show up anywhere so I started testing individual pins. A module with only pins looked unusual and inadequate to control the 7 + 1 + 7 + 1 = 16 elements on its display. Surprisingly, two different elements lit up when I applied a 3V coin battery to two terminals.
This module turns out to operate with a “Charlieplex” framework. Its two top pins are not connected and not involved in controlling the elements. With 5 pins, a total of n * (n-1) = 5* (5-1) = 20 elements can be controlled.
It's one of these but with two digits and two decimal points
After searching for some time, I could not find the spec sheet for the module and decided to interrogate them manually with the coin battery, and recorded this chart:
| 1 Neg | 2 | 3 | 4 | 5 | |
| 1 Pos | None | 1E | 1F | 1G | None |
| 2 | 1A | None | 2C | 2D | 2E |
| 3 | 1B | 1H | None | 2F | 2G |
| 4 | 1C | 2A | None | None | 2H |
| 5 | 1D | 2B | None | none | None |
So how can the module be controlled? It looked like an ideal project for an Arduino Nano. First I imagined that the various elements could be controlled by activating various subsets at a high flicker rate, but then decided to control them row-wise.
I outlined a general algorithm for sending one of 0-9 plus other characters, then Windsurf helped A LOT by fixing my syntax and suggesting code shortcuts.
At this point it's just a demonstration but the algorithm can be applied to other uses.




