Skip to the content
PCBKitNew board
2 layers90 × 56.1 mmOutput pal, the printed circuit board in 3D

A module to display 8-bit numbers

Size
90 × 56.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
47
Nets
58
Pads
180
Tracks, vias
381, 54
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
12 May 2024
Updated
6 Jul 2024

Overview

Output pal is an open-source printed circuit board by siliconchronicles, from the siliconchronicles/output-module repository on GitHub. It is a 2-layer board of 90 × 56.1 mm with 47 parts on 58 nets, routed with 381 tracks and 54 vias.

It is built around the HDSP-7503. Its parts include 20 resistors, 8 diodes, 7 ICs, 5 capacitors and 2 connectors. It belongs with the retro computing and games and lEDs and displays boards and the FPGA and CPLD boards of this library.

Main components

1

README

README.md

An 8-bit numeric display

This is a description of a display for showing values of an 8-bit signal. This is useful for building and debugging breadboard digital circuits working with digital numbers.

Picture of module

It's main features are:

  • Can be switched (by a control signal) to display data in both decimal and hex.
  • Can interpret data as unsigned numbers (0 to 255), or signed two's complement values (-128 to 127). This can also be switched through a control signal.
  • has its internal clock, all the input it needs is the input data, power, and mode selection lines.

It's inspired in Ben Eater's output register, but this is just the display (it does not contain register functionality). I decided to keep it as a separate unit that I can attach to any register to debug.

🎥 Video Demo

Building the display

Schematic

Materials

  • R1: 1KΩ
  • R2: 100KΩ
  • R3-R6: 220Ω (you can choose a slightly different value, this controls the brightness)
  • C1, C2: 0.01µF (equivalent to 10nF) ceramic. Usually labeled "103"
  • U1: LM555 timer IC
  • U2: 74HC112 dual J-K flip-flops. This is different than Eater's design that used a 74LS76 (obsolete). Other J-K flip-flop ICs will work OK but may have different pin out.
  • U3: 74HC139 dual 2:4 decoder
  • U4: AT28C64B EEPROM. You'll have to pre-program it (see below)
  • U5-U8: 7-segment display, common cathode. For breadboard use look for some with the pins at the top+bottom of the digit, and pins at the right spacing.

All ICs should be in DIP package if you're building in breadboards.

You can also choose TTL compatible components (LS or HCT families for the 74 series, and NE555 for the timer IC). As long as you're consistent, it's the same; all external inputs come into the EEPROM, which accepts both TTL and CMOS inputs.

Data sheets

Preparing the ROM

The ROM image is generated by a Python script. I tried to make it easy to change. I'm also providing a pre-built ROM file if you want to use mine unchanged.

You will need an EEPROM programmer to write the ROM. The image generated only uses the lower 4KB (leaving the other 4KB unused). It would be possible to add other modes there if desired.

The Config section has a few settings that you can fiddle with; FONT is something you can change without changing the circuit if you want to provide different selection of segments or representable values. ROM_LAYOUT is used to customize the mapping of segment to ROM pins; this has been configured for my breadboard layout so that the wires from ROM to the segment stay in the same side of the breadboard and are tidier.

The generate_text() should produce the text representation for an 8-bit value in the selected mode. shuffle() takes care of adjusting the bits described in the font to the output pin layout selected.

If you set an invalid mode, the display should show ---- (four dashes).

Possible improvements

  • Having one resistor per digit makes the current fixed per digit, which results in symbols with many segments (like the digit 8) dimmer than symbols with less segments (like the digit 1). It would be better to have resistors in each one of the output lines from the ROM, but using a breadboard ends up being a bit tight to do this
  • I'm exploring a version where I replace the 112+139 for a single PLA (ATF16V8); that would provide a bit of extra physical space for other improvements.

Parts

47
QtyValueFootprintReferences
181KResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R3, R4, R5, R6, R7, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19 +2
8LEDCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderD1, D2, D3, D4, D5, D6, D7, D8
4HDSP-7503footprint-library:7SegmentLED_genericU5, U6, U7, U8
30.1µFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC3, C4, C5
20.01µFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1, C2
1100KResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR2
11KResistor_SMD:R_1206_3216MetricR20
17555Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU1
1AT28C64Package_DIP:DIP-28_W15.24mm_SocketU4
1ATF16V8Package_DIP:DIP-20_W7.62mm_SocketU9
1Conn_01x02_PinConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1Conn_01x08_PinConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ1
1SW_DIP_x02Button_Switch_THT:SW_DIP_SPSTx02_Piano_10.8x6.64mm_W7.62mm_P2.54mmSW1

The 43 most common of 47 parts.

Questions

How big is the Output pal PCB?

It measures 90 × 56.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Output pal use?

47 parts, built around the HDSP-7503. 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 Output pal KiCad files?

From the siliconchronicles/output-module repository on GitHub, at the commit this page was made from: the board is schematic/output-pal/output-pal.kicad_pcb and its schematic schematic/output-pal/output-pal.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Output pal design in my own project?

Its repository states no licence, so its author keeps all rights: ask siliconchronicles before reusing the design.

Similar boards

  • 4 layers71.1 × 99.1 mmQuad adsr, the printed circuit board in 3D

    Quad adsr

    JordanAceto/quad_ADSR_board

    PCB for a quad eurorack ADSR

    197 parts5
  • 2 layers129.5 × 33 mmBCD Decade Counter, the printed circuit board in 3D

    BCD Decade Counter

    adhyayan15/BCD_Decade_Counter

    Designed a custom KiCad PCB for a BCD decade counter, transitioning a verified breadboard prototype into a manufacturable circuit.

    15 partsMIT
  • 4 layers80 × 45 mmStopwatch, the printed circuit board in 3D

    Stopwatch

    drewsum/Stopwatch

    Hardware stopwatch for developing film

    194 parts
  • 4 layers46.8 × 36.8 mmOne digit updown counter, the printed circuit board in 3D

    One digit updown counter

    Roshan-khatri78/Electronics-Projects-KiCad-

    A collection of my KiCad projects and PCB designs. These projects reflect my learning journey in electronics and PCB design.

    18 parts2
  • 4 layers153.1 × 88.1 mmMenelaos v1, the printed circuit board in 3D

    Menelaos v1

    acastles91/menelaos

    94 parts
  • 4 layers387 × 151 mmSignalmesh revert2, the printed circuit board in 3D

    Signalmesh revert2

    akielaries/signalmesh_CAD

    signalmesh schematic and PCB files

    137 parts
  • 2 layers30 × 61.3 mmModuleV450, the printed circuit board in 3D

    ModuleV450

    stuartpittaway/diyBMSv4

    Version 4 of the diyBMS

    47 parts1.1k
  • 2 layers114 × 61.4 mmLHS Breakbeat, the printed circuit board in 3D

    LHS Breakbeat

    lhndo/LH-Stinger

    Fast, Precise, Cartesian, FDM 3D Printer

    47 parts1.1k