
Ledmat8x16tiledriver
burbschat/ledmat8x16
LTP-12188M-08 Based Two Color 8x16 LEDs in 8x8 Slots LED Matrix Display Module

LTP-12188M-08 Based Two Color 8x16 LEDs in 8x8 Slots LED Matrix Display Module
Ledmat8x16tiledriver blade is an open-source printed circuit board by burbschat, from the burbschat/ledmat8x16 repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 4-layer board of 256 × 32 mm with 136 parts on 222 nets, routed with 5,015 tracks and 752 vias.
It is built around the TLC59283DBQ and DMP31D7LDW. Its parts include 48 capacitors, 40 ICs, 32 connectors and 8 resistors. It belongs with the lEDs and displays and interfaces and adapters boards of this library.
Found a place that sold their dead stock of LTP-12188M-08 modules for extremely cheap and bought a whole bunch. To drive those I would like to have a minimal and cheap solution which is also modular, meaning I can build an (for any practical purposes) arbitrarily sized display by just assembling identical modules (and perhaps a few cables etc.).
Had some fun with this incredible tool. Shown renders are of the first version of the single tile driver board. There is a newer revision with extra features for mouting as well as a blade version where 8 modules are combined into one long board, as that is a much more reasonable solution for large displays.
| Front | Back | Oblique |
|---|---|---|
![]() | ![]() | ![]() |
Testing three prototype modules driven by a Raspberry Pi Pico (which is debugged from a second Pico via SWD). The colors do look much more vibrant in person. Also, the apparent differences in brightness are an artifact of the way this picture was captured.

A second test now using the controller and row connect boards for a double row display. Again, the colors look much better in person than on this picture. This can now display much larger frames as well as animations (cycling through a given number of frames in a buffer on the pico). For faster data transfer a serial interface over USB is used (previously UART through the debug probe was used, which is much slower). A debug probe is still attached for, well, debugging. But the device now can be used without it.

The clock will have to arrive at each TLC59283 before the output of the previous one had a chance to change. According to the data sheet, the delay until SOUT changes is normally around 11ns. As we are only concerned about adjacent modules in close proximity, the clock propagation delay should be well below 10ns. A possible concern mentioned here is that the clock signal integrity may be degraded due to large capacitance if we fan it out too far. To solve this we may employ a buffer, this however would mean we need either a very fast buffer to not skew the clock relative to the data signal too much, or also have to buffer the data signal at the same time. Buffering two signals should be doable. This is probably not an issue, but technically if the buffers are to slow, this could limit the rate at which we can operate the panel (i.e. clock in data). As, if it works, no buffers should be the easier solution, for now I'll try without. If required, we may try to add clock line terminations to avoid ringing.
Found that when I run a fully lit frame (all 16 LEDs enabled while multiplexing the rows) the whole module gets quite hot. Not entirely sure what produces the heat. If it is the TLC59283, one could simply remove the solder mask on the back side of the board which is a ground plane to which the ground pad on the TLC59283 is connected to and place some sort of heat sink there. This is of course the reason why the TLC59283 is placed under the LED matrix module on the front and not at the back of the board and not simply attributed to be not checking the orientation of the modules footprint before doing the tedious routing which I do not want to do twice. Will have to further check what is the source of the heat. However, as long as the display is not constantly fully illuminated, it does not appear to get excessively hot.
I use an Raspberry Pi Pico (2 to be exact) to the modules. The serial interface for the TLC59283 is implemented using a PIO state machine (with DMA) which can clock out serial data independent of the processor cores and thus is a very performant solution. Switching between the rows is done by the processor which also feeds data from a global frame buffer to the DMA (which feeds it to the PIO state machine). Other microcontrollers will probably also work. Not sure how one would handle the serial communication though. AT a slower rate one can perhaps just bit bang using GPIO. Didn't try. The code I use on the Pico is available in a separate repository here.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 40 | 0.1u | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C1, C2, C10, C11, C12, C14, C15, C16, C17, C18, C20, C21, C22, C23, C24, C26 +24 |
| 32 | DMP31D7LDW | ledmat8x16:SOT-363_SC-70-6 | U2, U11, U12, U13, U14, U16, U17, U18, U19, U21, U22, U23, U24, U26, U27, U28 +16 |
| 16 | Conn_01x10_Pin | Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Vertical | J1, J2, J5, J7, J9, J11, J13, J15, J17, J19, J21, J23, J25, J27, J29, J31 |
| 8 | 10u | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C3, C7, C13, C19, C25, C31, C37, C43 |
| 8 | 2k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R2, R3, R4, R5, R6, R7, R9 |
| 8 | Conn_02x08_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x08_P2.54mm_Horizontal | J3, J6, J10, J14, J18, J22, J26, J30 |
| 8 | Conn_02x08_Odd_Even | Connector_PinSocket_2.54mm:PinSocket_2x08_P2.54mm_Horizontal | J4, J8, J12, J16, J20, J24, J28, J32 |
| 8 | LTP-12188M-08 | ledmat8x16:LTP-12188M-08 | DS1, DS2, DS3, DS4, DS5, DS6, DS7, DS8 |
| 8 | TLC59283 | Package_DFN_QFN:Texas_RGE0024C_VQFN-24-1EP_4x4mm_P0.5mm_EP2.1x2.1mm | U1, U10, U15, U20, U25, U30, U35, U40 |

burbschat/ledmat8x16
LTP-12188M-08 Based Two Color 8x16 LEDs in 8x8 Slots LED Matrix Display Module

burbschat/ledmat8x16
LTP-12188M-08 Based Two Color 8x16 LEDs in 8x8 Slots LED Matrix Display Module

burbschat/ledmat8x16
LTP-12188M-08 Based Two Color 8x16 LEDs in 8x8 Slots LED Matrix Display Module


BAL-ORX/RocSync
Millisecond-Accurate Temporal Synchronization for Heterogeneous Camera Systems

shabaz123/Vectorscope_GuyFawkes
A reimplementation of the Vectorscope from https://github.com/Hack-a-Day/Vectorscope

chill389cc/Soundboard
Code and schematics for a macropad soundboard system for the office bullpen




It measures 256 × 32 mm and has 4 copper layers, 1.6 mm thick.
136 parts, built around the TLC59283DBQ and DMP31D7LDW. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the burbschat/ledmat8x16 repository on GitHub, at the commit this page was made from: the board is kicad/prj/ledmat8x16tiledriver_blade/ledmat8x16tiledriver_blade.kicad_pcb and its schematic kicad/prj/ledmat8x16controller/ledmat8x16controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).