

SD to AES project
- Size
- 173 × 134 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 117
- Nets
- 258
- Pads
- 998
- Tracks, vias
- 3,119, 787
- Pours
- 13
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 13 Oct 2026
- Updated
- 22 Oct 2026
Overview
Cha is an open-source printed circuit board by DocteurPCB, from the DocteurPCB/SDAES repository on GitHub. It is a 4-layer board of 173 × 134 mm with 117 parts on 258 nets, routed with 3,119 tracks and 787 vias.
It is built around the ICE40HX4K-TQ144, 74LVC16244ADL and 74AHCT125D, with the 74AHCT16244DGG, 74AHCT244D and 74LVC1G07 among its other parts. Its parts include 73 capacitors, 15 ICs, 12 resistors, 4 connectors and 2 crystals. It belongs with the FPGA and CPLD boards of this library.
Main components
10ICE40HX4K-TQ144
TQFP-144(20x20)-40℃~+100℃ 1.14V~1.26V 107 3520 440 81920bit iCE40 HX TQFP-144(20x20) Programmable Logic Device (CPLDs/FPGAs) ROHSLatticeProgrammable Logic Device (CPLDs/FPGAs)74LVC16244ADL
SSOP-48-300mil-40℃~+125℃ 1 1.2V~3.6V 16 2.2ns@3.3V,50pF 24mA 24mA 74LVC 80uA Tri-State Unidirectional SSOP-48-300mil Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffer/Driver/Transceiver74AHCT125D
SOP-14-40℃~+125℃ 1 4 4.3ns@5V,50pF 4.5V~5.5V 40uA 74AHCT 8mA 8mA Schmitt trigger Tri-State Unidirectional SOP-14 Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffer/Driver/Transceiver74AHCT16244DGG
TSSOP-48-6.1mm-40℃~+125℃ 10.5ns@5V,15pF 16 4.5V~5.5V 40uA 74AHCT 8mA 8mA Edge rate controllable、Output enable、Level shifting Tri-State Unidirectional TSSOP-48-6.1mm Buffers, Drivers, Receivers, Transceivers ROHSTexas InstrumentsBuffer/Driver/Transceiver74AHCT244D
SOIC-20-300mil-40℃~+125℃ 2 4 4.5V~5.5V 5ns@5V,50pF 74AHCT 80uA 8mA 8mA Schmitt trigger Tri-State Unidirectional SOIC-20-300mil Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffers, Drivers, Receivers, Transceivers74LVC1G07
SOT-353-40℃~+105℃ 1 1 1.65V~5.5V 1.6ns@5.5V,50pF 24mA 4uA 74LVC Open-drain Power-off isolation、Level shifting Unidirectional SOT-353 Buffers, Drivers, Receivers, Transceivers ROHSWuxi I-core ElecBuffers, Drivers, Receivers, TransceiversAP63203WU
TSOT-23-6-40℃~+85℃@(TA) 1 1.1MHz 22uA 2A 3.3V 3.8V~32V Buck Built-in Fixed Overcurrent Protection、Light load efficient mode、Cycle-by-cycle current limiting、Hiccup current limiting、EMI optimization (spread spectrum) Step-down type Yes TSOT-23-6 DC-DC Converters ROHSDiodes IncorporatedDC-DC Converters74AHCT1G32GV
SOT-23-5L-40℃~+125℃ 1 2 2V 3.7V 4.5V~5.5V 40uA 550mV 74AHCT1G32 8.5ns@5.5V,15pF 800mV OR Gate Overvoltage-tolerant input TTL compatible CMOS SOT-23-5L Logic Gates ROHSMDDLogic GatesAS4C32M16SB-6TIN
TSOP-54-10.2mm-40℃~+85℃ 166MHz 3V~3.6V 512Mbit TSOP-54-10.2mm SDRAM ROHSAlliance MemorySDRAMIS61WV10248EDBLL-10TLI
TSOPII-44-10.2mm-40℃~+85℃ 10ns 15mA 2.4V~3.6V 55mA 8Mbit Auto power-down function、Built-in ECC function Parallel Port (Parallel) TSOPII-44-10.2mm SRAM ROHSISSISRAM
README
README.mdSDAES — cartouche SD pour Neo Geo AES
Cartouche ouverte pour Neo Geo AES qui charge les jeux depuis une carte
microSD, dans l'esprit de la NeoSD : un menu s'affiche sur la console, on
choisit un fichier .neo, la cartouche le charge en mémoire et la console
redémarre dessus. Tous les composants se soudent au fer : aucun BGA ni
QFN.
État : conception + logiciel vérifiés en simulation, pas encore de prototype matériel. Le code FPGA, le menu, le firmware et les outils sont écrits et testés automatiquement (voir plus bas) ; les circuits imprimés restent à dessiner. Le brochage AES est relevé sur le wiki neogeodev (
hardware/aes_connector.csv) ; son orientation reste à confirmer sur une vraie cartouche (docs/07-validation-et-feuille-de-route.md).
Principe
- 4 FPGA Lattice iCE40 en TQFP-144 (un par bus de la console : programme 68000, son ADPCM, sprites, couche fixe + Z80) répondent en temps réel et remplacent les ROM et les puces de cartouche (NEO-273, NEO-ZMC2, NEO-PCM2, banques P et Z80). Chaîne de développement libre (Yosys, nextpnr).
- 3 SDRAM + 1 SRAM en TSOP contiennent le jeu (jusqu'à 24 Mo de P, 32 Mo de V, 64 Mo de C : tous les jeux commerciaux standards).
- Un Raspberry Pi Pico 2 (RP2350, ~5 €) lit la carte SD et charge les
jeux (~9 Mo/s). Un Raspberry Pi « Linux » ne convient pas pour le bus
lui-même (trop peu de GPIO, latence) : voir
docs/01-architecture.md. - Coût matière estimé : ≈ 70-95 € par cartouche en petite série, montage à la main.
Organisation du dépôt
| Dossier | Contenu |
|---|---|
docs/ | architecture, signaux, timings, liaison, menu/firmware, nomenclature, validation |
hdl/ | Verilog des 4 FPGA (prog/ : P et V, cha/ : C et SM, common/) + bancs de test (sim/) |
menu/ | menu Neo Geo : programme 68000 (68k/) et pilote Z80 (z80/) |
firmware/rp2350/ | firmware du Pico 2 (SDK Pico + FatFs SDIO) et test sur PC |
protocol/ | protocole menu ↔ RP2350, partagé |
tools/ | neotool.py (.neo, police, BRAM, code de sécurité, bootlegs avec mame_sets.py), tests |
hardware/ | brochage du connecteur AES (aes_connector.csv), gabarits de contraintes FPGA (.pcf), futurs projets KiCad |
Construire et tester
Dépendances (Ubuntu/Debian) : iverilog, gcc-m68k-linux-gnu, z80asm,
console-setup-linux (police), Python 3 ; facultatif : yosys +
nextpnr-ice40 (ou pip install yowasp-yosys yowasp-nextpnr-ice40),
pip install machine68k (émulation du menu).
make # menu + fichiers d'init BRAM (hdl/build/*.hex)
make SECURITY_FROM=un_jeu.neo # idem, avec le code de sécurité requis par le BIOS
make test # tous les tests (Python + simulations HDL)
make sdaes_test.neo # ROM de test à copier sur la carte SD
make -C hdl lint pnr YOSYS=yowasp-yosys NEXTPNR=yowasp-nextpnr-ice40 # synthèse + placement-routage des 4 FPGA
python3 tools/neotool.py info jeu.neoRésultats actuels de make test :
- 18 tests Python : outils (dont descriptions de protections), firmware sur PC (chargement complet d'un
.neoet comparaison des images mémoire), menu 68000 exécuté dans un émulateur ; - simulations HDL au niveau carte :
tb_prog(FPGA P + V) ettb_cha(FPGA C + SM) en SUCCÈS ; lecture du programme 68000 en 79 ns (126 ns au pire cas) pour une limite estimée à ~125-150 ns ; - placement-routage des 4 FPGA à 101-114 MHz pour 100 MHz visés.
Documentation
- Architecture
- Signaux et niveaux 5 V
- Mémoires et timings
- Liaison RP2350 ↔ FPGA
- Menu et firmware
- Matériel et nomenclature
- Validation et feuille de route
- Cartouches protégées
Avertissements
- Aucun BIOS, ROM ou code SNK n'est inclus. Le code de sécurité exigé par le BIOS est recopié, à la construction, depuis un jeu que vous possédez.
- Protections : SMA (KOF 99, Garou, Metal Slug 3, KOF 2000), PVC (Metal
Slug 5, SVC Chaos, KOF 2003), KOF 98, PRO-CT0 (Fatal Fury 2, Super
Sidekicks), Metal Slug X (P1 corrigée au chargement), Metal Slug 5 Plus
et les bootlegs de Metal Slug 5, SVC Chaos et KOF 2003 sont pris en
charge (
neotool mamefabrique leurs.neo) (détails) ; les tables SMA s'extraient du source de MAME avecneotool.py sma-from-mame. Banques de couche fixe NEO-CMC : KOF 2000, SVC, KOF 2003, Metal Slug 3/4 ; approchées pour Garou.
Parts
117| Qty | Value | Footprint | References |
|---|---|---|---|
| 57 | 100n | Capacitor_SMD:C_0603_1608Metric | C2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24 +41 |
| 12 | 10u | Capacitor_SMD:C_0805_2012Metric | C1, C7, C27, C37, C38, C40, C50, C55, C65, C66, C68, C73 |
| 9 | Entretoise M3 | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4, H5, H6, H7, H8, H9 |
| 4 | 100 | Resistor_SMD:R_0603_1608Metric | R5, R6, R10, R11 |
| 4 | 10k | Resistor_SMD:R_0603_1608Metric | R3, R4, R7, R12 |
| 4 | 74LVC16244A | Package_SO:TSSOP-48_6.1x12.5mm_P0.5mm | U3, U4, U5, U6 |
| 3 | 22u | Capacitor_SMD:C_1206_3216Metric | C3, C5, C6 |
| 2 | 0 | Resistor_SMD:R_0603_1608Metric | R1, R2 |
| 2 | 25 MHz 3,3 V | Oscillator:Oscillator_SMD_Abracon_ASE-4Pin_3.2x2.5mm_HandSoldering | X1, X2 |
| 2 | iCE40HX4K-TQ144 | Package_QFP:TQFP-144_20x20mm_P0.5mm | U12, U14 |
| 1 | 1u | Capacitor_SMD:C_0603_1608Metric | C8 |
| 1 | 33 | Resistor_SMD:R_0603_1608Metric | R8 |
| 1 | 4,7 µH 3 A | Inductor_SMD:L_Bourns_SRP5030T | L1 |
| 1 | 470 | Resistor_SMD:R_0603_1608Metric | R9 |
| 1 | 74AHCT125 | Package_SO:TSSOP-14_4.4x5mm_P0.65mm | U8 |
| 1 | 74AHCT16244 | Package_SO:TSSOP-48_6.1x12.5mm_P0.5mm | U7 |
| 1 | 74AHCT1G32 | Package_TO_SOT_SMD:SOT-23-5 | U10 |
| 1 | 74AHCT244 | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U9 |
| 1 | 74LVC1G07 | Package_TO_SOT_SMD:SOT-23-5 | U11 |
| 1 | AES_CHA | SDAES:AES_Edge_2x50_P2.54mm | J1 |
| 1 | AP2112K-1.2 | Package_TO_SOT_SMD:SOT-23-5 | U2 |
| 1 | AP63203WU | Package_TO_SOT_SMD:TSOT-23-6 | U1 |
| 1 | AS4C32M16SB-6TIN | Package_SO:TSOP-II-54_22.2x10.16mm_P0.8mm | U13 |
| 1 | CONF C | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J2 |
| 1 | CONF SM | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J3 |
| 1 | Câble PROG-CHA | Connector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_Vertical | J4 |
| 1 | IS61WV10248EDBLL-10TLI | Package_SO:TSOP-II-44_10.16x18.41mm_P0.8mm | U15 |
| 1 | LED | LED_SMD:LED_0603_1608Metric | D1 |
More from DocteurPCB/SDAES
1- 4 layers174 × 134 mm

Similar boards
- 2 layers104.1 × 71.1 mm

Minifp
eigenco/frankenpi
This is an experimental project to connect Raspberry Pi with the help of cheap Cyclone IV FPGA board to 8-bit ISA bus to act as multiple different devices.
69 parts139 - 6 layers304.8 × 243.8 mm

- 4 layers181.5 × 182.3 mm

Stencil
jerry-kerenzikov/ytterbium
Project files for Ytterbium modular CPU platform and Yprog programming tool
421 partsCERN-OHL-S-2.0 - 4 layers70 × 78 mm

- 4 layers85.3 × 78 mm

2067-Z8S180
dennowiggle/Z8S180-WTM
Repository for sharing Z8S180-WTM design changes only. A private repository.
53 parts1LGPL-2.1 - 2 layers100 × 100 mm

RamRomBoard
roberto314/Unicomp3
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.
97 partsBSD-2-Clause - 4 layers92 × 99.5 mm

Granit
laenzlinger/granit
Custom carrier board for Raspberry Pi CM4/CM5 — minimal offsite backup appliance with JMS578 USB-to-SATA bridge
120 parts2CERN-OHL-P-2.0 - 2 layers81.9 × 99.4 mm

Questions
How big is the Cha PCB?
It measures 173 × 134 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Cha use?
117 parts, built around the ICE40HX4K-TQ144, 74LVC16244ADL, 74AHCT125D and 74AHCT16244DGG. 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 Cha KiCad files?
From the DocteurPCB/SDAES repository on GitHub, at the commit this page was made from: the board is hardware/kicad/cha/cha.kicad_pcb and its schematic hardware/kicad/cha/buffers.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Cha design in my own project?
Its repository states no licence, so its author keeps all rights: ask DocteurPCB before reusing the design.