A converter for ZX Spectrum RGBI video signals to modern VGA and HDMI displays.
For detailed hardware and original software information, see the upstream project:
🔗 ZX_RGBI2VGA-HDMI
If you prefer working directly with the Raspberry Pi Pico SDK and CMake, check out the companion project:
🔗 zx-rgbi-to-vga-hdmi-PICOSDK
This version of the firmware:
- Uses the native Pico SDK instead of the Arduino framework
- Enables more direct control and customization of PIO programs
- Ideal for developers experimenting with low-level video signal processing or custom capture logic
- Video Output:
- VGA output with selectable resolutions: 640×480 @60Hz, 800×600 @60Hz, 1024×768 @60Hz, 1280×1024 @60Hz.
- HDMI (DVI) resolutions: 640×480 @60Hz and 720×576 @50Hz.
- Optional scanline effect on the VGA output at higher resolutions for a retro look.
- "NO SIGNAL" message when no input is detected.
- On-Screen Display (OSD) Menu:
- Full-featured graphical menu system overlaid on video output.
- Three-button control (UP, DOWN, SEL) for easy navigation.
- Real-time parameter adjustment with live preview.
- Tuning mode for video settings without restarting output.
- Quick VGA/DVI toggle via long SEL press (5 seconds).
- All settings can be saved to flash memory.
- Auto-timeout after 10 seconds of inactivity.
- See OSD Menu Guide for detailed usage instructions.
- Configuration via Serial Terminal:
- Alternative text-based menu system for headless configuration.
- Frequency presets for self-synchronizing capture mode (supports ZX Spectrum 48K/128K pixel clocks).
- Real-time adjustment of all parameters (changes applied immediately).
- Settings can be saved to flash memory without restart.
- Test/Welcome Screen: Styled after the ZX Spectrum 128K.
- Analog to Digital Conversion: Converts analog RGB to digital RGBI.
- Based on the project:
🔗 RGBtoHDMI
- Based on the project:
- Z80 CLK external clock source. Self-sync capture mode is now preferred.
- Video Output Optimization: Streamlined DMA handling for both VGA and DVI/HDMI output modes, resulting in more efficient memory usage and cleaner code structure.
- Buffer Management: Simplified buffer switching mechanisms for improved video processing performance.
- PlatformIO Integration: Full PlatformIO support with Arduino framework for easier development and dependency management.
- Arduino IDE builds: The project can also be built using the Arduino IDE for those who prefer a simpler setup (requires: Optimization -O3, USB Stack - Pico SDK).
- Memory Optimization: Reduced unnecessary memory allocations and pointer complexity in video output modules.
- Architecture Refinements: Better separation of concerns between video input capture and output generation systems.
- Maintainability: Cleaner code structure while preserving critical hardware-specific requirements for reliable video processing.