Skip to the content
4 layers174 × 134 mmProg, the printed circuit board in 3D

SD to AES project

Size
174 × 134 mm
Copper layers
4
Thickness
1.6 mm
Parts
147
Nets
290
Pads
1,097
Tracks, vias
3,176, 857
Pours
14
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
13 Oct 2026
Updated
22 Oct 2026

Overview

Prog is an open-source printed circuit board by DocteurPCB, from the DocteurPCB/SDAES repository on GitHub. It is a 4-layer board of 174 × 134 mm with 147 parts on 290 nets, routed with 3,176 tracks and 857 vias.

It is built around the ICE40HX4K-TQ144, 74LVC16244ADL and 74LVC16245ADL, with the 74AHCT125D, 74LVC1G07 and AP63203WU among its other parts. Its parts include 78 capacitors, 34 resistors, 13 ICs, 5 connectors and 3 diodes. It belongs with the RP2040 and FPGA and CPLD boards of this library.

Main components

7

README

README.md

SDAES — 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

DossierContenu
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).

text
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.neo

Résultats actuels de make test :

  • 18 tests Python : outils (dont descriptions de protections), firmware sur PC (chargement complet d'un .neo et comparaison des images mémoire), menu 68000 exécuté dans un émulateur ;
  • simulations HDL au niveau carte : tb_prog (FPGA P + V) et tb_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

  1. Architecture
  2. Signaux et niveaux 5 V
  3. Mémoires et timings
  4. Liaison RP2350 ↔ FPGA
  5. Menu et firmware
  6. Matériel et nomenclature
  7. Validation et feuille de route
  8. 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 mame fabrique leurs .neo) (détails) ; les tables SMA s'extraient du source de MAME avec neotool.py sma-from-mame. Banques de couche fixe NEO-CMC : KOF 2000, SVC, KOF 2003, Metal Slug 3/4 ; approchées pour Garou.

Parts

147
QtyValueFootprintReferences
61100nCapacitor_SMD:C_0603_1608MetricC2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24 +45
1410kResistor_SMD:R_0603_1608MetricR3, R4, R5, R6, R7, R8, R9, R12, R17, R30, R31, R32, R33, R34
1310uCapacitor_SMD:C_0805_2012MetricC1, C7, C25, C35, C36, C38, C48, C53, C63, C64, C66, C76, C77
1233Resistor_SMD:R_0603_1608MetricR13, R18, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29
9Entretoise M3MountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4, H5, H6, H7, H8, H9
4100Resistor_SMD:R_0603_1608MetricR10, R11, R15, R16
322uCapacitor_SMD:C_1206_3216MetricC3, C5, C6
374LVC16244APackage_SO:TSSOP-48_6.1x12.5mm_P0.5mmU3, U4, U5
20Resistor_SMD:R_0603_1608MetricR1, R2
225 MHz 3,3 VOscillator:Oscillator_SMD_Abracon_ASE-4Pin_3.2x2.5mm_HandSolderingX1, X2
2470Resistor_SMD:R_0603_1608MetricR14, R19
274LVC16245APackage_SO:TSSOP-48_6.1x12.5mm_P0.5mmU6, U7
2LEDLED_SMD:LED_0603_1608MetricD1, D2
2W9825G6KH-6Package_SO:TSOP-II-54_22.2x10.16mm_P0.8mmU11, U13
2iCE40HX4K-TQ144Package_QFP:TQFP-144_20x20mm_P0.5mmU10, U12
11uCapacitor_SMD:C_0603_1608MetricC8
14,7 µH 3 AInductor_SMD:L_Bourns_SRP5030TL1
174AHCT125Package_SO:TSSOP-14_4.4x5mm_P0.65mmU8
174LVC1G07Package_TO_SOT_SMD:SOT-23-5U9
1AES_PROGSDAES:AES_Edge_2x50_P2.54mmJ1
1AP2112K-1.2Package_TO_SOT_SMD:SOT-23-5U2
1AP63203WUPackage_TO_SOT_SMD:TSOT-23-6U1
1CONF PConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ3
1CONF VConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ4
1Câble PROG-CHAConnector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_VerticalJ2
1Raspberry Pi Pico 2SDAES:RaspberryPi_Pico2_SMDA1
1Retour menuButton_Switch_SMD:SW_SPST_TL3342SW1
1SS14 / BAT60ADiode_SMD:D_SOD-123D3
1microSDConnector_Card:microSD_HC_Wuerth_693072010801J5

More from DocteurPCB/SDAES

1
  • 4 layers173 × 134 mmCha, the printed circuit board in 3D

    Cha

    DocteurPCB/SDAES

    SD to AES project

    117 parts

Similar boards

  • 2 layers83.8 × 51 mmMega wifi, the printed circuit board in 3D

    Mega wifi

    jfryman/mw-cart

    MegaWiFi Mega Drive/Genesis Wi-Fi cartridge — Rev.C fork (TI TL16C550D UART, 20 MHz / 1.25 Mbaud). Upstream: gitlab.com/doragasu/mw-cart

    56 parts
  • 4 layers181.5 × 182.3 mmStencil, the printed circuit board in 3D

    Stencil

    jerry-kerenzikov/ytterbium

    Project files for Ytterbium modular CPU platform and Yprog programming tool

    421 partsCERN-OHL-S-2.0
  • 2 layers24 × 38 mmBSH Board, the printed circuit board in 3D

    BSH Board

    Bouni/BSH-Board

    A board that interfaces the DBUS of several home appliances and brings them into Home-Assitant via ESPHome

    75 parts65
  • 4 layers65 × 30 mmIcepi zero, the printed circuit board in 3D

    Icepi zero

    cheyao/icepi-zero

    An ECP5 FPGA Dev Board in a Pi Zero form

    163 parts869
  • 4 layers100 × 77.4 mmWasca, the printed circuit board in 3D

    Wasca

    hitomi2500/wasca

    Sega Saturn multipurporse cartridge

    145 parts80MIT
  • 2 layers100.5 × 60 mmEl Barato-64, the printed circuit board in 3D

    El Barato-64

    Hazematman/El-Barato-64

    Open source N64 development Cartridge

    55 parts24
  • 4 layers57.9 × 59.4 mmGW4302, the printed circuit board in 3D

    GW4302

    garrettsworkshop/GW4302

    Prototype RAM cartridge compatible with Commodore 1700/1750/1764 RAM Expansion Unit (REU)

    100 parts11

Questions

How big is the Prog PCB?

It measures 174 × 134 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Prog use?

147 parts, built around the ICE40HX4K-TQ144, 74LVC16244ADL, 74LVC16245ADL and 74AHCT125D. 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 Prog KiCad files?

From the DocteurPCB/SDAES repository on GitHub, at the commit this page was made from: the board is hardware/kicad/prog/prog.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 Prog design in my own project?

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