Yes, Your ESP32 Can Output Composite Video, and Bitluni Will Show You How

In recent years, three devices in particular have taken the maker community by storm: the Arduino, the Raspberry Pi, and the ESP. Arduinos are great for low-level control that’s close to the metal, Raspberry Pis are complete computers and can be used as such, and ESPs are something in the middle—you get low-level control with the benefit of wireless connectivity. However, the ESP8266 and ESP32 were never originally intended for makers, and so people in the community are often finding new capabilities. In this case, that’s composite video output courtesy of Bitluni.

You may remember Bitluni from his Oscilloscope Video and AM Radio Transmitter ESP32 projects. If there are two things the man knows, they’re ESPs and analog signals. This project is no different, but this time Bitluni is tackling composite video, which is the same thing your old VCR probably used to output video to your TV.

Wiring it up could not be more simple: there are just two wires—and one of those is ground. The other connects to pin 25 which can take advantage of the ESP32’s DAC (digital-to-analog converter). That DAC is doing the heavy lifting here, and with Bitluni’s provided code it generates the necessary signals for grayscale video output in either PAL or NTSC format.

Unfortunately, full-color video isn’t possible with this setup, because the DAC just can’t process the signal fast enough. However, you can output grayscale images, text, and even 3D models. Yup, you read that right: amazingly, Bitluni also provides code to use one of the ESP32’s cores to process and output 3D STL files in case you require that functionality.