Some time ago I made a VGA connector with a simple DAC made of resistors to use with old FPGA board, but since the board has very little RAM I wasn't able to do anything too interesting (the DAC shown there has only 1 bit per color channel, I later made an improved one with 2 bits per channel). But as it turns out, some crazy people made the ESP32 output a VGA signal using I2S -- I just tested it and it seems to work perfectly!
I used FabGL by Fabrizio Di Vittorio, but there's also ESP32Lib by bitluni which I'll probably check out later. Here's one of FabGL's examples in action (pay no attention to the smudges on the monitor, it's very old):
Here's a close-up of the ESP32 showing the connected pins.
I'm using the default FabGL pinout, which is:
ESP32 pin | Connection |
---|---|
23 | H Sync |
15 | V Sync |
22 | Red (high bit) |
21 | Red (low bit) |
19 | Green (high bit) |
18 | Green (low bit) |
5 | Blue (high bit) |
4 | Blue (low bit) |
And finally, here's my hacky VGA connector/DAC with 2 bits per color channel giving a total of 64 colors:
The other side of the board is kind of a mess (this was one of my first soldering jobs), but it works well enough. And, before you ask, all of the jumpers are inserted all the way in, but some have longer leads than others -- they're really crappy jumpers!
I might try to port Loser Corps to this thing. No idea how well it will work over Wifi, the network code is very simplistic and probably doesn't work well anywhere other than Ethernet. We'll see.