{"id":8569,"date":"2026-02-13T20:03:57","date_gmt":"2026-02-13T19:03:57","guid":{"rendered":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/?p=8569"},"modified":"2026-02-13T13:31:12","modified_gmt":"2026-02-13T12:31:12","slug":"esp32-video-pong-retrogaming-trifft-moderne-mikrocontroller-technik","status":"publish","type":"post","link":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/2026\/02\/13\/esp32-video-pong-retrogaming-trifft-moderne-mikrocontroller-technik\/","title":{"rendered":"ESP32 Video Pong \u2013 Retrogaming trifft moderne Mikrocontroller-Technik"},"content":{"rendered":"<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_8569\" class=\"pvc_stats all  \" data-element-id=\"8569\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><em>13. Februar 2026 | ingmarsretro<\/em><\/p>\n<audio class=\"wp-audio-shortcode\" id=\"audio-8569-1\" preload=\"none\" style=\"width: 100%;\" controls=\"controls\"><source type=\"audio\/mpeg\" src=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/Pong_auf_Rohrenfernseher_und_Oszilloskop.m4a?_=1\" \/><a href=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/Pong_auf_Rohrenfernseher_und_Oszilloskop.m4a\">http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/Pong_auf_Rohrenfernseher_und_Oszilloskop.m4a<\/a><\/audio>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Es ist schon eine Weile her, dass ich mir Zeit genommen habe, \u00fcber eines meiner letzten Projekte zu berichten. Diesmal geht es um ein Thema, das zwei meiner gro\u00dfen Leidenschaften vereint: Die Faszination f\u00fcr Retro-Gaming aus meiner Jugend und die M\u00f6glichkeiten moderner Mikrocontroller-Technik.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Wer in den 1970er Jahren aufgewachsen ist, kennt es noch: Pong, eines der ersten kommerziell erfolgreichen Videospiele \u00fcberhaupt. Zwei Paddles, ein Ball, ein Bildschirm \u2013 mehr brauchte es nicht f\u00fcr stundenlangen Spielspa\u00df. Was damals mit dedizierter Analog-Schaltungstechnik realisiert wurde, l\u00e4sst sich heute elegant mit einem einzigen Mikrocontroller umsetzen.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Die Herausforderung dabei: Ein echtes analoges PAL-Videosignal direkt aus einem ESP32 zu erzeugen. Kein HDMI, kein VGA \u2013 sondern gutes altes Composite-Video (FBAS), wie es ein guter alter R\u00f6hrenfernseher versteht.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Urspr\u00fcnglich habe ich das Projekt f\u00fcr den FH-Day an der Fachhochschule K\u00e4rnten entwickelt. Die Idee war, Studierenden und Besuchern zu zeigen, was mit moderner Embedded-Hardware m\u00f6glich ist \u2013 und gleichzeitig eine Br\u00fccke zur Technikgeschichte zu schlagen.<\/p>\n<h4 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Das Vectorgameboard V1.0 \u2013 Hardware nach Ma\u00df<\/h4>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">F\u00fcr dieses Projekt habe ich nicht nur Software gebastelt, sondern auch eine dedizierte Platine entwickelt: Das <strong>Vectorgameboard V1.0<\/strong>. Diese Platine soll ein echtes &#8222;All-in-One&#8220;-Design sein (oder in k\u00fcnftigen Revisionen werden) und alle notwendigen Komponenten auf einem Board vereinen:<\/p>\n<div id=\"attachment_8577\" style=\"width: 484px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG20260212131007-scaled.jpg\"><img fetchpriority=\"high\" decoding=\"async\" aria-describedby=\"caption-attachment-8577\" class=\"wp-image-8577 size-large\" src=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG20260212131007-scaled-e1770983464941-1024x539.jpg\" alt=\"\" width=\"474\" height=\"249\" srcset=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG20260212131007-scaled-e1770983464941-1024x539.jpg 1024w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG20260212131007-scaled-e1770983464941-300x158.jpg 300w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG20260212131007-scaled-e1770983464941-768x404.jpg 768w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG20260212131007-scaled-e1770983464941-1536x809.jpg 1536w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG20260212131007-scaled-e1770983464941-2048x1078.jpg 2048w\" sizes=\"(max-width: 474px) 100vw, 474px\" \/><\/a><p id=\"caption-attachment-8577\" class=\"wp-caption-text\">die Platine mit ESP32 als Rechenknecht<\/p><\/div>\n<h5 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">Hardware-Features im \u00dcberblick:<\/h5>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\"><strong>ESP32<\/strong> als Herzst\u00fcck<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Zwei Potentiometer<\/strong> f\u00fcr die Paddle-Steuerung (analoges Spielgef\u00fchl!)<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Zwei Taster<\/strong> f\u00fcr Modusauswahl und Spielstart<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Video-Ausgang<\/strong> \u00fcber RCA-Buchse (Composite\/FBAS)<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Audio-System<\/strong> mit integriertem Verst\u00e4rker und kleinem Lautsprecher<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Externer DAC<\/strong> f\u00fcr hochpr\u00e4zise Vektordarstellung (X-Y-Modus)<\/li>\n<\/ul>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Was das Board besonders macht: Es ist nicht nur f\u00fcr PAL\/NTSC-Composite-Video ausgelegt, sondern auch f\u00fcr den X-Y-Modus. Das bedeutet, man kann es auch an ein Oszilloskop anschlie\u00dfen und damit klassische Vektor-Grafiken darstellen \u2013 ganz wie bei den alten Vektor-Spielautomaten der 1980er Jahre.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Die kompletten Schaltpl\u00e4ne und Eagle-Layouts sind im GitHub-Repository verf\u00fcgbar. Open Hardware eben.<\/p>\n<div id=\"attachment_8580\" style=\"width: 484px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/schematic_v1.0-scaled.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-8580\" class=\"wp-image-8580 size-large\" src=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/schematic_v1.0-1024x700.png\" alt=\"\" width=\"474\" height=\"324\" srcset=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/schematic_v1.0-1024x700.png 1024w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/schematic_v1.0-300x205.png 300w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/schematic_v1.0-768x525.png 768w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/schematic_v1.0-1536x1050.png 1536w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/schematic_v1.0-2048x1401.png 2048w\" sizes=\"(max-width: 474px) 100vw, 474px\" \/><\/a><p id=\"caption-attachment-8580\" class=\"wp-caption-text\">Schaltlan<\/p><\/div>\n<p><a href=\"https:\/\/github.com\/ingmarsretro\/ESP32_VideoPong\">https:\/\/github.com\/ingmarsretro\/ESP32_VideoPong<\/a><br \/>\n<a href=\"https:\/\/github.com\/ingmarsretro\/ESP32_vectorgame\">https:\/\/github.com\/ingmarsretro\/ESP32_vectorgame<\/a><\/p>\n<h4 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Die Software: PAL-Signale erzeugen<\/h4>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">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 <a href=\"https:\/\/bitluni.net\/esp32-composite-video\">bitluni.net<\/a> zur\u00fcckgegriffen. 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\u00fchrlich erkl\u00e4rt.<\/p>\n<div id=\"attachment_8575\" style=\"width: 484px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/pong_in_action-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8575\" class=\"wp-image-8575 size-large\" src=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/pong_in_action-768x1024.jpg\" alt=\"\" width=\"474\" height=\"632\" srcset=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/pong_in_action-768x1024.jpg 768w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/pong_in_action-225x300.jpg 225w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/pong_in_action-1152x1536.jpg 1152w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/pong_in_action-1536x2048.jpg 1536w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/pong_in_action-scaled.jpg 1920w\" sizes=\"(max-width: 474px) 100vw, 474px\" \/><\/a><p id=\"caption-attachment-8575\" class=\"wp-caption-text\">Videoausgabe auf PAL &#8211; Bildschirm<\/p><\/div>\n<h4 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">Technische Details:<\/h4>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\">Das<strong> Videosignal<\/strong> wird auf <strong>GPIO 25 <\/strong>&nbsp;ausgegeben (GPIO26 ist auch m\u00f6glich)<\/li>\n<li class=\"whitespace-normal break-words pl-2\">Verwendung der <strong>bitluni ESP32Lib<\/strong> (Version 0.3.1)<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Zwei Spielmodi<\/strong>: Singleplayer (gegen &#8222;Computer&#8220;) und lokaler Multiplayer (Spieler gegen Spieler)<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Sound-Feedback<\/strong> bei Ballkontakt, Punkten und Spielende \u00fcber GPIO 27<\/li>\n<li class=\"whitespace-normal break-words pl-2\">Integration von <strong>Bitmaps<\/strong> f\u00fcr Logos und Spielergrafiken<\/li>\n<\/ul>\n<h5 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">Arduino IDE und Kompatibilit\u00e4t der Libraries<\/h5>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Ein wichtiger Hinweis f\u00fcr alle, die das Projekt nachbauen m\u00f6chten: Die Video-Generierung funktioniert <strong>nur<\/strong> 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.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Folgende Versionen m\u00fcssen zwingend verwendet werden:<\/p>\n<div class=\"overflow-x-auto w-full px-2 mb-6\">\n<table class=\"min-w-full border-collapse text-sm leading-[1.7] whitespace-normal\">\n<thead class=\"text-left\">\n<tr>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\">Komponente<\/th>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\">Version<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">ESP32 by Espressif Systems<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">2.0.0<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Arduino ESP32 Boards<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">2.0.11<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">bitluni ESP32Lib<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">0.3.1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Die Compiler-Warnungen, die dabei auftreten, k\u00f6nnen ignoriert werden.&nbsp;<\/p>\n<h5 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Der Spielspa\u00df: Analoges Feeling im digitalen Zeitalter<\/h5>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Wenn man das fertige Board in Betrieb nimmt und den ersten Ball \u00fcber den Bildschirm fliegen sieht, ist das ein besonderer Moment. Die Potentiometer sorgen f\u00fcr ein echtes analoges Spielgef\u00fchl \u2013 ganz anders als mit digitalen Gamepads. Und der kleine Lautsprecher auf dem Board gibt bei jedem Ballkontakt einen authentischen &#8222;Piep&#8220; von sich.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Im Startbildschirm kann man zwischen Singleplayer (gegen den Computer) und lokalem Multiplayer wechseln. Gerade der Zwei-Spieler-Modus macht richtig Spa\u00df \u2013 man sitzt nebeneinander am Board, jeder an seinem Potentiometer, genau wie damals auf den alten Pong-Konsolen.<\/p>\n<h5 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Pin-Belegung<\/h5>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">F\u00fcr alle, die das Projekt nachbauen m\u00f6chten, hier die komplette Pin-Belegung:<\/p>\n<div class=\"overflow-x-auto w-full px-2 mb-6\">\n<table class=\"min-w-full border-collapse text-sm leading-[1.7] whitespace-normal\">\n<thead class=\"text-left\">\n<tr>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\">Komponente<\/th>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\">GPIO<\/th>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\">Beschreibung<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Video Out<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">25<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Composite Signal<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Buzzer\/Audio<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">27<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Soundausgabe<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Poti 1<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">35<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Spieler 1 (Links)<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Poti 2<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">34<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Spieler 2 (Rechts)<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Button 1<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">32<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Modus wechseln<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Button 2<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">33<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Start \/ Aktion<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h5 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Von PAL bis Vektor: Die Dual-Mode-F\u00e4higkeit<\/h5>\n<div id=\"attachment_8582\" style=\"width: 484px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105808-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8582\" class=\"wp-image-8582 size-large\" src=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105808-770x1024.jpg\" alt=\"\" width=\"474\" height=\"630\" srcset=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105808-770x1024.jpg 770w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105808-226x300.jpg 226w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105808-768x1021.jpg 768w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105808-1155x1536.jpg 1155w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105808-1540x2048.jpg 1540w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105808-scaled.jpg 1925w\" sizes=\"(max-width: 474px) 100vw, 474px\" \/><\/a><p id=\"caption-attachment-8582\" class=\"wp-caption-text\">PONG als X-Y Vectorausgabe am Oszilloskop<\/p><\/div>\n<div id=\"attachment_8583\" style=\"width: 484px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105856-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8583\" class=\"wp-image-8583 size-large\" src=\"http:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105856-770x1024.jpg\" alt=\"\" width=\"474\" height=\"630\" srcset=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105856-770x1024.jpg 770w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105856-226x300.jpg 226w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105856-768x1021.jpg 768w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105856-1155x1536.jpg 1155w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105856-1540x2048.jpg 1540w, https:\/\/blog.fh-kaernten.at\/ingmarsretro\/files\/2026\/02\/IMG_20260127_105856-scaled.jpg 1925w\" sizes=\"(max-width: 474px) 100vw, 474px\" \/><\/a><p id=\"caption-attachment-8583\" class=\"wp-caption-text\">Auswahlmenue<\/p><\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Was das Vectorgameboard wirklich einzigartig macht, ist seine Dual-Mode-F\u00e4higkeit. W\u00e4hrend die hier beschriebene Pong-Software f\u00fcr PAL-Composite-Video entwickelt wurde, kann das gleiche Board auch f\u00fcr Vektor-Software genutzt werden.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Der interne DAC und auch ein&nbsp; externer DAC (MCP4922 Dual 12 bit SPI DAC) erm\u00f6glicht es, pr\u00e4zise X-Y-Signale auszugeben. Damit kann man das Board an ein Oszilloskop anschlie\u00dfen und klassische Vektor-Grafiken darstellen \u2013 wie bei den legend\u00e4ren Spielautomaten &#8222;Asteroids&#8220; etc&#8230; Das ist ein Projekt, das ich definitiv noch weiterverfolgen werde.<\/p>\n<h5 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Open Source und Open Hardware<\/h5>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Wie bei vielen meiner Projekte liegt mir auch hier die Reproduzierbarkeit am Herzen. Die Quellcodes der bisherigen Versionen sind auf GitHub verf\u00fcgbar:<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong><a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/github.com\/ingmarsretro\/ESP32_VideoPong\">https:\/\/github.com\/ingmarsretro\/ESP32_VideoPong<\/a><\/strong><\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Jeder ist eingeladen, das Projekt nachzubauen, zu modifizieren oder weiterzuentwickeln. Besonders freuen w\u00fcrde ich mich \u00fcber Feedback von anderen Retro-Enthusiasten oder \u00fcber Weiterentwicklungen der Software.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">Ein besonderer Dank geht an <strong>bitluni<\/strong> f\u00fcr die hervorragende ESP32Lib, ohne die dieses Projekt in dieser Form nicht m\u00f6glich gewesen w\u00e4re. Die Library ist ein Paradebeispiel daf\u00fcr, wie gut durchdachte Open-Source-Software komplexe Projekte erst erm\u00f6glicht.<\/p>\n<h5 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Br\u00fccke zwischen den Welten<\/h5>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">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 \u2013 es ist eine funktionierende Demonstration dessen, wie Videosignale aufgebaut sind und wie zeitkritische Embedded-Programmierung funktioniert.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">F\u00fcr mich pers\u00f6nlich 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\u00e4ter, kann ich nicht nur die Technik nachvollziehen, sondern sie auch selbst nachbauen und verbessern.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\" style=\"text-align: justify\">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.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Viel Spa\u00df beim Nachbauen \u2013 und beim Spielen auf dem guten alten R\u00f6hrenfernseher oder Oszilloskop!<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_8569\" class=\"pvc_stats all  \" data-element-id=\"8569\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n<p>13. Februar 2026 | ingmarsretro Es ist schon eine Weile her, dass ich mir Zeit genommen habe, \u00fcber eines meiner letzten Projekte zu berichten. Diesmal geht es um ein Thema, das zwei meiner gro\u00dfen Leidenschaften vereint: Die Faszination f\u00fcr Retro-Gaming aus meiner Jugend und die M\u00f6glichkeiten moderner Mikrocontroller-Technik. Wer in den 1970er Jahren aufgewachsen ist,&hellip; <br \/> <a class=\"read-more\" href=\"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/2026\/02\/13\/esp32-video-pong-retrogaming-trifft-moderne-mikrocontroller-technik\/\">Weiterlesen<\/a><\/p>\n","protected":false},"author":86,"featured_media":8576,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"ngg_post_thumbnail":0,"footnotes":""},"categories":[1,1187,57],"tags":[430,2734,2730,2736,2443,2737,2735,2738,2733,2729,2731,2739,2629,2732],"class_list":["post-8569","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemeines","category-arduino","category-elektronikbastler","tag-arduino","tag-bitluni","tag-composite-video","tag-diy-electronics","tag-esp32","tag-esp32composit","tag-fbas","tag-ide","tag-open-hardware","tag-pal","tag-pong","tag-retrogamediy","tag-retrogaming","tag-vectorgameboard"],"a3_pvc":{"activated":true,"total_views":81,"today_views":1},"_links":{"self":[{"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/posts\/8569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/users\/86"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/comments?post=8569"}],"version-history":[{"count":0,"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/posts\/8569\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/media\/8576"}],"wp:attachment":[{"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/media?parent=8569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/categories?post=8569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.fh-kaernten.at\/ingmarsretro\/wp-json\/wp\/v2\/tags?post=8569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}