Skip to content

leftwebbing/CharlieplexModule

Repository files navigation

CharlieplexModule

Example script for an unnamed charlieplex double 7-segment display for Arduino Nano

Back Story

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.

c-plex module side of c-plex module with part number back of c-plex module with mystery pinout

This is the baby food maker where it came from [https://www.alibaba.com/product-detail/detail_1601604703955.html]

baby food maker where I found the c-plex module

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 single 7-segment display with decimal point

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.

About

Example script for an unnamed charlieplex double 7-segment display for Arduino Nano

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages