ESP32 - Reactivate Your Old VGA Monitor

by Markus Opitz in Circuits > Microcontrollers

18 Views, 0 Favorites, 0 Comments

ESP32 - Reactivate Your Old VGA Monitor

VGA-Title.jpg

Many people still have an old computer monitor with a 15-pin VGA connector lying around. Throw it away? Ah, maybe it can still be used.

Yes.

Now!

No computer required, just a XIAO ESP32-S3.

Does the monitor already have a USB port? Perfect, then we already have power for our ESP32!

Let's get started.


Notice: Basic Arduino skills required!

Supplies

XIAO ESP32-S3

15-pin VGA connector, male

3x resistor 270 Ohm

housing, 3D printed (or made of cardboard, plastic, recycled old VGA connector ...

short USB-C cable

Hardware, ESP32-S3

vlcsnap-2025-08-23-09h08m00s199.jpg

Why choose an XIAO ESP32-3? The XIAO series is very small, simple, and economical. Why an S3? Only this model has the necessary requirements to generate a simple VGA signal.

First, we need to establish the necessary connections to the plug. We will address the software later.

Hardware, VGA Connector

vlcsnap-2025-08-23-09h06m08s207.jpg
vlcsnap-2025-08-23-09h07m45s572.jpg
vlcsnap-2025-08-23-09h08m10s963.jpg

For the color signals, we connect pins 2, 3, and 4 to VGA pins 1, 2, and 3, respectively, using 270 ohm resistors. You can use the resistors themselves as cables, as long as you make sure there are no short circuits.

For the Hsync and Vsync signals, we select D7 and D8 on VGA pins 2...2.

The GND from the ESP32 must be connected simultaneously to VGA pins 7, 8, 9.

  1. D2 7 (red)
  2. D3 8 (green)
  3. D4 9 (blue)
  4. D7 11 (hsync)
  5. D8 12 (vsync)
  6. GND 1, 2, 3, 4

The Housing

vlcsnap-2025-08-23-09h08m18s095.jpg
vlcsnap-2025-08-23-09h09m00s098.jpg

Time to install the little thing in a housing. A 3D-printed housing is best. But something very simple made of another plastic or cardboard will also do. In my housing, the VGA plug is inserted and the protruding plastic pins are melted, for example with a soldering iron, and riveted, so to speak.

Software, Basic

vlcsnap-2025-08-23-09h09m30s869.jpg

We use Arduino IDE to program our microcontroller.

Please note that I am not a VGA expert; this is only about the very basics of display on a monitor.

Download the files and make sure they are stored in a shared folder on your computer.

Please use the instructions ... to upload the files.

Software With Webserver/remote Control

vlcsnap-2025-08-23-09h10m10s761.jpg

We can run our program/signs automatically. However, we can also install remote control via smartphone, with a web server and a webpage.

Download the programs and place them in a shared folder. Change the program lines ssid and password according to your local WIFI and load the program onto the ESP32. When the program starts and connects to the WIFI, the address for your browser is specified. For me, it is “192.168.178.155”. Open this page and you will have a remote control on your smartphone.

The Signs and Symbols

You have to create the displays yourself using basic geometric shapes: lines, circles, rectangles, ellipses, filled and unfilled. Only 8 colors are available. In addition to black and white, these are red, yellow, green, blue, cyan, and magenta.

The individual signs are packed into a subroutine, e.g.

void arrowRight() {
fillScreen(COL_BLACK);
vga.fillTri(380, 150, 280, 70, 280, 230, COL_WHITE);
vga.fillRect(30, 100, 250, 100, COL_WHITE);
delay(10);
}

Then you let the signs run in the loop() subroutine.