Es ist schon eine Weile her, dass ich mir Zeit genommen habe, über eines meiner letzten Projekte zu berichten. Diesmal geht es um ein Thema, das zwei meiner großen Leidenschaften vereint: Die Faszination für Retro-Gaming aus meiner Jugend und die Möglichkeiten moderner Mikrocontroller-Technik.
Wer in den 1970er Jahren aufgewachsen ist, kennt es noch: Pong, eines der ersten kommerziell erfolgreichen Videospiele überhaupt. Zwei Paddles, ein Ball, ein Bildschirm – mehr brauchte es nicht für stundenlangen Spielspaß. Was damals mit dedizierter Analog-Schaltungstechnik realisiert wurde, lässt sich heute elegant mit einem einzigen Mikrocontroller umsetzen.
Die Herausforderung dabei: Ein echtes analoges PAL-Videosignal direkt aus einem ESP32 zu erzeugen. Kein HDMI, kein VGA – sondern gutes altes Composite-Video (FBAS), wie es ein guter alter Röhrenfernseher versteht.
Ursprünglich habe ich das Projekt für den FH-Day an der Fachhochschule Kärnten entwickelt. Die Idee war, Studierenden und Besuchern zu zeigen, was mit moderner Embedded-Hardware möglich ist – und gleichzeitig eine Brücke zur Technikgeschichte zu schlagen.
Das Vectorgameboard V1.0 – Hardware nach Maß
Für dieses Projekt habe ich nicht nur Software gebastelt, sondern auch eine dedizierte Platine entwickelt: Das Vectorgameboard V1.0. Diese Platine soll ein echtes "All-in-One"-Design sein (oder in künftigen Revisionen werden) und alle notwendigen Komponenten auf einem Board vereinen:
![]() |
| die Platine mit ESP32 als Rechenknecht |
Hardware-Features im Überblick:
- ESP32 als Herzstück
- Zwei Potentiometer für die Paddle-Steuerung (analoges Spielgefühl!)
- Zwei Taster für Modusauswahl und Spielstart
- Video-Ausgang über RCA-Buchse (Composite/FBAS)
- Audio-System mit integriertem Verstärker und kleinem Lautsprecher
- Externer DAC für hochpräzise Vektordarstellung (X-Y-Modus)
Was das Board besonders macht: Es ist nicht nur für PAL/NTSC-Composite-Video ausgelegt, sondern auch für den X-Y-Modus. Das bedeutet, man kann es auch an ein Oszilloskop anschließen und damit klassische Vektor-Grafiken darstellen – ganz wie bei den alten Vektor-Spielautomaten der 1980er Jahre.
Die kompletten Schaltpläne und Eagle-Layouts sind im GitHub-Repository verfügbar. Open Hardware eben.
![]() |
| Schaltplan |
https://github.com/ingmarsretro/ESP32_vectorgame
Die Software: PAL-Signale erzeugen
Die Software-Seite des Projekts war mindestens genauso spannend wie die Hardware. Das Erzeugen eines PAL-Videosignals ist etwas zeitkritisch. Jede Bildzeile muss exakt getimed sein, sonst wird das Bild instabil oder gar nicht angezeigt. Hier habe ich auf die Arbeit von bitluni.net zurückgegriffen. Er hat hier ein tolles Projekt realisiert und eine eigene library erstellt. Die Grundlagen des PAL Videosignals und die Erzeugung mittels ESP32 hat er in seinem Blog ausführlich erklärt.
![]() |
| Videoausgabe auf PAL – Bildschirm |
Technische Details:
- Das Videosignal wird auf GPIO 25 ausgegeben (GPIO26 ist auch möglich)
- Verwendung der bitluni ESP32Lib (Version 0.3.1)
- Zwei Spielmodi: Singleplayer (gegen "Computer") und lokaler Multiplayer (Spieler gegen Spieler)
- Sound-Feedback bei Ballkontakt, Punkten und Spielende über GPIO 27
- Integration von Bitmaps für Logos und Spielergrafiken
Arduino IDE und Kompatibilität der Libraries
Ein wichtiger Hinweis für alle, die das Projekt nachbauen möchten: Die Video-Generierung funktioniert nur mit ganz bestimmten Library-Versionen! Ich habe viel Zeit damit verbracht, das herauszufinden und eine stabile Ausgabe zu erreichen. Die 3.x.x Versionen der ESP32-Bibliotheken sind aktuell nicht kompatibel.
Folgende Versionen müssen zwingend verwendet werden:
| Komponente | Version |
|---|---|
| ESP32 by Espressif Systems | 2.0.0 |
| Arduino ESP32 Boards | 2.0.11 |
| bitluni ESP32Lib | 0.3.1 |
Die Compiler-Warnungen, die dabei auftreten, können ignoriert werden.
Der Spielspaß: Analoges Feeling im digitalen Zeitalter
Wenn man das fertige Board in Betrieb nimmt und den ersten Ball über den Bildschirm fliegen sieht, ist das ein besonderer Moment. Die Potentiometer sorgen für ein echtes analoges Spielgefühl – ganz anders als mit digitalen Gamepads. Und der kleine Lautsprecher auf dem Board gibt bei jedem Ballkontakt einen authentischen "Piep" von sich.
Im Startbildschirm kann man zwischen Singleplayer (gegen den Computer) und lokalem Multiplayer wechseln. Gerade der Zwei-Spieler-Modus macht richtig Spaß – man sitzt nebeneinander am Board, jeder an seinem Potentiometer, genau wie damals auf den alten Pong-Konsolen.
Pin-Belegung
Für alle, die das Projekt nachbauen möchten, hier die komplette Pin-Belegung:
| Komponente | GPIO | Beschreibung |
|---|---|---|
| Video Out | 25 | Composite Signal |
| Buzzer/Audio | 27 | Soundausgabe |
| Poti 1 | 35 | Spieler 1 (Links) |
| Poti 2 | 34 | Spieler 2 (Rechts) |
| Button 1 | 32 | Modus wechseln |
| Button 2 | 33 | Start / Aktion |
Von PAL bis Vektor: Die Dual-Mode-Fähigkeit
![]() |
| PONG als X-Y Vectorausgabe am Oszilloskop |
![]() |
| Auswahlmenue |
Was das Vectorgameboard wirklich einzigartig macht, ist seine Dual-Mode-Fähigkeit. Während die hier beschriebene Pong-Software für PAL-Composite-Video entwickelt wurde, kann das gleiche Board auch für Vektor-Software genutzt werden.
Der interne DAC und auch ein externer DAC (MCP4922 Dual 12 bit SPI DAC) ermöglicht es, präzise X-Y-Signale auszugeben. Damit kann man das Board an ein Oszilloskop anschließen und klassische Vektor-Grafiken darstellen – wie bei den legendären Spielautomaten “Asteroids” etc… Das ist ein Projekt, das ich definitiv noch weiterverfolgen werde.
Open Source und Open Hardware
Wie bei vielen meiner Projekte liegt mir auch hier die Reproduzierbarkeit am Herzen. Die Quellcodes der bisherigen Versionen sind auf GitHub verfügbar:
https://github.com/ingmarsretro/ESP32_VideoPong
Jeder ist eingeladen, das Projekt nachzubauen, zu modifizieren oder weiterzuentwickeln. Besonders freuen würde ich mich über Feedback von anderen Retro-Enthusiasten oder über Weiterentwicklungen der Software.
Ein besonderer Dank geht an bitluni für die hervorragende ESP32Lib, ohne die dieses Projekt in dieser Form nicht möglich gewesen wäre. Die Library ist ein Paradebeispiel dafür, wie gut durchdachte Open-Source-Software komplexe Projekte erst ermöglicht.
Brücke zwischen den Welten
Das ESP32 Video Pong Projekt zeigt eindrucksvoll, wie man mit modernen Mikrocontrollern die Technik vergangener Jahrzehnte nachbilden kann. Es ist mehr als nur ein nostalgisches Spielzeug – es ist eine funktionierende Demonstration dessen, wie Videosignale aufgebaut sind und wie zeitkritische Embedded-Programmierung funktioniert.
Für mich persönlich war es auch eine Reise in meine eigene Vergangenheit. Als Kind habe ich stundenlang auf verschiedenen Konsolen gespielt, ohne zu verstehen, was technisch dahintersteckt. Jetzt, Jahrzehnte später, kann ich nicht nur die Technik nachvollziehen, sondern sie auch selbst nachbauen und verbessern.
Vielleicht inspiriert dieses Projekt ja den einen oder anderen, selbst aktiv zu werden. Die Kombination aus Retro-Flair und moderner Mikrocontroller-Technik hat definitiv ihren Reiz.
Viel Spaß beim Nachbauen – und beim Spielen auf dem guten alten Röhrenfernseher oder Oszilloskop!





Keine Kommentare:
Kommentar veröffentlichen