I am putting together a project that requires a 4-digit numeric display and wound up ordering this. Unfortunately, something I completely failed to notice when ordering the LCD was that its pin assignments seem to be... incredibly bizarre. At least to my relative lack of experience.

The LCD provides four "COM" pins (COM0-COM3) and eight additional pins (two per digit). The way the segments are connected to the segments results in each of the COM pins selecting not a digit but rather a (for lack of a better term) row of segments: A and F, B and G, C and E, and D and the decimal point. The eight additional pins then allow you to select one or both of the segments in a row or rows for a given digit.

For instance, if COM1 is active, then I can make visible the E and/or C segments of as many digits as I wish.

The trade off for this is that it is utterly impossible to display any digit besides seven in a single cycle. So in order to use this LCD to display an arbitrary number, it seems that one must update it at four times the rate one otherwise would use.

Bluntly, this seems to me and my inexperienced eyes like a totally pointless convolution. Allocating one pin per anode and one pin per segment would have taken the same number of pins. Updating the LCD at a higher frequency seems like it would increase power usage and wear, if anything.

Perhaps someone more experienced with these sorts of items can shed some light on the matter. Is there any benefit whatsoever to allocating the pins like this?

  • \$\begingroup\$ There is a fairly common technique to operate an LCD using time-multiplexing of segments. en.wikipedia.org/wiki/Multiplexed_display . It is unclear from the question if you are aware of it. \$\endgroup\$ – Eugene Sh. Sep 13 '17 at 19:33
  • \$\begingroup\$ @EugeneSh. The page you linked doesn't seem to mention this particular style of multiplexing. Normally I would have expected each of the eight segments to have a pin and then have a pin for each digit. \$\endgroup\$ – Invictus Sep 13 '17 at 19:35
  • \$\begingroup\$ Allocating one pin per anode and one pin per segment would have taken the same number of pins. Wrong... that would require a minimum of 33 pins assuming one common anode or cathode. \$\endgroup\$ – Trevor_G Sep 13 '17 at 19:36
  • \$\begingroup\$ @Trevor I count twelve pins - one each for ABCDEFG, one for the decimal point segment, and then one for each of the four anodes. \$\endgroup\$ – Invictus Sep 13 '17 at 19:38
  • \$\begingroup\$ @oh you are talking about using the matrix the other way... I Think you need to think about the complexity of routing that on two sided "board" with no vias. \$\endgroup\$ – Trevor_G Sep 13 '17 at 19:39


enter image description here

The trick is one needs to get refreshing per digit out of your head and think about updating the whole display two "rows" at a time instead.

The layout of the segments is more dictated by the routability of them on the glass. Unlike PCBs, vias are not available so crossovers can't happen.

  • 1
    \$\begingroup\$ Woah. You are taking it seriously... +1 for the effort. \$\endgroup\$ – Eugene Sh. Sep 13 '17 at 19:55
  • 1
    \$\begingroup\$ So in other words, this setup simplifies the connections between the pins and the segments? \$\endgroup\$ – Invictus Sep 13 '17 at 19:58
  • \$\begingroup\$ Wondering what the down-vote was for... cest-la-vie \$\endgroup\$ – Trevor_G Sep 14 '17 at 15:59

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.