Introduction: DIY Large LED Lit 7 Segment Display

About: Jack of All Trades, Master of One: Being Me!
A friend of mine who teaches high school science commissioned me to make a Jeopardy style quiz game controller with a large timer display and buttons for players. The best sort of timer I could think of was a large 7 segment display with 3 digits plus a colon. Since these things can cost quite a bit to buy, I decided to make one out of an array of LEDs. The complete project description is available on my website!

This is nothing new - I have seem numerous designs of big segment displays that incorporate large arrays of parallel LEDs to serve as each segment, but using so many LEDs is such a waste! Not only do you have to use a lot of LEDs, it can take quite a bit of current to light up that many LEDs at a time.

For these reasons, I decided to come up with a way to diffuse the light from one or two LEDs over a large thin area to serve as each segment. This would reduce the need for so many LEDs and also reduce the total current consumption.


The reason the LEDs appear to flash in the video is because the camera has a faster capture rate than the human eye. The LEDs are flashing on and off - that is how the multiplexed control works, but the naked human eye cannot see it because the pulse is too fast - around 100Hz.

My final display uses 54 LEDs to form three 4" x 2.5" digits with a colon to separate the minutes and seconds. Each digit in multiplexed, so they share the control lines. The total current through each segment is 6mA, but because each digit is only on 1/3 of the time and each segment is comprised of two parallel LEDS, this equates to about 1mA per illuminated LED at any given moment. More current could certainly be used, but my LEDs are controlled by a low current sourcing register. If more current is provided, then display could be much larger than the one I created.

Step 1: Required Materials

Materials

Foam Board - As with most all of my LED array projects, I like to use crafting foam board as the base instead of a solderable perf board or PCB. The primary reason for this is cost. A full sheet of foam board can be found at many dollar stores or at any craft store. 

LEDs - This design uses 2 LEDs per segment, so 14 per digit plus 2 for the colon (dot). Pretty much any color can be used. More on the selection will be discussed in Step 2 - Picking Out LEDs.

Black Paint - This isn't necesary, especially if you get black foam board, but I like the look of the black background behind the LEDs.

Wire - You will need at least a few feet, depending upon how long of leads you need. The wire gauge for the power lines should be just big enough to handle a half of an amp max, so 25 gauge or bigger wire is good. Some lengths of a much smaller gauge would be fine for connecting LEDs together in strings.

Sheer Black Pantyhose - For filtering the display output (see Step 10)

Aluminum Foil

Tools

Sharp Pick - I use a dental pick, but an ice pick would also work; it just needs to be thin and sharp.

Hot Glue Gun - Hot Glue works very well to dissipate LED light. It's also a great way to protect and insulate the soldered leads.

Helping Hands - Not entirely necessary, but definitely very helpful.

Exacto Knife

Needle Nose Pliers

Soldering Iron and Solder

Classroom Glue Stick


Step 2: Picking Out LEDs

This step may seem trivial, but there is a lot to consider here. Obviously, I am using all through hole parts. At first, I planned on using clear enclosed red LEDs, but decided to do some testing to see what color actually worked the best. Hopefully, you can use my results and skip this step entirely!

Regardless, I highly suggest you test the LEDs you want to use to make sure you have enough.

In my test setup, I used a 5V power supply to illuminate 6 different LEDs with individual 100Ω series resistors. Each is positioned over a strip of aluminum foil, surrounded my electrical tape, and covered in hot glue. The strips are about 60mm long. More details of this dissipation procedure will be discussed later. I have listed the characteristics of each LED below for comparison.


              5mm Clear      5mm Clear     3mm Coated     5mm Clear      5mm Coated     5mm Clear
LED:      White LED       Blue LED        Red LED           Red LED          Red LED        Green LED
---------------------------------------------------------------------------------------------------------------------------------
VS:           4.92V               4.92V              4.92V                 4.92V               4.92V               4.92V
R:              100Ω               100Ω               100Ω                 100Ω               100Ω                100Ω   
VR:           1.91V               1.56V              2.79V                 2.86V               2.70V               1.89V
VLED:       3.01V               3.36V              2.13V                 2.06V               2.22V               3.03V
ILED:       19.1mA            15.6mA           27.9mA               28.6mA            27.0mA            18.9mA

Step 3: Preparing the Foam Board

1. Decide, Measure, Cut
The first step is to decide how big of a display you want. The foam board should be at least an inch bigger than your desired display size on all sides to give a border and place to mount it. I have had the best results cutting the foam using a sharp Exacto knife, but a good pair of scissors should suffice.

2. Design the Layout
Next, you should choose which side of the board is in the best condition to be used as the face. Then flip the board over and draw the display on the back side. Keep in mind, this is a mirror image of the actual display if you are making a multi-digit display. This particular display has 40mm segments with 20mm separating each digit. It can also be helptul to draw the LEDs on one of the digits to know where the lead holes will need to be. Each LED will need to be bent to point along the segment lines, so a line formed by the the two lead holes will be perpendicular to the segment line.

3. Paint the Face Black
If you plan to paint the face of the board, now is the time to do it. I usually paint mine black. It looks nicer and prevents stray reflections. You could use a black faced board from the start, but they are usually cheaper in white, and it would be difficult to draw your design on the back of the board if it is black. Although this is an optional step, I highly recommend it for the best outcome.

4. Poke Holes for LED Leads
Finally, a pick can be used to poke holes for the LED leads. It is not wise to assume you can just shove the leads through the foam, especially if it has a layer or two of paint on it. Pay attention to the LED spacing. I drew the outline of LEDs on one segment first to give me an idea of where the leads would need to come through. 

Step 4: Make It Shiny

1. Understand the Reasoning
Since most of the LEDs are ultra bright and very directional, they typically don't put off a lot of light to the sides like a bulb would. To catch what light is cast in the wrong direction, it is a good idea to add a reflective strip where the display segments will be. In fact, doing this will allow you to point the LEDs down at the strip a little bit to reflect large amounts of light back in the desired direction.

2. Cut Strips of Aluminum Foil
Cut strips out of aluminum foil to be place under each display segment. They should be about 5mm wide (or however wide your LEDs are) and not quite long enough to cover the LED lead holes. Although aluminum is not the best conductor, it is plenty good enough to short the leads of an LED. make sure the strips are not too long!

3. Glue the Strips Down
Glue each strip down between the LED lead holes, shiny side up. The spacing doesn't have to be perfect, just do your best. This will form the bottom layer of the display.

Step 5: Adding LEDs

1. Test the LED
When you do something that uses this many LEDs and has them semi-permanently fixed in place, it becomes beneficial to pre-test all of them to make sure you don't use faulty ones. Here is a simple LED tester I use.

2. Add the LEDs
This part can be a bit tricky. The LED leads will need to be bent very close to the LED, but be careful not to break them off. LEDs should then be placed into each hole. I put all of the longer leads (the anodes) on the outside of the display, with the shorter leads (cathodes) on the inside. It is important to be consistent with this so you will have an easier time wiring them together.

3. Double Check the Orientation
If you bend an LED in the wrong direction, don't bend it back as that will likely cause the leads to break off. Just find a differnt location where that direction of bend is appropriate. 

Step 6: Hot Glue Coating

The real trick to this DIY display is dissipating the LED light to form a complete segment instead of just a point of light. This job belongs to hot glue. 

1. Coat the LEDs in Glue
Slowly coat each LED and aluminum strip. Don't glop the glue all over the place. Be precise - only put glue where you want light to shine. You may need to brace the LED leads as you add glue to the tops to keep the LEDs from shifting direction.

2. Place and Coat Remaining LEDs
If you didn't finish placing all of the LEDs in the previous step, do so now and coat them in glue as well.

3. Create a Dot / Colon
Since my display will be used as a timer, I needed a colon to separate the minutes and seconds. To create the colon, make a larger hole and push the entire LED through it as opposed to having the LED sit on top of the foam with only the leads pushed through. This keeps the colon from standing higher off of the foam than the rest of the display and also allowed a bit of hot glue to be placed over each dot to dissipate it as well.

Step 7: Wiring the LEDs

1. Decide on Parallel or Series LEDs
There are two routes to go at this point concerning each segment - series or parallel LEDs. The way you do it is dependent upon your particular circuit. If you you have a low voltage source but can supply lots of current then go parallel. If your voltage source is high enough and you are trying to lower current flow then go series. 

2. Decide on Individual Control or Multiplexed Digits
The second decision to be made is how the entire display will be controlled if you are using multiple digits. Of course, each segment could have it's own control line, and all of the LED cathodes could be connected directly to ground. But this is not a good idea if you have a lot of digits unless you have a lot of unused control lines (7 per segment plus one for the colon/dot). It is more economical to multiplex the displays.

3. Wiring for Multiplexing
This can be accomplished by connecting all of the LED cathodes for each digit together to a MOSFET Drain. The MOSFET Source is then connected to ground. A single control line to the Gate will turn on or off the entire digit. Then, a control line will connect each identical segment for all of the digits (all of the A segments are connected together, all of the B segments are connected together, etc). See the schematic image for more details. I wired the LEDs of each segment in parallel and have the segments of each digit connected with ground control lines to allow multiplexing.

With this setup, only one digit will be illuminated at a time, but if they are pulsed fast enough, they will each appear to be on continuously due to the lower refresh rate of the human eye. More on the control will be discussed in the next step.

There is one other way to multiplex the digits with even fewer control lines using a technique known as "charlieplexing," but that is more complicated to explain, and it can't be easily done using the control circuit I designed.

4. Add Series Resistance
A series resistor should also be used with each segment to limit the current, but this could be placed in the control circuitry instead of on the display. After all of the wires have been soldered in place, you can add a bit of hot glue at the solder joints to completely secure the LEDs.

Step 8: Understanding Multiplexed Display Control

Understanding the display control may be the most complicated part of the entire project. Since I made a display with three digits, that is what I will use to explain in. If every segment was controlled individually, it would take 22 total control lines: 3 x 7 + 1 for the Dot. That number can be cut down to 11 by multiplexing the digits: 8 for the segments + 3 for the ground control lines. Each additional digit would only require 1 additional control line to turn that digit on or off since the segment control lines are shared between every digit.

If multiple digits are used, the control for the same segment in each digit is connected together. Each digit can then be turned on or off by controlling the ground line to each digit. So to control my three digit display, I would repeat the following loop indefinitely:

Begin Loop:
     Turn off all 3 digits (Logic Low on all ground control lines)
     Set segment control lines to desired value for digit 1
     Turn on Digit 1 Ground Control
     Pause for so long (a few milliseconds)

     Turn off all 3 digits (Logic Low on all ground control lines)
     Set segment control lines to desired value for digit 2
     Turn on Digit 2 Ground Control
     Pause for so long 
(a few milliseconds)

     Turn off all 3 digits (Logic Low on all ground control lines)
     Set segment control lines to desired value for digit 3
     Turn on Digit 3 Ground Control
     Pause for so long 
(a few milliseconds)
End Loop

The frequency of the digit selection should be fast enough so human eyes don't detect the flicker such as 100Hz (10ms period). Each digit this has 1/3 of that total period to be on - 3.3ms on time means a 33% duty cycle.


Step 9: Character Generation

With the control strategy understood, the only thing left to figure out is how to create the characters to be displayed. To start, consider that there are really 8 segments in a seven segment display: A -> G and the Dot. They are labeled as follows:

        __A__
       |           |
   F  |           |  B                                             Shown as a 1 byte code:
       |__G__|                                MSB > | DOT | G | F | E| D | C | B | A | < LSB
       |           |
   E  |           | C
       |__D__|       O  DOT

A displayed character is just a combination of specific segments being turned on. Using a binary code to represent the segments it is fairly easy to generate a display table. I have also attached a header file containing definitions for each character which may be useful for microcontroller programming.

Because the DOT segment is optional, it is considered a "don't care" condition and is represented as an X in the table. The data for the first digit can be "OR'd" with the DOT hex code to turn it on: 

C Code: segments[0] |= 0x80;  // Segment_0 = Segment_0 OR 0x08



Step 10: Finishing Touches

Once you get the display illuminated, you may notice a few things that need fixing:

Trimming the Hot Glue Edges
My wife was quick to point out that my hot glue job was anything but perfect. To solve this, take a sharp knife and cut the glue away from each segment along the aluminum foil strips. It may help to slightly heat the knife with a lighter. The excess glue can then be peeled away, taking some surface paint with it. Finally, touch up the paint around the segment edges. 

Replace Any Bad LEDs
Even with all of the testing I do with the LEDs, one or two still always end up going bad. This is probably just from overheating them with the soldering iron or over bending a lead. If a single LED is out, I would test the wiring by touch the leads of a new LED to the exposed leads of the bad one. If the new LED doesn't turn on, you need to double check the wiring. If it does turn on, the bad LED needs replaced:
  • Cut the leads off as close to the housing as possible for both LEDs of whatever segment is faulty.
  • Carefully peel up the old segment by way of the aluminum strip - this will remove some paint from the surface.
  • Add new aluminum foil according to the procedure in Step 4.
  • Solder new LEDs to the exposed leads of the old LEDs.
  • Test the new LEDs!
  • Coat the new LEDs according to the procedure in Step 6.
  • Clean up the hot glue edges.
  • Touch up the black surface paint.
Filtering the Display Light
If you are sourcing little current through your LEDs but the display is to be used in bright light, it may be difficult to distinguish the lit segments from the unlit ones because the ambient light will dissipate in the unlit segments. To solve this issue, a simple filter can be placed over the display. My first thought was to use a sheet of wire mesh, but this didn't work like I had hoped. I ended up using a cheap pair of black pantyhose to serve this purpose. Adding this material over the display will make the unlit segments much less noticeable while still allowing the lit segments to shine through. 
  • Get a pair of sheer, black pantyhose - too much opacity will not allow the lit segments to shine through. 
  • Cut the legs in sections according to the size of your display.
  • Turn on the display - it helps to have the digits changing, such as a count.
  • Stretch a section of the pantyhose over the entire display.
  • Add additional segments until you are satisfied with the result.