I assembled a DIY clock with surface-mounted LEDs (Geekcreit DIY 6 Digit).

There are 56 groups of LEDs (6 * 7segments + 10 up & down + 2 * colons), each group is composed by 2 LEDs that are in parallel.

The MCU is a IAP15W413AS with 28 pins.

I don't understand how it is possible to drive independently the 56 LED groups with only this MCU.

I tried to probe an LED with an oscilloscope and here is the result: waveforms on LED's terminals Positive is in yellow, negative in blue.

It was on an LED from a segment displaying '0'.

To the newbie that I am, it doesn't look like a regular LED...

What is it?

  • 2
    \$\begingroup\$ How about posting the schematic then it'll be easier to understand. \$\endgroup\$
    – Andy aka
    Aug 21 '20 at 13:34
  • 1
    \$\begingroup\$ "Multiplexing" is the google word of the day. \$\endgroup\$
    – brhans
    Aug 21 '20 at 13:36
  • \$\begingroup\$ An LED can turn on and off faster than your eye can register the blinking so the MCU just has to cycle through the LEDs fast enough through a circuit that only powers on LED at a time instead of needing dedicated pins for each LED. \$\endgroup\$
    – DKNguyen
    Aug 21 '20 at 14:15
  • \$\begingroup\$ With Charlieplexing, if X is your number of I/Os, then you can light $$X^2-X$$ individual LED segments. \$\endgroup\$ Aug 21 '20 at 14:20

Here is another 6-digit clock based on a similar 8-bit processor (a PIC rather than a fast 8051 variant):

enter image description here

As you can see, 15 GPIOs are used to drive all the LEDs, in groups of 8 independently. By cycling through them fast enough they appear to be illuminated steadily and controlled individually.

The schematic above has driver for both row and columns allowing higher currents than driving directly from a microcontroller GPIO pins, but the principle is the same. In the above schematic there are 8 columns and 7 rows allowing 56 LEDs to appear to be independently controlled.

I see about 32usec 'on' time per column, and about 40usec per column, so that would be around 280usec for the entire display if they use a similar scan arrangement. That's about 3.5kHz, which is nice and fast.

If you move the display rapidly (shake it vertically) you should be able to perceive the scan and figure out whether it is scanning left to right or right to left (or some other way).


2V with LED current limited on segment only occurs when upper digit driver signal is high for 7 time slots and 8th is idle. (Blanking) while lower signal is a Segment current limited drive, and this is called LED Multiplexing.

Unfortunately you cannot drive LEDs to 8* nominal current because this exceeds spec but maybe average 1/8th power at absolute max current. thus Muxing is often done with fewer digit duty cycle to get brighter results, unless special design like HP9825 LED display on an old Excellent computer I had by HP where they had a long alpha-numeric Red special LEDs to handle the pulsed current in GaAs.

Judging my scope I would say this is Common Anode.

The pulses on the high side indicate no current for interdigit blanking to prevent crosstalk optical fading of previous digit. Thus duty factor appears to be 1/10 time slot of peak segment current for average.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.