From Hackerspace ACKspace
Jump to: navigation, search
Project: PAL0123
Featured: No
State Stalled
Members xopr
GitHub No GitHub project defined. Add your project here.
Description 192x16 bicolor matrix display
ACKspace w00t on ESP.jpg

PALTRONICS PAL0123 REV 0 (1998) 192x16 bicolor matrix display


xopr received two 192x16 bicolor 5mm dot matrix displays (one to keep, one to fix a controller board for).

used ICs

pinout and protocol

The marquee consists of shift registers which allows one to shift and latch in 2x192 bits. After that's done, a row needs to be selected and the two colors are displayed with a strobe signal. This means, the display has only 384 bits of memory (one line) and for every other line, a new set of pixels need to be shifted in. The display is controlled with 9 bits: Red, Green, Clock, Latch Enable, Strobe, A, B, C and D (a chip select between the two DM74LS138Ns)

Pinout (this is having the header at the left facing you, having the display put upside down (facing the other way)

pin 1
GND |oo| Red
GND |oo| Green
GND |oo| CLK
GND |oo| LE
GND |oo| C
GND |oo| B
GND |oo| A
GND |oo| Strobe
GND |oo| D
NC  |oo| NC(?)


Already reverse engineered the pinout and protocol and drove it with an arduino nano. Unfortunately, with the default settings, it is slow enough that the display's refresh rate becomes annoying. Did some tests with an ESP-12E module and had great success (the 'D/chip select' pin selecting the other 8 rows somehow failed on GPIO15 and GPIO16). The ESP-12 still has the RxD and TxD available for communicating without using the wifi.

first PoC (5V logic driven with ESP

update: It now has a small print that will fit the ESP with programming header:

|o gnd                  (+)(-)
|o cts
|o vcc1
|o tx
|o rx       oooooooo
|o dtr
|0 program
|0 gnd
|0 vcc1 (ftdi)
|0 pwr
|0 vcc2 (regulator)
|0 gnd
|0 adc      oooooooo

Currently, the strict timing (so it seems) doesn't allow for the ESP to run in SoftAP mode. Maybe xopr will rewrite the code so it starts in AP mode with the display off, and will enable the display only in station (client) mode.

Also, using the Ticker event callback mechanism in 20ms makes the display run jagged and still fails in AP mode. It will even fail in station mode with timings under 15ms. Chose to run inside the program loop with a 100µS delay (since yield() also wasn't sufficient)


  • write (and upload) some descent code (taking the wifi interrupts into account)

Location: at xopr's