Introduction: Mirolo Networked LED Matrix Display for Digital Signage

Digital signage can be useful at events to inform visitors about upcoming panels, changes in the schedule or dynamically provide information. Using LED Matrix displays for that makes the messages readable even from far away and is an eye catching feature.

Features include:

  • 2 Lines of dot matrix modules, 1 RGB Ring indicator
  • http web interface for simple fallback management
  • REST/JSON API for advanced remote management
  • automatic brightness control
  • IR remote control
  • I²C interface connector for external modules (e.g. DS1307 RTC)
  • wide range power input: 10-20VAC/10-30VDC
  • message board and event schedule modules for network independent manual operation

The following instructions will go over the process of building one of these displays with both the electronics and supporting frame in mind. The build process requires some specialized tools and advanced soldering skills. Therefore I'd describe the difficulty level as medium-hard and not suited for beginners.

The full documentation on the software and hardware can be found at gitlab/mirolo-2M05081R16

Step 1: What You Need

You will need a variety of tools to complete this project. This is the basic set. Any tools like CNC machines or belt sanders and drill stands will make your life a lot easier.

  • Soldering Station including tips capable of soldering SMD components
  • De soldering equipment
  • Power Drill
  • Hot Glue Gun
  • Reciprocating Saw and metal saw blades
  • Pliers
  • Screwdrivers
  • Wrenches and Sockets
  • Multi Meter
  • Tap and Die
  • Countersink Drills
  • Drillset
  • Vice
  • Handsaw
  • Two Component Glue
  • Sandpaper
  • Metal File
  • Double Sided Tape

Of course you also need building material. You can find a full list of all the parts needed here: Material List

Important: When buying components like Electrolytic Capacitors make sure their height does not exceed 12mm. Otherwise they will be higher than the matrix display and the board won't fit properly.

Step 2: Preparing Parts

First you need to make the required parts for the frame holding everything together. If you want to design your own frame you may skip these steps entirely. I will keep it very short and only link to the files describing the part's dimensions. Actually making them involves drilling sawing and patience but you should know how to handle a power drill, saw and file to do this.

Part's Dimensions

Step 3: Electronics Assembly

Let's start with the blinky stuff. Have all the parts shown above ready. The full Material list is linked in step 1.

Concerning the PCB I highly recommend having them made by a professional company. Some traces are quite thin and it took me several tries to even get a working prototype that wasn't completely botched and I still had electrical problems because of etching errors that were a nightmare to work out. The design works great but the board is a bit too complex for home etching. Unless you have semi professional etching equipment at hand it's really not worth the effort. Especially considering that you need to bend 48 jumper wires for each of these when using the singlesided design. This is the stuff that will give you nightmares. I got my own from JLC-PC and their quality is really nice. They saved me hours of work and lots of material.

I still have 5 of these lying around. If you are interested in making this project yourself send me a note and we'll work something out. Might be easier to ship them from Germany instead of ordering new ones from China.

Step 4: Electronics Assembly - 8 Module Matrix

We'll start off with the lower matrix bar. This one consists of 8 FC-16 modules. Solder them together to form a single line. You can use the included 90° pin connectors by bending them into a 180° shape using pliers. I recommend gripping them in a vice.

Connect all the modules and solder one of the 3 pole ribbon cables to the data input as well as the two stranded wires to the power input.

When soldering the matrix modules on top please DO NOT USE the provided female pin connectors. Otherwise the module will be too thick to fit in the frame. Keep the connectors though as you will need them for the other display line. Also make sure they are oriented correctly.

Solder the 1000µF Capacitor at the end (Data OUT) of the strip to GND and VCC as an additional buffer.

Step 5: Electronics Assembly - WS2812 Ring

Solder the other 3 pole ribbon cable to the ring (middle pin of the cable should be GND)

Step 6: Electronics Assembly - DC/DC Converter

Prepare the DC/DC Buck/Boost converter. Apply a decent voltage (12V) to the input and adjust the trimmer potentiometer so the output is exactly 5V. You should have a slight load connected to the output and tap a few times on the trimmer to make sure it is properly set and doesn't jump. When the output voltage is stable put a few drops of glue on the trimmer so it can't be changed accidentally.

Step 7: Electronics Assembly - Mainboard SMD

Next is the mainboard. Solder all SMD components on first (don't forget the resistors on the front and the LEDs). In general it is recommended to solder the smallest components first as this will make soldering easier because you can lay the board flat. If you follow these instructions in the right order this shouldn't be a problem.

You do not need a hot air soldering station for this. It is only needed for de soldering components like the 44 pin microcontroller.

Step 8: Electronics Assembly - Resistors

Next are resistors and small capacitors as well as the LDR and IR receiver.

Step 9: Electronics Assembly - Mainboard Power Supply

Add components like the LDR, fuse and rectifier as well as some bigger capacitors. You can solder the 4 channel level shifter module directly onto the board without the standoffs. Also add the female precision pin connectors you saved from the FC-16 modules here.

Use some solid core wire to solder the DC/DC module on top of the board. Put a short strip of electrical tape underneath the module to prevent the trimmer pins from piercing through the solder mask of the PCB and create a short to GND. When soldering the power jack and rectifier set the board upright on one edge (use a vice) so the solder flows around the contacts. If you have it lying flat the solder will drop through the big holes and make a huge mess.

Step 10: Electronics Assembly - Modules and Buttons

Finishing touches. Add the push buttons as well as big components like the LAN module and box connectors.

Step 11: Electronics Assembly - Mainboard LED Matrix

finally clean up the board and remove any flux residue. Putting in the LED modules requires some patience as the connectors are a very tight fit. Don't forget to put in the jumper and fuse.

Step 12: Electronics Assembly - Mainboard Bootloader

It's time for testing. Connect the ICSP port to an AVR programmer (I use one of my Arduino UNO's) and burn the Optiboot bootloader included with the mightyCore hardware library.

You can find all the links to the software in the readme file.

IMPORTANT: Burning the bootloader for the first time will result in an error message due to some fuses not being set properly. Disconnect everything and then try to burn the bootloader again after reconnecting. It should work without problems now. If you still run into errors check all the connections on the mainboard again.

Do not move on until this step is completed.

Step 13: Electronics Assembly - Mainboard Firmware

Now connect the serial interface and upload the sketch to the board. The serial connector's pinout is designed so it can directly be hooked up to a CP2102 USB module.

Set LOAD_EEPROM to 0 when uploading for the first time. Otherwise it will load random values from the EEPROM and possibly inhibit proper startup. Please note that this will result in the IP address being set to 192.168.178.100.

If the upload worked correctly the LED's on the back should light up.

Open the serial monitor (115200 baud) and issue a system:reboot command. This will save all values to the EEPROM and overwrite any random values. Upload the sketch again after that with LOAD_EEPROM set to 1.

You can then change the IP address using the serial monitor again. The board should be fully working now.

Step 14: Electronics Assembly - Mainboard Test

At this point you can already test the board. Connect a suitable power supply to it and you should be greeted by a message on the display line. You can also connect a LAN cable to your network and access the web page by typing the display's IP into your web browser. Make sure everything works properly before proceeding.

Step 15: Frame Assembly

Have the components shown above at the ready.

Step 16: Frame Assembly - Supports

Apply double sided tape to the top and bottom support and glue them onto the acrylic glass. Make sure the side supports fit well between them and line up with the drilled holes.

Step 17: Frame Assembly - Mounting Holes

Drill through the acrylic and secure everything with the flat head bolts and M6 nuts in the corners of the frame and make sure the tapped M6 mounting holes are in the bottom part of the display. Then drill the other mounting holes as described in the frame dimensions file. The M3 holes need to be counter sunk from the front. The big 12mm hole is for accessing the fuse from the front. You can keep the outer protective film on the glass and draw markings onto it.

Step 18: Frame Assembly - Studs and LEDs

Glue the 4 plastic L-profiles into the corners of the frame (these are for mounting the displays on a wall) and screw in 3 screws with nuts and washers for mounting the PCB. You should also install the handle at this point (make sure it is slightly offset towards the front so the screws don't interfere with the PCB).

When gluing in the WS2812 ring make sure the LED's are properly aligned. Putting LED 0 at the top will make it easier although you can adjust this in the software later as it supports different starting positions and ring orientations.

Step 19: Frame Assembly - Test Fitting

Check if the PCB properly aligns with the mounting screws. If they don't fit perfectly try to carefully bend them. Then solder the WS2812 ring and the second display line to the mainboard and secure the wires with a few drops of hot glue.

Step 20: Frame Assembly - Fitting the PCB

Screw on nuts onto the bolts and add washers (no washer on the bottom screw) then place the PCB on top and adjust the nuts until the board is properly aligned. Use the plastic and metal washers and some nuts to finally secure the PCB in place.

Step 21: Frame Assembly - Lower LED Matrix

Add the self adhesive foam seal onto the contacts of the display line to prevent short circuits against the frame and place the U-profile on top of it so it presses the display against the front glass. Secure it in place with two more M6 bolts against the side supports. Finally add a short piece of Velcro as a cable support using a small screw.

Step 22: Final Step - the Good Stuff

You know the feel of peeling off protective film from new devices? You may do so now and enjoy your newly assembled info display. Plug it in, connect it to your network and marvel at the blinkenlights.


If you have any questions, remarks or ideas for improvement feel free to contact me.