Professional Floppy Disk & Cartridge Preservation Platform
Features • Hardware • Firmware • Modules • Getting Started
UFI is a professional-grade preservation platform combining a Raspberry Pi CM5 with an STM32H723 flux capture engine. Designed for archivists, collectors, and retro enthusiasts who need reliable, high-resolution disk and cartridge preservation.
| Parameter | Value |
|---|---|
| Flux Resolution | 10 ns |
| MCU | STM32H723ZGT6 @ 550 MHz |
| Host | Raspberry Pi CM5 |
| USB | High-Speed 480 Mbit/s |
| Network | Gigabit Ethernet |
| System | Connector | Status |
|---|---|---|
| PC/DOS | 34-pin Shugart | ✅ |
| Amiga | DB-23 | ✅ |
| Apple II | 19-pin | ✅ |
| C64 IEC | DIN-6 | ✅ |
- ✅ High-resolution flux capture (10ns)
- ✅ Write support with precompensation
- ✅ Copy protection analysis
- ✅ Web-based interface
- ✅ Modular expansion system
| Board | Size | Layers | Description |
|---|---|---|---|
| UFI Mainboard | 150×100mm | 4 | Full-featured with HDMI |
| UFI Headless | 110×85mm | 4 | Network-only, compact |
| UFI Compact | 110×85mm | 4 | Reduced feature set |
| GB/GBA Dumper | 80×50mm | 2 | Standalone cartridge dumper |
| MIG Dumper | 100×60mm | 2 | EPROM/Mask ROM reader |
kicad/
├── *.kicad_sch # Schematics
├── *.kicad_pcb # PCB layouts
├── footprints/ # Custom footprints (16)
├── symbols/ # Custom symbols
└── production/ # BOM & CPL for assembly
4,700+ lines of C for the STM32H723 flux engine.
| Module | Lines | Function |
|---|---|---|
ufi_main.c |
617 | Main loop, initialization |
ufi_flux.c |
288 | DMA-based flux capture |
ufi_write.c |
329 | Write with precompensation |
ufi_drive.c |
471 | Multi-interface drive control |
ufi_iec.c |
485 | C64 IEC serial protocol |
ufi_usb.c |
481 | USB CDC communication |
ufi_debug.c |
352 | Diagnostics & testing |
cd firmware
mkdir build && cd build
cmake -G Ninja ..
ninjast-flash write ufi_firmware.bin 0x08000000Expansion modules connect via the 40-pin header.
Standalone Game Boy cartridge dumper.
- MCU: RP2040 @ 133 MHz
- Supports: GB, GBC, GBA (up to 32MB)
- MBC: All types supported
- Cost: ~15€
Universal EPROM/Mask ROM reader.
- MCU: STM32G0B1 @ 64 MHz
- Supports: 2716 to 27C322 (2KB-4MB)
- Socket: ZIF-40
- Cost: ~13€
Nintendo Switch cartridge interface.
- KiCad 8.0+
- ARM GCC Toolchain
- CMake 3.20+
- STM32CubeH7 HAL
git clone https://github.com/Axel051171/UniversalFluxInterface.git
cd UniversalFluxInterfacekicad kicad/UFI_Headless.kicad_procd firmware
mkdir build && cd build
cmake ..
make -j4| Document | Description |
|---|---|
| System Architecture | Overall system design |
| USB Protocol | Command reference |
| API Documentation | Software API |
| Manufacturing Guide | PCB production |
| Hardware Testing | Test procedures |
| Component | Status |
|---|---|
| Firmware | ✅ Complete |
| KiCad Schematics | ✅ Complete |
| PCB Layouts | ✅ Complete |
| GB/GBA Module | ✅ Complete |
| MIG Module | ✅ Complete |
| CM5 Software | 🔄 In Progress |
| Web Interface | 🔄 In Progress |
MIT License - see LICENSE
Contributions welcome! See CONTRIBUTING.md
- Greaseweazle, KryoFlux, Applesauce - Inspiration
- C64 preservation community
- Raspberry Pi Foundation
Preserving digital history, one flux transition at a time.
