IMPORTANT: the software documented here pushes the RP2040 microcontroller far beyond its design specifications. Just like PC overclocking, there’s some risk of reduced component lifespan, though the extent (if any) can’t be precisely quantified and could vary from one chip to another. Proceed at your own discretion.
PicoDVI is a remarkable project by Luke Wren of the Raspberry Pi Foundation, capable of squeezing digital video directly from an RP2040 microcontroller. Imagine the creative applications for having these inexpensive devices linked to a display…not a tiny LCD, but the big bright screen in your living room or connected to your computer!
In its natural habitat, PicoDVI works with the Raspberry Pi Pico C/C++ SDK — a command-line development system — and projects using it involve careful planning and work to generate an image. What we’ve done is wrap up PicoDVI in an Arduino-flavoured wrapper: programmed within the familiar Arduino IDE, using graphics operations from the Adafruit_GFX library — draw lines, draw circles, some text and so forth. Novice coders can then develop video-based projects with minimal fuss.
- PicoDVI can work on most RP2040-based microcontroller boards. It uses features unique to this chip and will not work anywhere else, no ESP32, no SAMD, etc.
- 8 GPIO pins are used for output. They don’t need to all be consecutive, but does require four pairs of consecutive pins.
- An HDMI* breakout board can be used, or a bare HDMI connector and some passive components. Or better yet…
- Several boards now have this all baked in: Adafruit’s Feather RP2040 DVI (shown below), Pi Cowbell DVI, Pimoroni’s Pico DV Demo Base, or Luke Wren’s own Pico DVI Sock design.
To perform its magic, the PicoDVI code sometimes takes liberties with video timing. Most monitors can successfully sync with this, but there’s no guarantee that every monitor can latch on to every PicoDVI mode. You will need to experiment.
* Although an HDMI connector and cable are involved, strictly speaking this is DVI video. True and Proper HDMI™ is a proprietary, licensable format bringing together several technologies — video, audio, content protection, sometimes networking. HDMI’s baseline non-content-protected video format happens to use DVI-compatible signaling, which is what the library generates. Nobody will fault you for casually calling it “HDMI out” (do younger folks even remember DVI monitors?), but if you’re making a product or publishing a tutorial, best to say “DVI” to avoid potential licensing drama.
To reiterate an opening point: the PicoDVI code works by extreme overclocking. We’ve yet to witness failures from this, but it is a possibility. Thankfully the chips are affordable…the assumed risk is nowhere near the magnitude of overclocking a high-end PC CPU or graphics card.
Text editor powered by tinymce.