Introduction: LED MATRIX SHIELD 13x15

About: PLC, Arduino - Do it yourself project

Today I would like to share how to make a small 13x15 led matrix shield on the PCB prototype 5x7cm. This shield can be plugged on the Arduino MEGA, Arduino UNO and WeMos D1 UNO. We can customize the brightness although the leds have one color.

Let's get started.

Sand falling effect with Arduino Mega 2560:

Internet Clock with Wemos D1 R2:


Main parts include

  • 200pcs x LED 3mm, blue color in my case.
  • 01pcs x Arduino UNO or MEGA 2560 or Wemos D1 R2.
  • 01pcs x 4-TO-16 DECODER/DEMUX CD74HC154E.
  • 16pcs x Transistor A1013
  • 16pcs x R100
  • 16pcs x R1K
  • 02pcs x Capacitor 1uF
  • 2pcs x Female 40pin 2.54mm Header.
  • 2pcs x Male 40pin 2.54mm Header.
  • 01meter x 8P Rainbow Ribbon Cable.


Circuit diagram as shown above picture or you can download high resolution PDF file HERE.

The columns are connected to the LEDs cathodes, so a column needs to be LOW for any of the LEDs in that column to turn on. The columns are controlled by high power shift register TPIC6B595N that they are high power drains, able to sink 150mA per pin. The TPIC6B595N cannot source current so they should be connected to LED cathodes.
The rows are connected to the LEDs anodes, so the row needs to be HIGH for an individual LED to turn on. The rows are controlled by NPN transistors A1013 with maximum collector current about 1A. If the row and column are either HIGH or LOW, no voltage flows through the LED and it doesn’t turn on.


  • Arrange the first row of leds

  • To be able to align the LED, we only solder one pin of led - anode pin in my case. If the led is deflected, we put the soldering head at its anode pin until the lead is melt down and do alignment at this moment. We should cut led pins short enough and ensure all rows/ columns to be soldered together without any extension wires.

  • Soldering one anode pins and cut led pins for all remaining leds. Now we start soldering 13 cathode pins of leds in the first row together. We have all 15 rows and each row has 13 leds.

  • For the first row of LEDs, we just bend them and later they will be soldered to the male header and connected to transistor A1013. The second row will be bended and soldered to the first row. We just follow the order from outside to inside and solder the columns first, then after solder the rows. Note, after each row and column is completed, we should check the leds to see whether they are broken or short-circuited / open-circuited.

  • Note that we should solder with a sufficient amount of lead at the anode of led. And later when we bend anode pin, they will be folded at top of this soldering point and there is a small gap with the cathode pin.

  • Soldering male headers for rows and columns. Led matrix is DONE.


  • Soldering the control circuit following the diagram as following picture.
  • Control Board - TOP VIEW

  • Control Board - BOTTOM VIEW

  • To turn control board and led matrix into a shield, we solder the headers on control adapter as follows:

- Female header at top is connect to row and columns of led matrix board.

- Male header at bottom is connected to Arduino Uno/ Mega 2560.

- Female header at middle is connect to 6 pin ICSP connector of Arduino Uno/ Mega 2560.

  • Connecting Led Matrix, Control Adapter and Arduino UNO/ MEGA together

  • DONE.

  • We can use a phone charger to power this led matrix shield and Arduino or supply the power at green screw header on control adapter board.

  • For WeMos D1 R2, it doesn't have ICSP header on board therefore we had to solder 2 pin-header at pin D5 - DATA and pin D7 - CLOCK.

  • And we can add MPU6050 on the control board.

  • Covering by a small box

  • At back side of box, we drill 6 holes to ensure that UNO/ MEGA/ WEMOS can be mounted by these holes. Picture below I used WeMos to control this led matrix.


The code is availabe in my GitHub:

This is sand falling effect testing and it is controlled by Arduino Mega 2560.

Step 6: FINISH

Thank for your watching!

Please LIKE and SUBSCRIBE to my YouTube channel.

Tiny Speed Challenge

Participated in the
Tiny Speed Challenge