As discussed in the previous blog, the LEDs in a DMD panel are organized as small groups in a matrix form. With this the number of pins and power required are significantly reduced. But it is preferable to be able to control with 4-5 pins so that even an 8 bit MCUs can manage such display. This calls for a bit complex electronics in the panel and software in the MCU, but should be manageable in terms of cost and usability.

This blog covers the internal circuitry inside DMD in detail. The block diagram of the overall set up is depicted below.

DMD - System Block Diagram

Dot Matrix Display – Overall Setup Block Diagram

As it can be seen, there are shift registers and demulitplexers used to simplify the effort in MCU. The dual P-channel MOSFET feeds the positive supply voltage to the LED anodes which denotes the row control and the shift registers provides the return path for the LED’s which denotes the column control. The MCU controls the demultiplexer with GPIO interface and interfaces with the shift registers through serial interface, most commonly SPI. More details of them are covered below. For further explanation, we will consider a DMD panel of 512 LEDs, each row is a collection of anode of 32 LEDs and each column is a collection of cathode of 4 groups of 4 LEDs (one column of 16 LEDs divided into 4 groups each of 4 LEDs for reducing IO pins required). The following figure depicts the arrangement of 16X32 LED panel

Row and Column arrangement in 16 X 32 DMD panel

16 X 32 DMD panel arrangement

Role of Serial Shift Register (74HC595)

The purpose of the shift register is to reduce the number of GPIOs required to drive the column of the LED matrix. 74HC595 is an 8-bit serial shift register with output latches and storage register.  The block diagram of the shift register commonly used inside DMD is given below (courtesy of 74HC595 datasheet)

74HC595 shift register block diagram

Serial Shift Register – Block Diagram

With one shift register we get 8 GPIOs possible. Hence for driving 32 columns of 16 LEDs, (total 128 GPIOs) we require 16 serial shift register. SPI clock, SPI MOSI and a latch signal acts a shift register inputs. The main advantage of this serial shift register is that it outputs the serial input fed to it in its serial output pin only when the latch signal is provided. The serial output of the first shift register is connected to the serial input second register. Likewise 16 shift registers are cascaded in series resulting in 128 GPIO pins.

Each of the 128 pin will in turn control 4 LEDs in a column resulting 512 LEDs on the whole. The data to be displayed can be fed as a 128 bit data with 128 clock pulse to the serial shift register. The data will not appear on the output unless the data is transferred to the storage register. Only upon the positive transition of the latch signal, the data will be transferred to the storage register. The data will automatically appear on the output since the output enable pin is permanently grounded.

Since the shift register corresponds to the control of 4 groups of LEDs in 32 columns, the Demultiplexer IC is required to drive the LEDs in 16 rows corresponding to the required data bits.

The following figure depicts the serial shift register circuitry in 16X32 DMD panel, with 128 output lines. Each shift register outputs has 8 outputs, hence 16 shift registers are serially connected for 128 output lines for column control. One output line is connected to 1 group of 4 LEDs in a column. Hence 128 output lines will be connected to 128 groups of 4 LEDs across 32 columns (i.e. one column has 4 groups of 4 LEDs).

Serial shift register with SPI interface

Serial Shift Register Circuit in 16 X 32 DMD panel

Role of Demultiplexer

Demultiplexer is dedicated for row control. 74HC138 is a 3 to 8 line demultiplexer with eight mutually exclusive inverting outputs. Out of three available address inputs only two inputs are selected for 4 individual inverting outputs. The four outputs from the demux will control the gates of four dual P-channel MOSFET where we get 4 pairs of drive outputs which in turn will drive the necessary current to the LEDs in the 16 rows. Finally there are 4 individual sets of multiplexed rows within the DMD. The block diagram of demultiplexer is depicted below (courtesy of 74HC138 datasheet)

3 to 8 line demultiplexer block diagram

Demultiplexer Block Diagram

With this arrangement only four rows will be illuminated at a time while the other is not illuminated. Hence the values of 4 outputs from the demux should be toggled periodically to illuminate all the sets of multiplexed rows. With persistence of human eye, if the LEDs are refreshed once around 20 ms, it is sufficient to show a flicker free display.

Following figure shows the four individual sets of the multiplexed rows inside DMD. The Color coding differentiates the 4 multiplexed rows and the four demux outputs are connected in the following manner

Y0 – connected to the rows R16, R12, R8, R4

Y1 – connected to the rows R15, R11, R7, R3

Y2 – connected to the rows R14, R10, R6, R2

Y3 – connected to the rows R13, R9, R5, R1

Row multiplex inside Dot Matrix Display

Multiplexed rows inside DMD

The demultiplexer input/output combination and the DMD row illumination sequence is illustrated in the following table



  1. Consider a 32X16 DMD panel
  2. The following figures illustrates the sequence of bit shifting

A single data bit is shifted in to the DMD and it is effectively present in the [R16, C8] location.

Bit 1 shifted into R16, C8

First Bit shift into DMD

On further data in, the Old data moves one bit to [R16, C7] and new data bit is loaded at [R16, C8]

Bit 2 loaded at R16, C8

After 2nd bit input

After the input of 9th bit, the first bit is moved to the twelfth row at [R12, C8] and the bit 9 is loaded at [R16, C8]

Bit 9 loaded at R16, C8

After 9th Bit input

Similarly with 32nd bit input, the bit one is moved to the forth row at [R4, C1] and the bit 32 is loaded at [R16, C8]

Bit 32 is loaded at R16, C8

After 32nd bit input

Upon the input of 33rd bit, the bit one is again moved to the sixteenth row but this time at [R16, C16] and the new bit 33 is loaded at [R16, C8]

New bit 33 is loaded at R16, C8

After 33rd bit input

Likewise on input of 128 bits, the bit 1 is moved to the consecutive rows and columns till [R4, C25] and the bit 128 is loaded at [R16, C8]

Bit 128 is loaded at R16, C8

After 128th bit input

Thus the entire pattern to be displayed can be loaded bit by bit. Running even at a low clock frequency of 8KHz, the 128 bits can be easily shifted in 16 ms, more than needed for human eye to detect the change.

DMD – Daisy Chain

It is possible to connect the multiple DMD panels in series using ribbon cables. This is called daisy-chaining. The number of the DMD in series is limited to the RAM size and the SPI clock frequency.
Even though the DMD can also come with multiple LEDs of varying color such as RED, GREEN, BLUE, etc, the underlying connection mechanism is same and each of the colored LED’s are controlled separately.

Now that we can control each LED of the DMD display independently, we can create any pattern to be displayed. In the upcoming blogs, we will discuss in detail about the software based control mechanism and creating rolling displays.



Android was designed originally for use in consumer electronics especially tablets and phones. Due to its wide proliferation, now there are many needs for developing platforms based on Android OS that finds applications in industrial HMI, Auto infotainment, etc. Simplicity, portability, low cost and rich GUI are some of the advantages of using Android in such applications.

Freescale iMx6 based SECOSBC-A62

On the hardware front, there are a lot of low cost development boards like Raspberry Pi/Raspberry Pi+, TI’s Beagleboard/Beagebone, Freescale’s SABRE platforms, UDOO board, Allwinner based Cubie platforms, Rockchip platforms, Intel boards etc. While these platforms are ideal for many applications, using them for a qualified industrial application is not possible as they are not industrial grade systems. Of a few options available, the latest offering from SECO the A62 SBC is an ideal choice. Available in multiple variants, features of the SECOSBC-A62 board include

  • Processor – Freescale i.MX6 Series – i.MX6S/i.MX6DL/i.MX6Q
  • Memory – 1GB DDR3L, 64-bit interface
  • Graphics – Integrated Graphics, with up to 3 separated HW accelerators for
  • 2D, OpenGL® ES2.0 3D,
  • Video Interfaces – 1 x Dual Channel or 2 x Single Channel 18/24 bit LVDS interface HDMI connector
  • Mass Storage – 4GB eMMC disc soldered onboard, microSD Card slot
  • Networking – Gigabit Ethernet connector, Internal USB connector for Wi-Fi Module
  • USB – 2 x USB 2.0 Type-A ports and 1 x USB 2.0 internal connector, USB micro-B Client port
  • Audio – AC’97 Audio Codec Realtek ALC655 with Mic-In, Line-Out audio Jacks
  • Serial Ports – 1 x Serial (TTL level), 2 x Serial (RS-232), 1 x CAN (TTL level)
  • Other Interfaces – Dedicated connector (I2C, GPIO signals) for external Touch Screen controller, MIPI-CSI Camera connector.
  • Configurable expansion connector with:
    • Up to 28 GPIO
    • SPI interface
    • SPDIF Audio interface
    • CAN interface (TTL level)
    • SDIO interface
    • PWM
    • I2C
    • UARTs

Android Lollipop on iMX6 based SECOSBC-A62

Embien has ported Android Lollipop on iMX6 based industrial grade SECOSBC-A62 platform. Below video demonstrates the same.

About Embien: A leading technology service provider in Embedded domain, Embien offers highly specialized services for Android including BSP porting, HAL developments, Customization, Optimization etc. Our other service offering include embedded software services, hardware design services, Industrial protocol development, technical consultancy etc. We also offer corporate training on Android, Multimedia, GStreamer and other technologies. Kindly contact us for your embedded/Android development and/or training requirements.

Saravana Pandian Annamalai
13. August 2015 · Write a comment · Categories: Industrial, Technology · Tags: , , , ,

Windows Embedded Compact or more commonly referred to as WinCE is a Real Time Operation System offered by Microsoft. WinCE is ideal for many developments including industrial PC’s, medical devices, IoT designs etc. WinCE based HMIs (Human Machine Interface) are quiet common with advantage of popular .NET framework support in embedded devices.

Allwinner is a leading chip manufacturer whose low cost devices are established in very will in Tablet and other CE markets. Allwinner chips are also widely in low cost development platforms which are serious competitors for Raspberry PI. Though Allwinner does not offer industrial grade silicon, nevertheless they are used in allied applications like remote industrial plant systems, remote assistance solutions etc.

With Embien’s WEC2013 BSP offering for Allwinner A20, it becomes possible for using WinCE on the low cost platform for these applications. This blog discusses one such application where our BSP is used to meet a customer requirement for a Windows CE based industrial monitoring system.

Windows CE On New Marsboard

The New Marsboard is an Allwinner A20 based dual core platform. Brief specification of the system is as follows:

  • ARM Cortex-A7 Dual-Core
  • ARM Mali400MP2 Complies with OpenGL ES 2.0/1.1
  • 1GB DRAM, up to 2GB DRAM @ 480Mhz
  • 8GB Flash, SD (Max. 64GB) / MMC card slot, SATA Port
  • 10/100 Ethernet RJ45, USB WIFI(RTL8188EU) with Antenna
  • LCD Connector with Capacitive touch
  • Remote IR
  • USB 2.0 Ports – 4 x USB 2.0 Host, 1 x USB 2.0 OTG

The module is available at an affordable $58 USD price tag. With the expansion ports, it is possible to design custom carrier cards and interface with it. For more details, please visit

Below video demonstrates Embien’s Allwinner A20 based WEC2013 BSP running on the new Marsboard.

Remote industrial plant system

One of our customers uses our WEC2013 BSP to enable WinCE on their Remote industrial plant system. Since the customer has expertise in .NET developments and industrial applications, they were looking for a Windows based HMI. With our BSP, they used Allwinner A20 – New Marsboard platform, and created a WinCE based HMI. This enabled quick .NET based developments for the customer along with very low platform cost and low licensing price. The platform is quickly transformed to a Windows CE Industrial Computer. Some of the features supported are

  • RS485 Interface
  • RS422 Interface
  • Multiple RS232 interfaces
  • Ethernet Interface
  • Remote Assistance System
  • Remote Update
  • USB Host Storage for data transfer
  • Resistive Industrial grade touch panel

The system proved to be robust with intuitive screens. Multiple connectivity options opened up possibilities of data acquisition from multiple devices seamlessly. The Remote update feature enabled the System Integrator to update the application firmware as well as the WinCE OS remotely. FTP and other options like Telnet are provided for remote assistance and management.

As it can be seen, Windows Embedded Compact provides flexibility of running .NET framework on the low cost systems like Allwinner A20 and develop Windows CE Industrial Computer and Wince based HMI. With Embien’s Allwinner A20 WEC2013 BSP, it is possible to realize applications such as Remote industrial plant system etc.

About Embien Technologies: Embien Technologies is a leading provider of embedded design services for the Semi-conductor, Industrial, Consumer and Health Care segments. Our extensive experience in working with industrial technologies like CAN, Profibus, Ethernet, CANOpen, DeviceNet, Ethernet/IP, Modbus etc enables us provide solutions to customer quickly at an unmatched quality at a very low price point. Feel free to contact us for any of your industrial product/prototype development requirements.