Monday, 23 February 2015 22:04

Arduino driving a 32x16 Dot Matrix Display Panel

This project provides step by step approach to driving a Dot Matrix Display (DMD) Panel with an Arduino. The DMD is a 512 pixels single colour LED display arranged in 32x16 layout, a 16 pin (2x8) IDC connector is used to interface with Arduino.

In order to drive the 32x16 Dot Matrix Display Panel from Arduino, the DMD library for Arduino is required. You can download it from Freetronics GitHub.

The Freetronics DMD library is able to write letter and text on the display board with limited function, variable string and text centering is not supported. Yeah! now you can use my code to write variable string on the display board and centering it horizontally.

Updated: DMD2 library is released, this library is currently in BETA release.

DMD Diagrams/Schematic

This is the schematic diagram which I downloaded from China website. Click here to download the high resolution PDF file.

DMD Schematic


If you need a Dot Matrix Display Panel, you can purchase from Freetronics, as shown in figure below is the PCB designed by Freetronics.

Freetronics DMD


I'm currently using this Dot Matrix Display Panel.



Arduino PCB

This is a DIY Arduino with minimum configuration, it relies on the internal 8MHz oscillator and only 3 external components is used in the circuit. Please read here on how to upload sketch to this DIY Arduino.

Arduino PCB


IDC connector and cable

16 pin IDC connector and cable

Dot Matrix Display Connector

Library installation

The Freetronics DMD library must work together with TimerOne library, the TimerOne library is available here.

Install TimerOne library

  • Download the TimerOne library, it should be
  • Create a TimerOne folder in the Arduino libraries folder, for my case, it is on \My Documents\Arduino\libraries\
  • Extract all the files & folders from to the TimerOne folder.


Install Freetronics DMD library

  • Download the Freetronics DMD library, it should be DMD-master.ZIP
  • Extract it to the Arduino libraries folder, eg. \My Documents\Arduino\libraries\
  • Rename the folder from DMD-master to DMD


Upload sketch

Once libraries installation completed, upload the DMD demo sketch to the DIY Arduino

  • Open Arduino IDE
  • Select File>Examples>DMD>dmd_demo
  • You must use Arduino as ISP or other programmer to upload sketch to this DIY Arduino.

Upload using Arduino as ISP

There are more information on how to use the DMD library on the Freetronics website.


Writing variable string & text centering

This example write variable text on the display board and centering the text horizontally.
Read 33838 times Last modified on Sunday, 12 June 2016 11:55


  • Comment Link MatFoex Monday, 29 July 2019 13:09 posted by MatFoex

    Proscar O Propecia Efectos Secundarios [url=]viagra online pharmacy[/url] Buy Viagra Cheap Cytotec Petition Toranto Drug Store

  • Comment Link lpe88 download Tuesday, 14 May 2019 12:53 posted by lpe88 download

    Hi there are using Wordpress for your blog platform?
    I'm new to the blog world but I'm trying to get started and create my own. Do
    you need any coding knowledge to make your own blog?
    Any help would be greatly appreciated!

  • Comment Link Annonymous Thursday, 25 October 2018 20:52 posted by Annonymous

    good post

  • Comment Link admin Monday, 13 November 2017 11:30 posted by admin

    Yes, the Arduino uno is used to program the ATMega328 only. You do not need the Arduino uno after program the ATMega328.

  • Comment Link Kian Thursday, 09 November 2017 23:12 posted by Kian

    Could you clarify please. The atmega makeshift board is the actual controller, and the arduino uno is just used as a programmer?

  • Comment Link Vipin Kumar Friday, 27 October 2017 19:39 posted by Vipin Kumar

    dear sir,
    this software how to work in scroll display

  • Comment Link admin Sunday, 28 August 2016 16:58 posted by admin

    The DMD library works with freduino & Arduino UNO. What is your error messages?

  • Comment Link prabakaran Sunday, 28 August 2016 14:39 posted by prabakaran

    Hi I have dried to load the dmd_demo to freeduino. It is throwing multiple error. is this DMD library suitable for freeduino or i need to only use arduino uno. Please help me out.

    Thanks in advance

Leave a comment

Back to Top