HowTo: Electronics - Building a seven-segment digit "pxlDigit" from WS2812 LEDs

For another project, I urgently needed a relatively large number to display a time duration. This ultimately resulted in this small "sub-project". With the 3D printed frame described here and a few WS2812 LEDs, you can easily build a seven-segment digit (or several) and use it to create displays for displaying numbers.

Over time, I've noticed that this type of digits are suitable for all sorts of projects. For example, I have already used them for the construction of a clock.

Maybe you also have a new use for it. I'm curious what you think of so. Let me then but happy to leave a comment there. 🙂

How to build such a number is described in the following article.


Safety instructions

I know the following notes are always kind of annoying and seem unnecessary. Unfortunately, many people who knew "better" have lost eyes, fingers or other things due to carelessness or injured themselves. Data loss is almost negligible in comparison, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Because even the coolest project is not worth injury or other trouble.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links/advertising links

The links to online shops listed here are so-called affiliate links. If you click on such an affiliate link and make a purchase via this link, Nerdiy.de will receive a commission from the relevant online shop or provider. The price does not change for you. If you make your purchases via these links, you support Nerdiy.de in being able to offer other useful projects in the future. 🙂 


Requirements

Helpful articles:
Before you start with this article you should be familiar with the basics of soldering.. You can find information about this in the following article.

Required material:

In the following list you will find all the parts you need to implement this article.

Required tool:

In the following list you will find all the tools you need to implement this article.


Collect the necessary parts

To build a digit you need the following parts:

  • 3D printed frame
  • 7x 2x LEDs of a 60LED/m WS2812 strip
  • approx. 15cm 3 pole cable

Another view of the parts needed

The STL files for printing on your 3D printer can be found in the repository at the following link.


Prepare LED elements

So that you can easily glue the LED elements into the frame later, you should first prepare them.

To do this, first tin the contacts on the LED strip.

Now you should cut six pieces about 3cm long from the three-wire line.

You can then strip the ends of the cut pieces of wire and the remaining wire by about five mm.

... and tin with a little solder.

Thus prepared, you should easily connect the wires with the prepared LED strips....

...can solder.

Make sure that you solder the wires to the end of the LED strip where the arrow points to the LED.

This is the data input of the first LED on the LED strip. Soldered this way you can avoid mistakes later when you finally solder the LED strips.


Install LED elements in the housing

After you have prepared the LED strips, it is now time to glue them into the 3D printed frame. I didn't record every single step at that time (unfortunately it's been a while since I took the pictures shown here). But there are detailed pictures of each connection which hopefully make it possible to follow the steps 🙂 .

You can use this circuit diagram as a "rough guide".

The individual LED segments are therefore connected according to the following sequence.

  • below
  • bottom-right
  • top-right
  • Above
  • top-left
  • Center
  • bottom-left

The connections marked in blue are only shown for the sake of completeness. These are of course already present. Otherwise, "red" corresponds to the 5V supply and "black" to ground.

Before you solder the individual LED strips together, you should glue the individual LED strips into the frame as shown.

Another view of the glued but not yet soldered LED strips.

Once you have soldered all LED strips, your figure should look something like this.

In the following paragraphs there are more detailed pictures of the individual connections.

View of the intersection where the bottom-right, middle and top-right segments meet.

You can see there that the bottom-right segment is connected to the top-right segment.

Of course, "5V" should be connected to "5V", "GND" and "DO" of one LED strip to "DI" of the other LED strip for all connections.

View of the intersection where the bottom-left, middle and top-left segments meet.

You can see there that the segment below-left is connected to the segment above-left.

View of the upper-right corner. Here the top-right segment is connected to the top segment.

View of the lower-right corner. Here the bottom-right segment is connected to the bottom segment.

View of the lower left corner. No segments are connected here.

However, you can see how the supply line (via which energy and data are later "sent" to the LED strips) is led out of the frame at the bottom.

View of the upper-right corner. The top-left segments and the top segment are connected here.

View of the middle segment.

Here we can see that the top-left segment is connected to the middle segment, and the middle segment is in turn connected to the bottom-left segment.


Install forwarding to the next digit

In case you want to build up several digits you can also connect them together. This means that the data output of the first digit is passed on to the data input of the second digit, and so on. For this you must of course lead the data output out of the digit you have just built.

To do this, solder a single wire to the "D0" output of the LED strip in the lower left segment.

You can then lead this line out through the hole for the supply line.


Insert diffuser

To ensure that the light of the LEDs in a single segment is better dispersed later on and the illumination thus appears more uniform, you should now insert a diffuser into the segment. A small strip of paper is relatively well suited. You can cut this strip to size yourself. If you have a paper plotter at your disposal, you can also have it cut to size. The template for this is linked in the material list area.

Before you can insert the paper strip, you must...

...easily bend together.

Top view of the inserted diffuser.

It should then be possible to insert the seven paper strips into the individual segments as shown.

Another view of the inserted diffuser paper strips.

Make sure that the diffusers do not protrude from the 3D printed frame.


Glue on paper front panel

There are several ways to install a front panel. The installation of a 3D printed front panel is described in the next paragraph. This section describes how you can stick on a paper panel, which is best cut to size with a paper plotter, as a front panel. To do this, you should plot the panels on self-adhesive "label paper". You can then easily peel them off and stick them onto the 3D printed frame.

After you have plotted the front panel you can carefully remove it from the backing paper....

...and glue it onto the 3D printed frame to fit.

After that, you should put the whole digit on the front and press the front panel longer with the help of a heavy object.

The glued on front panel should then look something like this 🙂 .


Attach 3D printed front panel

You should print the 3D printed front panel best from transparent or white filament. (Of course, light must be able to shine through. 🙂 ) On the pictures shown, I used transparent filament to print bezels for the pxlBlck_digitClock to be made. These are then attached to the frame of the digit with a little hot glue.

These images are an excerpt from the pxlBlck_digitClock setup images.

Here you can see the four 3D printed front panels.

To connect them to the frame of the respective digit is enough...

...a small drop of hot glue on the one...

...and the other side.

Then you can quickly place the front panel on the frame of the respective digit.

The front bezels center themselves on the frame of the digits and should no longer be able to fall out thanks to the hot glue.

Other view.

View of the digits including 3D printed front panels in operation.


Code for control with the help of an Arduino

An example how you can control this kind of seven segment display for example with an Arduino, I will post in the coming days and then link here as well 🙂 . you can find in the following article

It contains a first use case of how you can use "pxlDigit's". The linked Arduino code will hopefully help with the initial programming work. However, I will soon be writing a separate article on simple control 🙂


Have fun with the project

I hope everything worked as described for you. If not or you have questions or suggestions please let me know in the comments. I will then add this to the article if necessary.
Ideas for new projects are always welcome. 🙂

PS Many of these projects - especially the hardware projects - cost a lot of time and money. Of course I do this because I enjoy it, but if you think it's cool that I share the information with you, I would be happy about a small donation to the coffee fund. 🙂

Buy Me a Coffee at ko-fi.com       

27 comments

      1. Hello!
        Could it be that the files for the colon are missing in the repo? Of course, it may well be that I just didn't find it, since I'm not very experienced in 3D printing.

        1. Hey Stefan,
          Yes, you're right. I'll add the STL files for it. If they're not in by tomorrow, please remind me again. 🙂
          Best regards
          Fabian

          1. Thank you very much for the fast completion! Now I just have to see what kind of pipes I use and what kind of code snippet I use to control them.

          2. Hey Stefan,
            Gladly. 🙂 I took 8mm aluminum rods. Instructions for this will be available soon. I'm almost working on it. 🙂
            A small code snippet for control should also go online this week. 🙂

            Have fun tinkering.
            Best regards
            Fabian

  1. I'm also eagerly awaiting the instructions for the aluminum rods, code snippet! I'm also guessing you changed your wiring around some to have the wires ending on the sides instead of going down. Awesome project!

    1. Hey Matthew,
      Thanks for the kind words. 🙂
      I posted a few minutes ago another project that uses this digits. There is also an Arduino Sketch linked were some of the digit functionality is implemented. You can fnd the article here: https://nerdiy.de/en/howto-arduino-timer-time_timy-zur-visualisierung-von-zeitdauern-bauen/

      Also I implemented these digits in my pxlBlck project. Most of the implementation is starting here: https://github.com/Nerdiyde/pxlBlck/blob/61e7425560fc868f5b20d4f1727bdc72e65b99fc/plugin/ESPEasy/_P205_pxlBlck.ino#L4271
      I hope this is enough for a first start. I'm also working on the build instructions for the "aluminum rod"-version. But of course this needs some more time. 🙂
      Best regards
      Fab

  2. The list says 144leds/m but instructions say 60/m which is it because the link takes you too 144/m

    1. hey david,
      Thanks for letting me know. I corrected the typo in the material list. Actually its a 60LEDs/m. The links should take you to shop where you have to select the correct kind of led stripe. 🙂
      best regards
      Fab

  3. I am building a 16 rocket semi-simultaneous launch control system for the Cub Scouts. Looking to "amp up" the excitement with a "NASA-Apollo-style" countdown & message clock. Need to source six of 8″-12″ 7-segment displays. Need to be low power (running on batteries in the middle of the rocket field). But need to be "daylight readable" (viewed from 25′-100′ across the field in the middle of July sunny days. Thanks for any suggestions.

    1. Hey Robert,
      from my point of view it should be possible to build this. Battery operation is of course possible with a suitable battery. The countdown could be started via wifi in case you want to use a wifi capable microcontroller.
      Best regads
      Fab

  4. Good bye!
    How did you route the cables out of the clock case and where did you place the microcontroller?
    How did you connect the dots to the other digits?
    Kind regards

    1. Hi Floo33r,
      Unfortunately, I haven't created a detailed tutorial for assembling the clock yet. But you can get a few impressions from the following postings on my Instagram channel:
      Microcontroller (installed on a custom PCB behind an LED segment):
      https://www.instagram.com/p/B_-ATqcq92P/
      https://www.instagram.com/p/B-aHFEmq0J_/
      See more:
      https://www.instagram.com/p/B-4zcVJq0tg/
      https://www.instagram.com/p/B_9wSexq7Q1/
      https://www.instagram.com/p/B_SVyD_KovI/
      https://www.instagram.com/p/B-65v19jFEE/
      https://www.instagram.com/p/B-49RvVDpaY/
      https://www.instagram.com/p/B-fHD4PIx08/

      Best regards
      Fabian

  5. Hello,

    I came across the project a few days ago and would like to rebuild it so that an input is made via a 4×4 keypad. Nano, Keypad and WS2812 are already there.

    what would I have to build in, so that the entered number is also displayed on the 7 segment?
    For us it's all about the lap time in sport.

    Thanks very much

  6. Hello!

    Very cool project. I would like to rebuild that. Could you post the code and schematic for the clock? Thank you very much

    LG

Kommentar hinterlassen

Your email address will not be published. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.