I'm trying to design a product that have the following features for mass production, and I'm asking from your experience, how to get the lowest price for the components, quality of the chips in terms of stability due to temperature (it must work in temps over 40°C)

I would like to control a 34-digit 7-segment display. Which way should I go? Just connect lots of switch transistors, and give them one data line each? Or are there easier ways, such as dedicated chips with low price?

  1. There are 6 groups of 4 digits
  2. 8 digits for the date
  3. 2 digits for a counter

I have been away from the Electronics industry since 2008, and I mostly need help to refresh my memory.

I'm keeping in the design that I also need to play mp3 files, read RF remote control, RTC,..etc. So I may run out of the pins because of controlling 34 digits using TDM.

  • \$\begingroup\$ You're going to want to break up most of these into separate projects and questions here. \$\endgroup\$
    – scld
    Feb 4, 2014 at 19:30
  • \$\begingroup\$ @scld ok for now I would go for the first design question; the 34 7-segments. \$\endgroup\$ Feb 4, 2014 at 19:42
  • \$\begingroup\$ You'll want to ask a more detailed/specific question but searching MAX7219 should get you rolling \$\endgroup\$
    – scld
    Feb 4, 2014 at 19:45
  • \$\begingroup\$ @scld it's price is so high, 11$. I'm looking for the cheapest way. \$\endgroup\$ Feb 4, 2014 at 19:50
  • \$\begingroup\$ @scld I'm also out of the pins, I want a uC that would have the capacity to control all those 34 segments, plus doing a lot of other functionality. \$\endgroup\$ Feb 4, 2014 at 19:57

1 Answer 1


You want to control 34 7-segment displays. In my experience/opinion you should not multiplex beyond about an 8:1 ratio, especially if you need bright displays and/or high \$T_A\$ operation. So let's try that (8 groups of up to 5 digits).

Let's suppose you want an average operating current of 15mA/segment. Say they are common anode displays..the low side (segment) drivers must be able to handle 120mA each (8 times 15mA). ULN2803A or ULN2003A will handle 8 or 7 segments. You would need one output per segment per set, or 40 outputs (assuming decimal points). That's ~5 chips. And another set of outputs to drive the drivers, ~5 74HC595s. There will have to be 40 current limiting resistors (perhaps arrays, if the power dissipation capability is acceptable).

You would need 8 high side drivers, each of which is capable of handling 8 * 5 * 120mA = 4.8A for 12.5% of the time. This could be handled with 8 P-channel MOSFETs driven from something like a 1-of-8 demultiplexer (with enable).

To control this from a micro, you have 3 bits to select the digit (1 of 8), and preferably an enable line. Before you turn the digit on, you shift out serially 40 bits (assuming decimal points) to the 74HC595s, strobe the data to the output and only then bring the appropriate set of 5 anodes high. Repeat this about every 1msec, sending different data to the segments depending on the digit, of course. So only 7 GPIO lines are required for all digits (up to 40 digits).

The above-mentioned parts are all very inexpensive and suited for mass production. You'll need about an 5A 5V (25W) supply using the numbers above (worst case with 34 * 8 * 0.015A illuminated at once is 4.1A).

  • \$\begingroup\$ This is an excellent approach, but I can't imagine some circuits, If you have time and do not hesitate, would you show me a diagram ? So there are drivers that will drive the ULN2803 that's I got it, but the connections from the uC to the drivers, then MOSFETS that select the segments is little bit unclear. Thanks again \$\endgroup\$ Feb 4, 2014 at 21:13
  • \$\begingroup\$ Pfehany, How did you deduce the 1ms delay ? it only worked with that delay, 1ms =1khz, and the POV would need more than 60Hz correct ? \$\endgroup\$ Feb 16, 2014 at 13:20
  • \$\begingroup\$ 1kHz is okay, but not excessively high, if there is vibration or the person's head is moving. \$\endgroup\$ Feb 16, 2014 at 14:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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