Skip to the content
2 layers116.8 × 172.7 mmLed display, the printed circuit board in 3D

Retro-tech HP-25 calculator clone using Z80

Size
116.8 × 172.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
80
Nets
95
Pads
372
Tracks, vias
607, 85
Pours
3
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
9 May 2020
Updated
19 Feb 2025

Overview

Led display is an open-source printed circuit board by eshazen, from the eshazen/retro-25 repository on GitHub. It is a 2-layer board of 116.8 × 172.7 mm with 80 parts on 95 nets, routed with 607 tracks and 85 vias.

It is built around the ICM7218AIJI and LTC-4627JR. Its parts include 32 switches, 31 diodes, 5 ICs, 3 capacitors and 2 connectors. It belongs with the retro computing and games and lEDs and displays boards of this library.

Main components

2

README

README.md

retro-25

Retro-tech HP-25 calculator clones using Z80

<img src=https://github.com/eshazen/retro-25/blob/master/talks/HCC2020/figs/all3_800.jpg width=600>

News!

2023-01-02

This is branch "ScopeClock". Building up another CPU board for used as a general purpose computer for the scope clock, along with the DAC/Interface board from that project, which (whew!) has an actual UART for the serial port.

2021-01-01

Time for something new! The VFD HP-25 is cool and all, but I've lusted after an HP-97 most of my life, plus I love nixie tubes! Starting to think about a nixie-display HP-97 emulator. Probably no card reader, but a small printer is certainly doable. Inspiration from Oliver De Smet (archived elswhere in this repository just in case):

2020-10-10

I gave a talk at the HPCC 2020 conference on these calculators. You can see my slides here: http://www.hpcc.org/conferences/HPCC2020/HPCC2020_04_Retro_25_revC.pdf

Built a new version with VFD display tubes!

See notes.

What's here

hardware has the design files for the CPU and keyboard/display boards

  • firmware/bootloader has a small serial/flash bootloader which should be programmed at $0000
  • firmware/calc has the main calculator operating firmware
  • firmware/umon has a simple Z80 monitor I wrote for debugging
  • firmware/basic has a hacked version of MS BASIC (4K integer version from 1978)
  • util has some utility software, including: firmware loader, program loader, stack/register clip utility, simple assembler for HP-25 programs, and some template and example programs

Hardware

The hardware consists of two boards, a CPU board and an LED+display board.

CPU board ECOs (mistakes!)

  • D2 in the reset circuit - silkscreen is backwards
  • U1 pin 11 must be wired to J17 pin 11
  • BUSRQ should be tied high or pulled up. Solder a 1k resistor (or just a wire) from the Z80 (U3) pin 25 to +5V

Also, recommend to cut the trace to nWE on the EEPROM (U4, pin 27) and wire from pin 27 to pin 28. This disables writing to the EEPROM. Not essential, but I recommend programming the EEPROM separately in a programmer. Rogue code can easily wear out the EEPROM (as I found the hard way!) if writing is enabled. You have been warned.

Memory and I/O map

The memory map is very simple:

text
EEPROM | 0000-7FFF
RAM    | 8000-FFFF

There are six decoded I/O ports:

portnamebitsdescription
00KB (write only)bit 0KB column 1
""bit 1KB column 2
""bit 2KB column 3
""bit 3KB column 4
""bit 4KB column 5 and switches
""bit 5-not used-
""bit 6LED on CPU board
""bit 7Serial output
40Digits 0-7bits 0-7ICM7218 display data
41Digits 0-7bits 0-7ICM7218 control data
80KB (read only)bit 0KB row 1
""bit 1KB row 2
""bit 2KB row 3
""bit 3KB row 4
""bit 4KB row 5
""bit 5KB row 6
""bit 6KB row 7
""bit 7Serial input
c0Digits 8-11bits 0-7ICM7218 display data
c1Digits 8-11bits 0-7ICM7218 control data

All ports except 80 are write-only; port 80 is read-only.

A bit-banged serial port using an FTDI USB adapter is provided as bit 7 of ports 00 and 80. Note that these ports share keyboard scanning functions, so the code must be carefully written if both functions are used simultaneously.

There are no interrupts.

Firmware

See firmware/calc for calculator operating program

See util for assembler and loader utilities

Parts

80
QtyValueFootprintReferences
301N914Diode_THT:D_T-1_P2.54mm_Vertical_AnodeUpD2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24 +14
29MX1A-C1NWButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23, SW24, SW25 +13
30.1uFCapacitor_THT:C_Disc_D9.0mm_W2.5mm_P5.00mmC1, C2, C3
3LTC-4627JRPackage_DIP:DIP-16_W7.62mm_LongPadsU2, U3, U5
2C2x8100Connector_PinHeader_2.54mm:PinHeader_2x08_P2.54mm_VerticalJ1, J2
2ICM7218APackage_DIP:DIP-28_W15.24mm_LongPadsU1, U4
2SW_SPSTsw_slide:sw_slide_4.7mmSW1, SW2
1470Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1
1LEDLED_THT:LED_D2.0mm_W4.0mm_H2.8mm_FlatTopD1
1MX1A-C1NWButton_Switch_Keyboard:SW_Cherry_MX1A_2.00u_PCBSW5

The 74 most common of 80 parts.

More from eshazen/retro-25

3
  • 2 layers116.8 × 147.3 mmCpu, the printed circuit board in 3D

    Cpu

    eshazen/retro-25

    Retro-tech HP-25 calculator clone using Z80

    52 parts33
  • 2 layers200 × 65 mmVfd display, the printed circuit board in 3D

    Vfd display

    eshazen/retro-25

    Retro-tech HP-25 calculator clone using Z80

    48 parts33
  • 2 layers127 × 50.8 mmPsu, the printed circuit board in 3D

    Psu

    eshazen/retro-25

    Retro-tech HP-25 calculator clone using Z80

    29 parts33

Similar boards

  • 6 layers60.6 × 100 mmGecko5education, the printed circuit board in 3D

    Gecko5education

    logisim-evolution/GECKO5Education

    Openhardware educational platform based on the ideas of the ulx3s and Gecko4Education

    311 parts18MIT
  • 2 layers54.6 × 89.5 mmPicoRX, the printed circuit board in 3D

    PicoRX

    dawsonjon/PicoRX

    Build a SDR SW/MW/LW Receiver with a Raspberry Pi Pico

    80 parts556
  • 2 layers130.4 × 76.6 mmGb stream cart, the printed circuit board in 3D

    Gb stream cart

    Staacks/gbinterceptor

    Capture or stream Game Boy gameplay footage via USB without modifying the Game Boy.

    80 parts542
  • 2 layers100 × 100 mmEleLab v2 Bus100, the printed circuit board in 3D

    EleLab v2 Bus100

    Chrismettal/EleLab_v2

    Cheap DIY lab system for hobbyists and the tinkering folk

    80 parts531GPL-3.0
  • 2 layers59.6 × 109.5 mmKivu12, the printed circuit board in 3D

    Kivu12

    ohmtech-rdi/eurorack-blocks

    Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust

    80 parts410
  • 2 layers137.9 × 92.7 mmErgoTravel, the printed circuit board in 3D

    ErgoTravel

    jpconstantineau/ErgoTravel

    A Portable Ergonomic Split Keyboard inspired from the ErgoDox, Let's Split and Minidox

    80 parts284MIT
  • 2 layers219.1 × 66.7 mmStonehenge30, the printed circuit board in 3D

    Stonehenge30

    marksard/Keyboards

    This repository is warehouse of my keyboard architecture.

    80 parts193MIT

Questions

How big is the Led display PCB?

It measures 116.8 × 172.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Led display use?

80 parts, built around the ICM7218AIJI and LTC-4627JR. 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 Led display KiCad files?

From the eshazen/retro-25 repository on GitHub, at the commit this page was made from: the board is hardware/led-display/Rev1/led-display.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Led display design in my own project?

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