Skip to the content
2 layers113.4 × 87.9 mmPpc isa expansion, the printed circuit board in 3D

Ppc isa expansion

hustav/amstrad_isa

Amstrad PPC ISA Extension Board

Size
113.4 × 87.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
22
Nets
80
Pads
321
Tracks, vias
1,413, 130
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
24 Apr 2026
Updated
19 May 2026

Overview

Ppc isa expansion is an open-source printed circuit board by hustav, from the hustav/amstrad_isa repository on GitHub, published under the MIT licence. It is a 2-layer board of 113.4 × 87.9 mm with 22 parts on 80 nets, routed with 1,413 tracks and 130 vias.

It is built around the 74HC244D. Its parts include 8 capacitors, 5 connectors, 2 ICs, 1 resistor and 1 diode.

Main components

1

README

README.md

Amstrad PPC 512/640 — ISA Expansion Board

An open-hardware KiCad 8 design for an external-mount, internally-powered 3-slot XT-class (8-bit) ISA expansion board for the Amstrad PPC 512 and PPC 640 portable PCs.

Amstrad PPC 640 running with the ISA expansion board attached

The PPC is the 1988-era Amstrad luggable that ships with a CMOS-level expansion connector (DB25 + DB37) on its back. Amstrad sold an external "Expansion Box" that was meant to power the PPC and add peripheral slots. This project inverts the original topology: it takes power from the PPC's own PSU and gives you three standard XT 8-bit ISA slots in a compact board that clips onto the back of the machine via the two DB connectors — ready to host modern flash-based peripherals (XT-IDE, floppy emulators, network cards, etc.).

Gallery

The board has been fabricated and tested in a real Amstrad PPC 640 — booting DOS from a CompactFlash card via an XT-IDE controller. Photos below are of the assembled board in service.

Bare board installed on the PPC backRear view, board attached
Board mated to the PPC's DB25 + DB37 expansion port.Top-down view showing the three ISA slots fanning out the back.
XT-IDE with CF card installed in slotPPC 640 booting from CF via XT-IDE
XT-IDE card with CompactFlash plugged into the centre slot.The PPC 640 booting and running Test Drive from the CF card.

Repository layout

text
amstrad_isa/
├── README.md                  — this file
├── LICENSE                    — MIT
├── .gitignore                 — KiCad / Python / OS cruft
├── kicad/
│   ├── ppc-isa-expansion.kicad_pro
│   ├── ppc-isa-expansion.kicad_sch
│   ├── ppc-isa-expansion.kicad_pcb
│   ├── sym-lib-table          — project-local symbol libraries
│   ├── fp-lib-table           — project-local footprint libraries
│   └── ppc-isa.pretty/        — custom ISA 8-bit slot footprint
├── scripts/
│   ├── generate_schematic.py  — regenerates the schematic from tables
│   ├── generate_pcb.py        — regenerates the PCB skeleton
│   └── generate_bom.py        — emits docs/BOM.csv
├── fab/                       — ready-to-order gerbers + JLCPCB zip
├── docs/
│   ├── design_notes.md        — the *why* behind the schematic choices
│   ├── BOM.csv                — bill of materials
│   └── Amstrad_PPC_Technical_Reference_Manual.pdf
└── photos/                    — build & in-machine reference shots

I just want a board — no KiCad

If you don't want to install KiCad, the fab/ folder contains a ready-to-order gerber set straight from the committed .kicad_pcb.

  1. Download fab/ppc-isa-expansion-gerbers.zip (no need to extract it).
  2. Go to your favourite board house — JLCPCB, PCBWay, OSH Park and Aisler all accept this format unchanged.
  3. Upload the zip. The defaults are fine: 2 layers, 1.6 mm FR-4, HASL or ENIG finish, any colour. Quantity 5 is usually the minimum and runs ~$5 + shipping.
  4. Order, wait, populate from docs/BOM.csv.

The gerbers in fab/ always match the committed .kicad_pcb. If you fork and re-route, re-plot from KiCad and replace the contents of fab/.

Build from source (with KiCad)

bash
git clone git@github.com:hustav/amstrad_isa.git
cd amstrad_isa

# Optional: regenerate the schematic / PCB from the Python source of truth
python3 scripts/generate_schematic.py
python3 scripts/generate_pcb.py

# Open the project
kicad kicad/ppc-isa-expansion.kicad_pro

The .kicad_sch and .kicad_pcb files were initially generated by the scripts in scripts/ — those scripts remain the source of truth for the netlist. The current .kicad_pcb has been routed by hand on top of that skeleton, so re-running generate_pcb.py would overwrite the routing. If you need to change the netlist, regenerate the skeleton and then redo the affected traces.

Key design choices

AreaChoiceReason
Form factorExternal-mount, ~120 × 99 mmClips onto the PPC's DB25 + DB37 expansion port
Slots3 × XT 8-bit ISA (62-pin)Standard pinout, matches prior-art boards
Power sourceDrawn from the PPC's internal PSU via the expansion cableNo external brick required
−5 V railTaken directly from connector B pin 17Tech Ref §1.18 confirms PPC sources −5 V
Component styleSMD only — SOIC, 0805, SIP networkHand-solderable with a fine-tip iron
Buffering2 × 74HC244 for A00..A07 + 8 control signalsDrives the loaded capacitance of 3 ISA slots
Data busUnbuffered, 10 kΩ pull-ups via RR1Per Amstrad Tech Ref CMOS-to-TTL note
Activity LEDRemoved (BEAT flip-flop omitted)Purely cosmetic; saves 1× SOIC-14 + RC bits

Full rationale lives in docs/design_notes.md.

Power topology — important caveat

The Amstrad PPC Technical Reference Manual (§1.18) states that the original Expansion Box is intended to supply power to the PPC, not draw from it. Connector B pin 20 is an EXT PWR input to the PPC's regulator.

This design reverses that flow — all four rails (+5 V, +12 V, −5 V, −12 V) are drawn from the PPC's expansion connector:

  • +5 V from connector A pin 1 and connector B pin 37
  • +12 V from connector B pin 36
  • −5 V from connector B pin 17
  • −12 V from connector B pin 18

Pin 20 (EXT PWR into the PPC) is left floating — voltage is never injected back into the PPC.

Safe for modern peripherals. An original floppy or 10 MB Winchester drew 5–10 W. A flash-based XT-IDE with a CF card draws ~100–200 mA on +5 V (0.5–1 W). Three flash peripherals are comfortably within the headroom the original PSU left for the Expansion Box port.

Not safe for original drives. If you try to use the original floppy or HDD controllers through this board, the PPC's PSU may brown out. In that case, build an externally-powered (ATX) variant instead.

Amstrad expansion pinout (Tech Ref §1.18)

Connector A (DB25 male on the board)

Mostly the address bus.

PinSignalNotes
1+5 Vpower input
2TCDMA terminal-count
3, 16, 4, 17, 5, 18, 6, 19, 7, 20, 8, 21A19..A08Unbuffered
9, 22, 10, 23, 11, 24, 12, 25A07b..A00bBuffered on PPC side; re-buffered by U2
13AENAddress enable
14GND
15DACK0

Connector B (DB37 male on the board)

Data bus, IRQs, DMA, control signals, power.

PinSignalNotes
1−20 Vunused, left NC
2–4, 21–23IRQ2..IRQ7Pass-through
5I/O RDYPass-through
6, 24–25DACK1..DACK3Pass-through
7I/O CHCKPass-through
8, 26–27DRQ1..DRQ3Pass-through
9OSC(b)14.318 MHz buffered on PPC side; re-buffered by U1
10–12, 28–31MEMR(b), IOR(b), ALE(b), MEMW(b), IOW(b), RESET(b), CK4(b)Re-buffered by U1
13–16, 32–35D7..D0Unbuffered; 10 kΩ pull-ups via RR1
17−5 Vpower input
18−12 Vpower input
19GND
20EXT PWRNOT USED — would feed the PPC's regulator
36+12 Vpower input
37+5 Vpower input

The full Amstrad PPC Technical Reference Manual is included in docs/ for reference.

Credits and prior art

This design builds on two community projects, both of which are externally-mounted boards that hang off the PPC's DB25 + DB37 connectors:

  • João (enide.net) — original internally-powered design. Provided the mechanical approach and power topology. Only the gerbers were available (the project is currently offline), so the schematic was reverse- engineered from those files and cross-referenced against the Retrotheory design below.
  • Retrotheory — amstradppc_expansion — ATX-powered variant. Provided the full schematic used as the electrical reference (74HC244 pinouts, the BEAT LED divider using a 74HC74, etc.).

Many thanks to both for sharing their work — without them this design would not exist.

License

Released under the MIT License. See LICENSE.

Parts

22
QtyValueFootprintReferences
610uFCapacitor_Tantalum_SMD:CP_EIA-3216-12_Kemet-S_HandSolderC3, C4, C5, C6, C7, C8
4MountingHole_M3MountingHole:MountingHole_3.2mm_M3_PadH1, H2, H3, H4
3ISA 8-bit slotISA connector:ISA_8Bit_SlotJ3, J4, J5
2100nFCapacitor_SMD:C_0805_2012MetricC1, C2
274HC244Package_DIP:DIP-20_W8.89mm_SMDSocket_LongPadsU1, U2
110kResistor_THT:R_Array_SIP9RR1
1470Resistor_SMD:R_0805_2012MetricR1
1DB25 MaleConnector_Dsub:DSUB-25_Pins_EdgeMount_P2.77mmJ1
1DB37 MaleConnector_Dsub:DSUB-37_Pins_EdgeMount_P2.77mmJ2
1POWERLED_SMD:LED_0805_2012MetricD1

Similar boards

  • 4 layers137 × 86 mmCIAA K60, the printed circuit board in 3D

    CIAA K60

    ciaa/Hardware

    Hardware de la CIAA

    467 parts216
  • 4 layers184.2 × 169.5 mmSB mini II, the printed circuit board in 3D

    SB mini II

    simonboak/SB-mini-II

    A homebrewed Apple II clone

    97 parts76MIT
  • 4 layers101 × 47 mmTdr, the printed circuit board in 3D

    Tdr

    loxodes/tdr

    Prototype time domain reflectometer/sampling oscilloscope

    240 parts58MIT
  • 2 layers120 × 66 mmIo daughterboard, the printed circuit board in 3D

    Io daughterboard

    kbob/MinimumViableSynth

    A virtual analog synthesizer with lots of knobs and buttons.

    136 parts28GPL-3.0
  • 2 layers99.1 × 99.1 mm6809v2, the printed circuit board in 3D

    6809v2

    jbevren/6809v2

    Code and design repository for the 6809v2 SBC: To be released at VCFMW 13

    60 parts22
  • 4 layers100 × 100 mm74HCT6526, the printed circuit board in 3D

    74HCT6526

    dmolinagarcia/74HCT6526

    74HCT6526

    93 parts14
  • 2 layers100 × 100 mmCaveboard, the printed circuit board in 3D

    Caveboard

    and3rson/caveboard

    https://youtu.be/Klj2Q3trmW8

    44 parts12MIT
  • 6 layers285 × 236 mmRa9704, the printed circuit board in 3D

    Ra9704

    Coin-OpCollection/Development-Documentation

    This repository contains technical information, documentation, and reverse-engineering details for the base platform systems of FPGA implementations released by Coin-Op Collection.

    228 parts11

Questions

How big is the Ppc isa expansion PCB?

It measures 113.4 × 87.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Ppc isa expansion use?

22 parts, built around the 74HC244D. 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 Ppc isa expansion KiCad files?

From the hustav/amstrad_isa repository on GitHub, at the commit this page was made from: the board is kicad/ppc-isa-expansion.kicad_pcb and its schematic kicad/ppc-isa-expansion.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Ppc isa expansion design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).