

Sdcard prototype
SD-card cartridge for the P2000T
- Size
- 82.6 × 67.3 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 43
- Nets
- 57
- Pads
- 196
- Tracks, vias
- 439, 40
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 17 Mar 2024
- Updated
- 5 Jun 2026
Overview
Sdcard prototype is an open-source printed circuit board by ifilot, from the ifilot/p2000t-sdcard repository on GitHub. It is a 2-layer board of 82.6 × 67.3 mm with 43 parts on 57 nets, routed with 439 tracks and 40 vias.
It is built around the 74HC00D, 74HC123D and 74HC139D, with the 74HC163D, 74HC165D and 74HC595 among its other parts. Its parts include 11 capacitors, 8 ICs, 5 resistors, 3 connectors and 2 diodes. It belongs with the retro computing and games boards of this library.
Main components
674HC00D
SOP-14-40℃~+125℃ 1.5V、3.15V、4.2V 1.9V、3.7V、5.9V 100mV、400mV、400mV 2 2V~6V 4 40uA 5.2mA 5.2mA 500mV~1.8V 74HC Series 7ns@6V,50pF NAND Gate SOIC-14 Logic Gates ROHSNexperiaLogic Gates74HC123D
SOIC-16-40℃~+125℃ 160uA 2 2V~6V 5.2mA 5.2mA 65ns 74HC Monostable Schmitt trigger SOIC-16 Monostable Multivibrators ROHSNexperiaMonostable Multivibrators74HC139D
SO-16-40℃~+125℃ 11ns@6.0V,50pF 160uA 2/4 2V~6V 74HC Decoder Single Supply SOIC-16 Signal Switches, Multiplexers, Decoders ROHSNexperiaSignal Switches / Encoders & Decoders / Multiplexers74HC163D
SO-16-40℃~+125℃ 1 16ns@6V,50pF 2V~6V 4 500mW 55MHz 74HC Divide-by-2 Reset function、Cascade counter、Synchronous counting Rising Edge Synchronous Synchronous Up Counter SO-16 Counters, Dividers ROHSNexperiaCounters / Dividers74HC165D
SO-16-40℃~+125℃ 1 28ns@6V,50pF 2V~6V 35MHz 500mW 74HC 8 Parallel or Serial to Serial SOIC-16 Shift Registers ROHSNexperiaShift Registers74HC595
SOP-16-40℃~+85℃ 1 100ns@5V,50pF 10MHz 2V~6V 74HC 8 Serial-to-Serial or Parallel Tri-State SOP-16 Shift Registers ROHSGRShift Registers
README
README.mdP2000T SD-CARD cartridge
Table of contents
- Purpose
- Downloads
- How it functions
- Images
- Commands
- Compilation instructions
- Repository contents
- Building the hardware
- Ordering a cartridge
- Internal SD-card board
- Formatting SD-card
- License
[!TIP] Have questions or comments about the P2000T SD-card cartridge? Join the conversation and chat with the developers on our Discord server.
YouTube
Check out the YouTube video below for a detailed review of the SD-card cartridge.
Purpose
Perhaps the most elegant solution for loading CAS files into your P2000T or making backups of your tapes is via a cartridge that hosts an SD-card slot. Even the smallest SD-cards have enough capacity to store the complete P2000T tape archive. Reading from such an SD-card is non-trivial and requires both a hardware solution to interface with the I/O port of the P2000T as well as a software solution to navigate through the files hosted on a FAT32 partition. This repository contains the PCB for interfacing a P2000T with an SD-card and the necessary software routines to grab .CAS files from said SD card and load them into memory.
[!TIP] Documentation
- Detailed documentation included how-to procedures can be found here
- There is also a manual in Dutch
available.
Downloads
Read the section "How it functions" to understand what each download file does.
[!WARNING] The files shown here cater specifically to PCB version 6 or later where the SD-card listens to I/O port 0x4X. Earlier version of the PCB are no longer actively maintained.
[!TIP]
How it functions
To interface with the SD-card, an SD-card slot is connected to the I/O port of the P2000T. Interfacing with the SD-card proceeds via the SPI protocol which is encoded in hardware (in contrast to bit-banging the protocol in software). From the perspective of the P2000T, simple 1-byte instructions can be sent and retrieved from the SD-card. By sending specific commands, data is sent or retrieved from the SD-card.
While the SLOT2 cartridge (which hooks up to the I/O port of the P2000T) hosts
the circuitry to interface with the SD-card, a SLOT1 cartridge is required that
hosts the software. In order to run BASIC programs that are stored on the
SD-card as .CAS files, the regular BASIC environment and the required
routines to interface with the SD-card need to be present in memory. For this
reason, a modified version of the BASIC environment is used which upon boot will
load a launcher application from the ROM chip on the SLOT2 cartridge into main
memory. This launcher application allows the user to navigate the SD-card and
load BASIC programs into memory and run these. Detailed instructions on this
process are found here.
The launcher application needs to be placed on the ROM chip by means of a
flasher program. The flasher program is a different SLOT1 cartridge which can be
downloaded from the download section. The flasher program will
copy a LAUNCHER.BIN file from the root folder of the SD-card to the ROM chip
on the SLOT2 cartridge. This procedure is also used to update the launcher
application. Details on this process can be found here.
It is also possible to make copies of existing tapes to the SD-card. For this
purpose, a CASDUMP.PRG program is written. These special types of programs can
be loaded from the SD-card and executes via the launcher application. After
completion, one automatically returns to the launcher, allowing one to load one
of the freshly copied programs.
Images
SLOT2 cartridge enclosure and populated PCB.

Screenshots of navigation and execution of .CAS files.

Commands
Upon booting into the LAUNCHER application, the user interfaces with the SD-card using a set of short commands. Below, the list of commands is provided
| Command | Description |
|---|---|
ls | List contents of current folder |
lscas | List contents of current folder, listing contents of CAS files |
cd <number> | Change directory |
run <number> | Run .CAS file |
hexdump <number> | Performs a 120-byte hexdump of a file |
fileinfo <number> | Provides location details of a file |
ledtest | Performs a quick test on the read/write LEDs |
stack | Show current position of the stack pointer |
dump<XXXX> | Perform a 120-byte hexdump of main memory starting at 0xXXXX |
romdump<XXXX> | Perform a 120-byte hexdump of cartridge ROM starting at 0xXXXX |
ramdump<XXXX> | Perform a 120-byte hexdump of cartridge RAM starting at 0xXXXX |
Note that <number> needs to replaced with the specific number of a file. Users
who are familiar with command line interfaces are probably used to specifying
filenames rather than numbers. This reason this approach was chosen is mainly
because it is simpler to program and furthermore a bit quicker to type.
Compilation instructions
Compilation is done using the z88dk Docker
by means of compile.sh. To compile the launcher, run
cd src
./compile launcherand for the flasher utility
cd src
./compile flasherRepository contents
- Cartridge cases
- PCB layout files (KiCAD)
- Modified BASIC ROM source files
- Launcher and Flasher programs
- Custom programs
Building the hardware
Gerber files
To create your own SLOT2 cartridge, download the GERBER files from
here, put them in a .ZIP file and send
them to your favorite PCB print farm. The author of this repository mainly uses
JLCPCB, but plenty of alternatives are available. The
SLOT2 PCB has four layers. It is recommended to apply an ENIG (gold) coating and
chamfer the edge connector for facile insertion into the P2000T. After ordering,
one needs to either hand-solder the components (which can be tricky for the SMD
chips) or alternatively make use of an assembly service by which the PCB print
farm will solder these components for you.
PCB assembly service
The folder pcb/port2-sdcard-interface contains
port2-sdcard-interface_bom_bot.csv and port2-sdcard-interface-bottom-pos.csv
which can be used for the JLCPCB assembly service. An example of the part
placement can be found in the image below. At the time of writing, two
components were unavailable, being the memory chip 62128 and a 0 ohm resistor,
which is the reason that these two parts are missing. Note that all through-hole
parts, e.g. LEDs, oscillator and PLCC32 socket, have to be hand-soldered in.

Ordering a cartridge
It is also possible to order a cartridge (typically there are always a few
of them in stock). If you are interested, feel free to contact the author of
this repository at ivo at ivofilot dot nl to discuss pricing and shipping.
Internal SD-card board
This project also includes an internal SD-card board designed to mount on top of the main baseboard inside the P2000T. In addition to the SD-card reader functionality, the board also provides 64 KiB of additional memory, making it an all-in-one solution.
To install this board, you will need two custom brackets. You can find the necessary bracket files here.

Formatting SD-card
The way that the SD-card is formatted is critical. The SD-card needs be formatted using a MBR/FAT32 partition. Often, directly formatting the SD-card via Windows Explorer or similar works well, but sometimes a more rigorous procedure is needed, which is explained below.
- Type
WINDOWS + Rand runCMD. - Run
diskpart. - Type
list diskfollowed byselect disk <NR>where<NR>corresponds to your SD-card. - Type
clean. You get a response withDiskPart succeeded in cleaning the disk.. - Type
list volume, followed byselect volume <ID>where<ID>corresponds to your SD-card drive. - Type
convert mbr. You should get the responseDiskPart successfully converted the selected disk to MBR format.. - Type
create partition primary. The response should beDiskPart succeeded in creating the specified partition.. - Finally, type
format fs=fat32 quick label="P2000T", after which the response isDiskPart successfully formatted the volume..
Your SD-card should now be ready to work in the SD-cartridge. Of course, you still need to copy files to it in order to load something of it.
License
- All software is shared under the GPL v3 license.
- All hardware (e.g. KiCAD files and .stl files) are shared under the CERN-OHL-S license.
- All documentation is shared under the CC-BY-SA 4.0 license.
Parts
43| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | 0.1uF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C4, C5, C6, C7, C8, C9, C10, C11 |
| 4 | GND | TestPoint:TestPoint_Pad_4.0x4.0mm | TP5, TP6, TP7, TP8 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3_DIN965 | H1, H2, H3, H4 |
| 3 | 74HC00 | Package_DIP:DIP-14_W7.62mm_Socket | U3, U4, U6 |
| 2 | 10k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1, R4 |
| 2 | 22pF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C1, C2 |
| 2 | R | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R2, R3 |
| 1 | 16MHz | Oscillator:Oscillator_DIP-14 | X1 |
| 1 | 1k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R5 |
| 1 | 220uF | Capacitor_THT:CP_Radial_D6.3mm_P2.50mm | C3 |
| 1 | 74HC123 | Package_DIP:DIP-16_W7.62mm_Socket | U1 |
| 1 | 74HC139 | Package_DIP:DIP-16_W7.62mm_Socket | U2 |
| 1 | 74HC163 | Package_DIP:DIP-16_W7.62mm_Socket | U5 |
| 1 | 74HC165 | Package_DIP:DIP-16_W7.62mm_Socket | U7 |
| 1 | 74HC595 | Package_DIP:DIP-16_W7.62mm_Socket | U8 |
| 1 | ACT | LED_THT:LED_D5.0mm | D1 |
| 1 | CLK | TestPoint:TestPoint_THTPad_2.5x2.5mm_Drill1.2mm | TP3 |
| 1 | DATA PORT | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical | J1 |
| 1 | MISO | TestPoint:TestPoint_THTPad_2.5x2.5mm_Drill1.2mm | TP2 |
| 1 | MOSI | TestPoint:TestPoint_THTPad_2.5x2.5mm_Drill1.2mm | TP1 |
| 1 | SD Card Board | Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical | J3 |
| 1 | SEL | LED_THT:LED_D5.0mm | D2 |
| 1 | SIGNAL PORT | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical | J2 |
| 1 | ~{CS} | TestPoint:TestPoint_THTPad_2.5x2.5mm_Drill1.2mm | TP4 |
The 42 most common of 43 parts.
Questions
How big is the Sdcard prototype PCB?
It measures 82.6 × 67.3 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Sdcard prototype use?
43 parts, built around the 74HC00D, 74HC123D, 74HC139D and 74HC163D. 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 Sdcard prototype KiCad files?
From the ifilot/p2000t-sdcard repository on GitHub, at the commit this page was made from: the board is pcb/sdcard-prototype/sdcard-prototype.kicad_pcb and its schematic pcb/internal-sdcard-interface/internal-sdcard-interface.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Sdcard prototype design in my own project?
Its repository states no licence, so its author keeps all rights: ask ifilot before reusing the design.
More from ifilot/p2000t-sdcard
2- 2 layers219 × 88 mm

- 4 layers85.1 × 100 mm

Similar boards
- 2 layers100 × 100 mm

1802-Mini SPI DMA
arhefner/1802-Mini-SPI-DMA
SPI Expansion Board for the 1802/Mini Computer
44 parts2MIT - 2 layers200 × 150 mm

- 2 layers135 × 184.5 mm

EMP
stonedDiscord/Automatenplatinen
Reverse engineerte Hardware aus deutschen Spielautomaten.
196 parts5BSD-2-Clause - 2 layers249.4 × 122 mm

PCB Controller
Sutthiphong-H/project-flip-disc
FlipDisc Project was made for education of Project. Chadsadakorn Piriyasiriphan Jadesalit Suriyanimitsuk Sutthiphong Hongkham
159 parts - 2 layers234 × 100 mm

V2b
KITTY-6502/hardware
the KITTY is a 65c02 homebrew kit microcomputer designed around text mode graphics and cartridge media. It is fully open source, and uses exclusively in-production parts.
147 parts - 2 layers

- 2 layers335 × 250 mm

- 2 layers299.7 × 198.1 mm

Cisc-8
nailed-barnacle/Cisc-8-ttl-processor
A cut-down version of the 8080 processor using HCTTL and including a discrete ALU and instruction decoder
319 parts1MIT

available.