Skip to content

osemenyuk-114/zx-rgbi-to-vga-hdmi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zx-rgbi-to-vga-hdmi

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


Alternative Firmware Build: Native Pico SDK

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

Features

Software

  • 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.

Hardware

  • Analog to Digital Conversion: Converts analog RGB to digital RGBI.

Removed Features

  • Z80 CLK external clock source. Self-sync capture mode is now preferred.

Recent Improvements

Performance Improvements

  • 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.

Development Experience

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

Code Quality

  • 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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published