Go Down

Topic: Library for many 7, 14 & 16 segment serial displays (Read 6981 times) previous topic - next topic

I got the first 14 segment display (A 8 digit version) and have added it to the library. It may also work with the a single 4 digit display, but I have not received that display yet.

I have defined all characters for 14 segment, but not many symbols, because they do not really work on the display. All defined characters and symbols are listen in the manual.

There is not really any difference in the applications between using 7 and 14 segments display, except the letters will be much more readable with 14 segments displays.

I have also added links to Ebay and Aliexpress in the documentation, if anybody has better search terms or links for the displays please tell me.

Manual and download


I need a universal 7 segment display and thought of using the best for each project and don't wanna use any further software.


if anybody has better search terms or links for the displays please tell me.
you could register for the affiliate programs of ebay, amazon, or aliexpress and provide these as links. You will not earn a fortune, but hey, why not collect some cash back for your next order ...
Signatur auf Pause

No updates to the library at the current time, the 4 digit 14 segments have not arrived yet. I hope the current 8 digit driver can be used.

I have spend some time on making a table with all the displays I have used for testing, the table include a couple of measurements on the display and can be sorted and filteres.
This will hopefully make it easy to find the best module for a project.

A small update to the library, it now support timers on the Arduino Nano Every processor.
B0, B1 & B2, the two others (B3 and A0) is used by the millis and delay function.

My two first orders for 14 segments displays has not arrived yet, I have put in more orders.

Finally I got the 4 digit 14 segments modules:

The software support up to 8 display modules.
I looks like all ebay offering is with two different modules, i.e. a motorized desoldering tool is needed to swap digits if you want only one color on a module.

I did also verify that this module works:

Documentation and download

Size, current and other specification on all supported modules

A minor update with another display type:

The list with current and sizes are also updated with this display.

I do not believe I have more ebay/aliexpress displays on order, but if anybody see a display I am missing please post a link and I may include it (It will probably take a few month due to shipping time, as the 14 segment display did).


Thank you for writing this library and putting so much effort into supporting different devices. I too have become addicted to various 7-segment and 14-segment displays, having ordered many online. Generally connecting them to arduinos but also now STM32s. Now I am designing my own circuit boards and daisy-chaining them to make larger (perhaps insane) displays, with shift registers, MAX7219, or HT16K33 drivers.

I would love to contribute to your awesome library - is it not on Github already? Considering the amount of work you put into this, I would imagine this would help immensely in gaining more users and interest. Many people are now using PlatformIO to develop for microcontrollers, and the package management and library functions depend on source control and github etc to use these. If you would publish the source and docs in this way, I am certain you would get a ton of value out of it!

I have not used github yet, that would require I used some time finding out of it works.

It is very few requests I have seen for improvements to the library.


Oct 11, 2019, 10:05 pm Last Edit: Oct 11, 2019, 10:47 pm by Doerak_balder
Really thank you for this library! It must have been a hell of a job to set this up.
And working very well, allthough i may have found a small glitch in your code...
Negative numbers, when used with 1 decimal and using showNum1decimal(number), is rounding incorrectly.
It shows a number 0.1 greater, so -24.3 is displayed as -24.2.
In LEDDisplayDriver.h, line 1087, there may be the error.
You are adding 0.5 before calling showNumWithPoint(), but maybe subtract 0.5 in case of negative numbers.

I changed "showNumWithPoint((long) (num * 10 + 0.5), 1);" to
     if (num<0) showNumWithPoint((long) (num * 10 - 0.5), 1);
     else showNumWithPoint((long) (num * 10 + 0.5), 1);
and it seems to be okay.

Keep up the good work! In dutch we say: I take off my hat for you! :smiley-lol:


Oct 11, 2019, 10:21 pm Last Edit: Oct 11, 2019, 11:14 pm by Doerak_balder
Addition to previous post:
Probably better to change void showNumWithPoint, otherwise many occasions have to be changed...
Or use display.showNum(-12.8,1);?? In that case, for obvious reasons, generate an error if showNumxdecimal is called with a negative number...

Oct 11, 2019, 10:22 pm Last Edit: Oct 11, 2019, 10:27 pm by HKJ-lygte
Negative numbers, when used with 1 decimal and using showNum1decimal(number), is rounding incorrectly.
It shows a number 0.1 greater, so -24.3 is displayed as -24.2.
Thanks for your comments.

I will have to look at this, but it will be some time before it is fixed (My internal version is well ahead of the published version). Next up is a public domain design for 14 segments displays. I plan on doing a couple of public domain designs, with published schematics and gerber files. These designs will be fairly cheap to copy and bring a bit more functionality to display modules.

Your dutch saying is exactly the same in Danish: "Jeg tager hatten af for dig" (Very few people will be able to read that in Danish).

And working very well
The initial idea was to work with the most common and cheapest display on ebay, but the goal is now to work with any display on ebay or aliexpress (I can get at a reasonable price) and with some of my public domain designs (Coming up).
It must support everything that is usually done on a 7-segment display (and now also 14-segment) in a easy way.

When I program I do not want to start at square one, I expect libraries to handle all the common stuff. That is also the main reason I do not like the "print" interface for 7-segment displays, as discussed when I published this library.

I am open for new ideas to implement, as long as the library do not grow in size. This may sound difficult, but the C++ compiler is very good at removing unused code, i.e. unused functions do usually not take up any space in the final program. The exception is variables, they have a tendency to stay (I avoid a lot of that with the #defines).


Oct 12, 2019, 02:51 am Last Edit: Oct 12, 2019, 02:53 am by Doerak_balder
Thank you for your fast response!
And for your danish lesson!
I will keep a close eye on your site, regarding what is upcoming!

The library is updated with support for this module:

The module has RGB indicators and can support up to 8 key inputs.
It is open hardware and everything is described here:

Description and download

The library support up to 8 of these modules mounted edge to edge or as separate displays.

Library manual and download

Go Up