

Led display
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
2README
README.mdretro-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):
- https://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv020.cgi?read=204526
- https://sites.google.com/site/olivier2smet2/hp_projects/hp97
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/bootloaderhas a small serial/flash bootloader which should be programmed at $0000firmware/calchas the main calculator operating firmwarefirmware/umonhas a simple Z80 monitor I wrote for debuggingfirmware/basichas a hacked version of MS BASIC (4K integer version from 1978)utilhas 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:
EEPROM | 0000-7FFF
RAM | 8000-FFFFThere are six decoded I/O ports:
| port | name | bits | description |
|---|---|---|---|
| 00 | KB (write only) | bit 0 | KB column 1 |
| " | " | bit 1 | KB column 2 |
| " | " | bit 2 | KB column 3 |
| " | " | bit 3 | KB column 4 |
| " | " | bit 4 | KB column 5 and switches |
| " | " | bit 5 | -not used- |
| " | " | bit 6 | LED on CPU board |
| " | " | bit 7 | Serial output |
| 40 | Digits 0-7 | bits 0-7 | ICM7218 display data |
| 41 | Digits 0-7 | bits 0-7 | ICM7218 control data |
| 80 | KB (read only) | bit 0 | KB row 1 |
| " | " | bit 1 | KB row 2 |
| " | " | bit 2 | KB row 3 |
| " | " | bit 3 | KB row 4 |
| " | " | bit 4 | KB row 5 |
| " | " | bit 5 | KB row 6 |
| " | " | bit 6 | KB row 7 |
| " | " | bit 7 | Serial input |
| c0 | Digits 8-11 | bits 0-7 | ICM7218 display data |
| c1 | Digits 8-11 | bits 0-7 | ICM7218 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| Qty | Value | Footprint | References |
|---|---|---|---|
| 30 | 1N914 | Diode_THT:D_T-1_P2.54mm_Vertical_AnodeUp | D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24 +14 |
| 29 | MX1A-C1NW | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23, SW24, SW25 +13 |
| 3 | 0.1uF | Capacitor_THT:C_Disc_D9.0mm_W2.5mm_P5.00mm | C1, C2, C3 |
| 3 | LTC-4627JR | Package_DIP:DIP-16_W7.62mm_LongPads | U2, U3, U5 |
| 2 | C2x8100 | Connector_PinHeader_2.54mm:PinHeader_2x08_P2.54mm_Vertical | J1, J2 |
| 2 | ICM7218A | Package_DIP:DIP-28_W15.24mm_LongPads | U1, U4 |
| 2 | SW_SPST | sw_slide:sw_slide_4.7mm | SW1, SW2 |
| 1 | 470 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1 |
| 1 | LED | LED_THT:LED_D2.0mm_W4.0mm_H2.8mm_FlatTop | D1 |
| 1 | MX1A-C1NW | Button_Switch_Keyboard:SW_Cherry_MX1A_2.00u_PCB | SW5 |
The 74 most common of 80 parts.
More from eshazen/retro-25
3- 2 layers116.8 × 147.3 mm

- 2 layers200 × 65 mm

- 2 layers127 × 50.8 mm

Similar boards
- 6 layers60.6 × 100 mm

Gecko5education
logisim-evolution/GECKO5Education
Openhardware educational platform based on the ideas of the ulx3s and Gecko4Education
311 parts18MIT - 2 layers153 × 94 mm

- 2 layers54.6 × 89.5 mm

- 2 layers130.4 × 76.6 mm

Gb stream cart
Staacks/gbinterceptor
Capture or stream Game Boy gameplay footage via USB without modifying the Game Boy.
80 parts542 - 2 layers100 × 100 mm

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 mm

Kivu12
ohmtech-rdi/eurorack-blocks
Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust
80 parts410 - 2 layers137.9 × 92.7 mm

ErgoTravel
jpconstantineau/ErgoTravel
A Portable Ergonomic Split Keyboard inspired from the ErgoDox, Let's Split and Minidox
80 parts284MIT - 2 layers219.1 × 66.7 mm

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.