

Memory visualization gadget for Z80 systems.
- Size
- 30.6 × 21 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 7
- Nets
- 27
- Pads
- 66
- Tracks, vias
- 178, 16
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 20 Jul 2025
- Updated
- 21 Jul 2025
Overview
Lb-80 is an open-source printed circuit board by maboytim, from the maboytim/LiteBrite-80 repository on GitHub, published under the Unlicense licence. It is a 2-layer board of 30.6 × 21 mm with 7 parts on 27 nets, routed with 178 tracks and 16 vias.
It is built around the 74HC4051 and 788BS. Its parts include 2 capacitors, 2 ICs, 1 resistor, 1 diode and 1 connector. It belongs with the retro computing and games boards of this library.
Main components
2README
README.mdLiteBrite-80
The LiteBrite-80 (LB-80) is a memory visualization gadget for Z80 systems. It displays the 1k (8x8 display) or 256 (16x16 display) byte block being accessed by the Z80 (code and data read/write). It is primarily intended for Z80 based TRS-80 systems (Models 1, 2 (12, etc), 3, and 4) but is applicable to any Z80 based system.
The LB-80 consists of two parts - a Z80 adapter and a display. The Z80 adapter is a small PCB in which the Z80 is installed and replaces the Z80. Ideally the Z80 is socketed in the host machine and the LB-80 is just installed in the socket - otherwise the Z80 must be removed and the LB-80 installed in its place or replaced with a socket. The adapter has a connector to attach a display. The display is a small PCB that contains an 8x8 or 16x16 LED array that can either plug directly into the adapter or more likely connected to the adapter via a cable so that the display can be located for convenient viewing.
Theory Of Operation
The operation is very simple. The 8 address msb's (A8-A15) are latched at the beginning of a memory read or write cycle and are used to light a single LED on a row/column display. For an 8x8 display the addresses A13-A15 are decoded with a 1-of-8 decoder to select the row, and addresses A10-A12 are decoded with a 1-of-8 decoder to select the column - which in turn light the single LED at the selected row and column position. The lower-left LED corresponds to the lowest address range and the upper-right LED corresponds to the highest address range.
In normal operation the Z80's address will change very rapidly so the LED's will flash very rapidly - which your eyes will average such that the LED's will appear lit with a brightness proportional to the percentage of time the Z80 accesses memory in the corresponding region over the averaging time of your eyes.
The addresses are latched at the beginning of the memory cycle as opposed to the end so that if the cycle is extended by WAIT it will be properly reflected by the corresponding LED.
For a 16x16 display A12-A15 would be decoded for the row and A8-A11 for the column.
Adapter PCB
The adapter PCB design is available here. The design is intended to be as compact as possible so to fit into about the space of the Z80 itself. To achieve this the design is essentially a 40-pin socket - but with a small protrusion for the display connector. The adapter could be used in place of a Z80 socket, or if installed in a socket is equivalent to stacking a second socket on top of the socket.
Adapter PCB installed in TRS-80 M3:

The design uses individual machine socket pins which can be removed from a machine socket or bare pins can be purchased. The pins should be inserted in the PCB until the collar touches the top of the PCB - they might have a slight interference fit and need to be pressed into the PCB.
The connector pinout is compatible with the PMOD connector common to FPGA development boards. The PMOD connector is simply a 2x6 connector with two GND pins, two Vcc pins, and eight signal pins. For an 8x8 display only six signals are needed so a pinout that allows for a 10-pin connector for 8x8 display is used - this allows for use of a 10-pin cable when connecting the display via a cable.
The use of the PMOD connector also allows the display to be used with many FPGA boards for example if emulating a TRS-80 with an FPGA.
Display PCB
An 8x8 display PCB design is available here, and is also in the TRS-IO project.

Here is an earlier version of the display - connected to TRS-80 M3 booted to the FreHD menu:

The 8x8 displays can be arranged into larger arrays so a 16x16 display can be made from four 8x8 displays. I've personally not made a 16x16 display.
Software
No special software is needed because the LB-80 just displays the natural behavior of the Z80 activity. The resultant patterns are interesting and fun to watch but also often lend insight into what the Z80 is doing.
However, it is possible to contrive a program that generates certain patterns on the LB-80 display. To light an individual dot on an 8x8 display requires that the Z80 be limited to the corresponding 1k block of memory (program, data, and stack). To light a different individual LED would require the Z80 be limited to a different corresponding 1k block of memory. To not light an LED would require the Z80 not touch the corresponding 1k block of memory. So contriving such a program is tricky but can be done.
Marquee Display Program
A TRS-80 program lb80text that displays scrolling marquee style text on the LB-80 is provided as one such example. See the source code for detailed explanation of how the program works. Several versions are provided.
The command syntax is lb80text "string to display". The quotes are optional and only required if the string has leading spaces.
It happens that this demo program is a good stress case for memory. Although using additional banked memory in the M4 and M2 really has no effect on the operation of the LB-80 itself some banked versions are included. If the program doesn't crash your Z80 and memory system are likely pretty solid.
TRS-80 Model 1 and Model 3 Version
For TRS-80 M1 with lowercase mod and 48k RAM, and M3 with 48k. See source code for M1 without lowercase mod.
TRS-80 Model 4 Version
For TRS-80 M4 with 64k.
TRS-80 Model 2 Version
For TRS-80 M2 with 64k. Very similar to M4 version but doesn't use display memory since the M2 can't run from display memory.
TRS-80 Model 4 128k Version
Coming...
TRS-80 Model 2 512k Version
For TRS-80 M2 with 512k. A M2 (M12, etc) with 512k is a rare beast but if you are one of the lucky few with a 512k card by Ruud this will give you something to test it with. (Note: I also have a 512k card of my own design that's not yet ready for primetime but is my personal motivation for this version).
Alternative Adapter Implementations
In systems that expose the Z80 bus an LB-80 adapter that connects to the bus rather than directly to the Z80 is possible. Such systems include:
- TRS-80 Model 1
- TRS-80 Model 2 (12, etc)
- S100
The TRS-80 M2 (M12, etc) is an interesting case because the address bus is inverted. It might seem that an LB-80 adapter would have to invert the address signals but that's actually not required. Inverting both the row and column signals results in the display being rotated 180 degrees so all that's needed is to rotate the display 180 degrees to obtain the intended orientation.
Parts
7| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 0.1uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C1, C2 |
| 2 | 74HC4051 | Package_SO:TSSOP-16_4.4x5mm_P0.65mm | U1, U2 |
| 1 | 150 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1 |
| 1 | 788BS | footprints:788BS | LED1 |
| 1 | Conn_02x06_Odd_Even | Connector_PinSocket_2.54mm:PinSocket_2x06_P2.54mm_Vertical | J1 |
More from maboytim/LiteBrite-80
1- 2 layers17.9 × 59.1 mm

Similar boards
- 2 layers85.6 × 41 mm

Hl alyx glove
StarGate01/hl-alyx-glove
Firmware and Hardware for a Half-Life: Alyx Gravity Glove Replica
38 parts21MIT - 2 layers51 × 51 mm

Compatible chan v0-led
taka-tuos/compatible-chan
M5Stack compatible module for stack-chan
19 parts1GPL-3.0 - 4 layers99 × 53.3 mm

PSLab
fossasia/pslab-hardware
PSLab Hardware Design and Schematics https://pslab.io
199 parts1.7kApache-2.0 - 4 layers113.5 × 105.5 mm

Multistepper
eddyem/stm32samples
Code samples and ready projects based on bare-metal STM32
243 parts208 - 4 layers230.7 × 97.8 mm

- 2 layers100 × 45.3 mm

- 4 layers100 × 100 mm

- 4 layers227.3 × 85 mm

Le capybara
sporkus/le_capybara_keyboard
Capactive sensing (EC) pcb for Le Chiffre keyboard
118 parts58CERN-OHL-W-2.0
Questions
How big is the Lb-80 PCB?
It measures 30.6 × 21 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Lb-80 use?
7 parts, built around the 74HC4051 and 788BS. 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.
Where can I download the Lb-80 KiCad files?
From the maboytim/LiteBrite-80 repository on GitHub, at the commit this page was made from: the board is kicad/lb-80/lb-80.kicad_pcb and its schematic kicad/Visual80-3/Visual80-3.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Lb-80 design in my own project?
Its repository publishes it under the Unlicense licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).