Introduction: Build a Super-sized Expandable Seven Segment Display

Hello, I’m Lewis and this is how I made my own (and how you can make your own) giant extendible and programmable seven segment display.

As with many inventions it became because of a need. I needed a very large display for a project but could not find a simple and extendible design, so I created this one.

It's a single modular 3D printed digit mounted onto a sheet of acrylic. This allows you to slide several of these modules together into a simple wooden frame to make a display as long as you need. From 2 characters to 10 or more… You also have the choice to programme either a simple Arduino Nano or ESP8266 to drive the display - allowing you to use it to show text, numbers, or animations.

The display is bright enough to be seen easily in bright environments and the addressable LED’s are diffused well thanks to the frosted acrylic inserts. As they are RGB LED's (basically 'Neopixels') you can also use colour to convey information on your display.

It is a very personalisable project - I’ve provided the framework of the the display and you can program it to display whatever you want it to.

The one I am building for this Instructable will be installed at my local swimming pool to be used by the adult and junior swim clubs as a remotely controllable lap timer using a Radio Frequency Fob to control it from the pool side. I also incorporated some optional additional features to harden it against both the high humidity poolside and any stray poolside toys such as balls.

As with all my projects I have also created an accompanying video. The first few minutes covers the overview of the design and build process before going through the build itself in much greater detail. I will be including all the same details here in written form in this Instructable along with plenty of photographs to illustrate each step to help ensure you have every success in building your own.


To make one of your own you will need a few parts:

A microcontroller, either


To connect the electronics either:

Optional radio control add-on:

Some wood for the frame. I used four pieces of pine 20x68x436mm (x2) and 20x68x381mm (x2)

To work out the wood lengths for different thickness of wood please take a look at the cheat sheet I made for you here:

Glue (I used Wood glue and Gorilla Glue):

The files for the 3D printed components will be included at each appropriate step. Let's start....

Step 1: Pre-printing Light Tubes

The first part we can 3D print are the Light Tubes (Light-Tubes.stl). You’ll need 7 of these for each character.

I printed mine in PETG with a 0.3mm layer height as detail is not important as they won’t be seen. White filament is preferable so as to increase its reflectivity and avoid any unwanted colour cast in the reflected light.

We will attach these to the acrylic shortly.

Step 2: Acrylic Options

You have two options for the acrylic which gives different results as shown in the comparison photo above.

The easiest is to only use a single sheet of frosted acrylic and attach the light tunnels to it directly (left hand side of photo). The downside of this approach is that the light will have a slightly blurred edge when viewed from the front.

For a crisper edge you can cut out each of the segments from a sheet of opaque acrylic (I used 5mm thick for strength) and then insert some semi transparent segments into each of those cutouts. 

To make my cutouts I used a Snapmaker desktop CNC.

You can also make the cut outs by printing the template from my website (and shown above - but print the PDF attached below so as to help ensure crisp lines and correct print size), transfer the marking to the acrylic and then use either a small hand held router such as a Dremel or drill a hole and thread a hacksaw or similar through it to make the cutouts by hand.

The inlays are made in the same fashion, but should be from some semi-transparent (ideally frosted or opal) acrylic. Here I used 3mm to ensure a flush fit with the front of the 5mm white acrylic and to increase the amount of light transmitted through the display.

By the way, I’ve also included the DXF drawings of the cut outs and inserts suitable for a 1.5mm router bit in the downloads section of this project on my site (it's all free).

Step 3: Fitting the Inlays

The easiest way, and perfectly acceptable for most uses, is to simply glue them into place flush with the front of the acrylic sheet. Super glue from the reverse side will be fine for most applications where the acrylic will not be put under any physical stresses when in use.

As the poolside one is likely to be hit by balls during water polo matches or parties I will use some 'Extrufix' to chemically weld the two pieces of acrylic together for greater strength. If you’re going to do the same, and this applies to all the materials and tools we’re using for this project, pay attention to the safety warnings - it is effective but also fairly nasty stuff.

Follow the instructions on the bottle here, there is no need for me to repeat them in this article. 😊

Once the glue or solvent has fully cured we can then attach the 3D printed light tubes.

Step 4: Attaching the Light Tubes

This step is the same for if you used a single sheet of acrylic or made cut-outs and added inserts. 

We can now attach the light tubes which we 3D printed earlier at the beginning of this article.

For most builds, super glue or hot melt will do fine again - simply apply it along the edge of the light tube and then hold it in place over the segment for about 30 seconds whilst it initially grabs/cools. It is the side of the light tube without the screw holes which you should be applying glue and attaching to the acrylic.

Repeat this for all the 7 segments on as many characters as you are making.

Step 5: Attaching the Light Tubes - Extra Tough Version

For the poolside version I’m using a polyurethane glue as it’s waterproof and a stronger bond. It expands into the surface of the two materials being bonded and mechanically locks them together.

For this one you’ll need to scuff the acrylic with some coarse sandpaper, dampen the surface with water before applying the glue to the print (polyurethane glue requires moisture to cure) and then hold it in place for a couple of hours with a weight on top.

Don't forget, Polyurethane glue expands so use it sparingly. This is also why we need to apply pressure on top whilst it cures.

Step 6: Cutting the Lengths of Wood

I’m using wood which is 20mm thick and 68mm wide. If you can’t get similar sized wood you can use wood with a greater thickness and or greater width but not less. You will also need to alter the lengths you cut yours into - on my website I’ve created a little tool which will help you work out the required lengths based on the thickness of your wood and how many characters your display will contain.

You can find it here:

For my 20mm thick wood I need two pieces 381mm long and two 440mm long. This is long enough to encompass a display of two characters.

Step 7: Adding a Rebate

To each of these lengths of wood we need to add a rebate which the acrylic sheets will sit inside.

This will hide our cut edges and allow some wiggle room in our sizes. This rebate should be 5mm deep, and as wide as the thickness of your acrylic - 5mm again in my case. It also wants to be set back about 10mm from the front of the wood.

I made my rebates by taking several passes on a table saw.

Step 8: Adding a Mitre

The ends should then be mitred at 45º so that the rebate is on the shortest edge once you have mitred both ends.

You can use either a mitre saw or hand saw for this. There are 3D printable mitre blocks available on websites such as Printables which you can print if you do not have a mitre guide to hand already.

Step 9: 'H' Profile Joiner

If you are using more than one digit there is a 3D printable H profile which can be used to tidy the gap and connect each segment together. I printed mine in two lengths of 170mm.

Step 10: Assembling the Frame

We can now assemble this wooden frame around our acrylic sheets.

As we are gluing what could almost be considered the end grain of the wood it’s a good idea to mix some of your wood glue with water (50/50 mix) and apply a little to each end of all the lengths of wood. This helps with the fact that the end grain of wood is very "thirsty" and will draw a lot of the glue away from the joint before it cures.

Before that first layer completely dries we can then add pure wood glue to the corners and assemble the frame. 

I’m using a band clamp to hold mine together. If you don’t have one you can 3D print some corner caps and use an old belt, ratchet strap, clamps, weights or any other method you can rustle up.

Remove any excess wood glue before it cures, especially from the inside of the corners at the front where it will be most difficult to sand later.

Step 11: Let It Dry, Let It Dry....

Let this dry over night to ensure it has strength. When you're certain it has had time to dry properly we can continue again....

Step 12: (Optional) Dowel Reinforced Mitres

This frame is strong enough for most uses. But to strengthen the frame further we can add some dowels across the mitre joints in the corners. These are very simple but effective.

You’ll need some wooden dowel rod. I’m using a 6mm wide rod of birch wood. You then need to drill a couple of holes across the diagonal through the wood using a drill bit the same size.

To help drill the hole at an angle without a jig, start the drill perpendicular to the surface of the wood, and then after the hole has begun you can tilt the drill to the 45 degree angle and continue drilling.

Once this is done, cut off a length of dowel slightly longer than the hole, apply wood glue to the hole and dowel before inserting it. You’ll likely need to use a hammer to persuade it all the way in.

Wipe away any excess glue and repeat for all four corners. Allow it to dry for about an hour, we can then saw of the dowel close to the surface and once dry, sand it flush.

Step 13: Preparing the LEDs

Let’s work on the electronics now, starting with the strips of LED’s.

If you’re making a more water resistant version you should opt for the IP rated strips of addressable LEDs.

For each character you will need to cut seven lengths of eight LED’s ensuring you cut across the cutting guides. Then all three pads at the end of each strip should be tinned with a small amount of solder. This will make attaching wires to them much easier later.

Step 14: Joining the LEDs

To join the strips in one long length (7 segments per digit) use sets of three 4cm long wires. Don't forget to pay attention to the directional arrows printed on the LED strips - these shows the direction the data flows and need to run in one long continuous flow as you connect each strip.

Step 15: Adding Power Wires

The power connections at both ends of each string of LED’s need a pair each of 30cm long wires along with a 30cm wire on only the incoming end of the LED string.

We connect the power at both ends to help reduce the impact of voltage drop affecting the brightness of the lighting along the length of LEDs.

Step 16: Mounting the LEDs

We can now print seven LED Mounts for each digit you are using. If you’re using LED strips enclosed in silicone then print the version with loops (IP LED Backing.stl) - this is because Silicone rubber is one of the most challenging materials to bond so we’ll hold those strips in place mechanically.

I printed mine in the same White PETG from 3D Jake that I used for the tunnels. The basic LED strips can then be attached using their own self adhesive backing and some additional dabs of super glue whilst the silicone enclosed strips should be threaded through the hoops.

An additional step for the water resistant LEDs; If you are using water resistant LED’s you should reseal their plastic sleeves with copious amounts of hot melt glue at each end to keep moisture from entering.

I’ve made two sets of these for the two characters on my display. You'll make as many sets as you want character in your display.

If you have more than one character in your display like I do, then you should connect the separate strips into one long strip by joining their data wires from one to the next, remembering to pay attention the directional arrows showing the flow of data through our LEDs!

Step 17: Attaching the LEDs

These are then attached to the back of our acrylic sheets using some M3x6 or longer bolts (I used M3x8). They need to be attached in the order as shown in the animation if you will be using my software to drive the display.

Step 18: Choosing Your Microcontroller

You now have a choice between using an Arduino Nano or ESP8266 (Wemos D1 Mini) to control your project. Each has their own pro’s and con’s but briefly:

  • use the Arduino Nano if you want to minimise cost,
  • use what you are most familiar with
  • and don’t need wifi control.

Opt for the ESP8266 if you want to:

  • use wifi for control or IoT services such Blynk
  • if you want to control more than 6 digits (the computer guts in the nano will start to struggle to buffer the data for the LEDs) 
  • You might want to use the features of 'ESP Now’ so that several displays can communicate in an ad-hoc fashion between themselves.

I’ll be using the Arduino Nano and a radio frequency receiver for the display I'm making which is destined to become a pool side lap timer.

Step 19: Upload Your Code

Next up is uploading the code. I have written code for both the Arduino Nano and ESP8266 which turn them into giant 60 second timers. If a radio receiving module is connected to the PCB. (I'll talk about the PCB in the next step) they will also allow you to trigger one of four remote programs.

For example, pressing 'B' on the remote initiates a 3 second count down utilising the colours to denote the counting down in blue, green for go and then carries on timing in red.

I strongly encourage you to write your own code and turn the display into whatever you want or need it to be. I’ll also maintain a directory of programs (on my website) that other makers like you have written for the display and shared on Github.

To upload my code to an Arduino Nano you need to download the Arduino code from Github open it in the Arduino IDE.

You’ll need to have the Adafruit Neopixel library installed. To add this open the library manager from the ‘Tools’ menu and click ‘Manage Libraries’ and then install the Adafruit Neopixel library by Adafruit if it is not already installed.

We can then connect the Nano your PC with a USB cable, select the appropriate port and board before pressing upload.

Done? Let’s begin to join everything together.....

Step 20: Electronics Backbone

I’ve designed a custom PCB to help with the project. The PCB can accommodate either a Nano or Wemos D1 Mini and a logic level converter . There is also space to attach the optional RF receiver. It has suitably wide traces to handle the power distribution for the microcontrollers and up to two digits worth of LEDs all packaged into one simple board. This makes wiring much simpler and more reliable.

You can order your own from PCBway here:

If you don’t want to use the PCB, no problem. I have also created and posted this free wiring diagram for the project (see above images) so you can use Wago connectors, direct soldering or anything else suitable for connecting your electronics together.

Step 21: Power Supply

For the power supply, you’ll need 5volts and to allow at least 1.5amps per digit.

To connect this to the electronics you have a few choices.

  • For my prototype display I opted for fitting an appropriately rated female barrel connector to the side of the frame and then attached it using some thicker wires between the barrel connector and the PCB.
  • For the water resistant version I’ve notched the rear of the frame and have hardwired the power supply to the PCB directly to minimise the number of connections exposed to moisture.
  • If you won’t be using more than two digits or using them at full brightness you can also opt to prepare a female USB socket and then power it using a rechargeable USB battery pack.

(As already mentioned the PCB has power traces wide enough to handle the current of two digits, if you are using more than two character I recommend using a Wago Style connector to distribute the power from the supply directly to the digits and the PCB. Also, use an appropriately rated wire to carry the current for your project - lots of LEDs means lots of current.)

Step 22: Attaching the Microcontroller

Whilst our soldering iron is hot we can also solder our microcontroller of choice to the board, not forgetting to add the logic level converter if you are using an ESP8266. The correct orientation of all the components is marked on the PCB or shown in the non-pub wiring diagram provided earlier.

Simply insert the legs through the top side and solder them from the underside.

Step 23: Connect the LEDs

To connect the LED's we need to find the ingoing 30cm wire. This will be the one attached the first character on your display. For mine it is the white wire I'm holding.

As with the microcontroller it is best inserted from above and then soldered from below. The correct hole for it on the PCB is marked as 'LED_DATA_OUT'.

Step 24: (Optional) Connect RF Receiver

If you will be using the optional RF receiver module then this is connected on the far right of the PCB and soldered again from below.

Step 25: Connect the LEDs Power

We can now collect together all the positive wires going to each end of our strings of LED segments. You should find two for every character on your display.

If you are using the PCB and no more than two characters then they can be soldered to the +5v section along the top of the PCB (surrounded by a thick white box and marked as such).

Similarly all the negative wires should be connect to the collection of ground points (marked GND).

Otherwise, if your not using a PCB or have more than two character I highly recommend using WAGO connectors to distribute the power round the display.

Once you have the power circuits connected and you have checked your work - go ahead and connect it to a power supply and admire the fruit of your efforts so far. 👍🏼

Step 26: Electronics Enclosure

The electronics should be protected in an enclosure and as we have a 3D printer we can print one specific for enclosing the PCB. The files (Case.stl & Lid.stl) are both attached to this step.

Four M3x6 bolts attach the PCB to the inside of the case and a further four secure the lid to the case.

If you’re after a more moisture resistant finish you can either opt to customise a IP rated junction box (from your local electronics / DIY shop) and modifying that to suite. or add a dielectric gel such as magic gel. This sets around the electronics to protect from water and does not itself conduct electricity once set.

The enclosure can then be glued to the rear of the display.

Step 27: (Optional) Finishing Touches

To bring out the colour of the wood and add additional moisture resistance I treated my wooden frame with several coats of Boiled Linseed Oil.

To demonstrate, the photo above shows the treated wood reacting with water and an untreated piece of the same wood. (Treated is on the right).

Step 28: Project Complete

I would love to see how you use or adapt this project for your own needs. Please do send in some photos or share your makes online. This one is going to the local swimming pool and I think they're looking forward to using it.

Thank you for reading right through to the end, until next time, do some good and ciao for now.


Go Big Challenge

Participated in the
Go Big Challenge