Hasty Briefsbeta

Bilingual

Building a 24-bit arcade CRT display adapter from scratch

7 days ago
  • #STM32
  • #CRT
  • #VGA
  • Frank and the author acquired an arcade machine (RCade) with a CRT display, initially driven by a Raspberry Pi.
  • The CRT required a custom solution due to its non-standard resolution (336x262) and the need for better color depth than the Pi's 18-bit.
  • The author decided to build a USB-connected CRT display adapter to interface with a more powerful computer.
  • VGA protocol basics were explained, detailing how it syncs with CRT displays using R, G, B, HSYNC, and VSYNC signals.
  • First attempt used an RP2040 microcontroller with PIO for precise VGA signal generation, achieving a proof-of-concept but limited by USB FS speed (11 Mbps).
  • Discovered the GUD kernel module, a USB display adapter protocol, and adapted it for the project, improving compatibility and efficiency.
  • Switched to an STM32H723 for USB HS support but faced issues requiring an external PHY, leading to a redesign with STM32H750IBT.
  • Final board design included USB HS, VGA output, 8-bit DACs, and HyperRAM, with meticulous routing for signal integrity.
  • Successfully demonstrated the adapter in the RCade, achieving 24-bit color and 60 Hz refresh rate, a significant improvement.
  • Future improvements include audio support, better buffering, and protocol documentation.