Raspberry Pi Pico generating composite PAL video #PiDay #RaspberryPiPico @Raspberry_Pi
GitHub user guruthree is trying to get the Raspberry Pi RP2040 chip’s PIO to generate a colour PAL composite video signal, using only a resistor ladder digital-to-analogue converter (DAC).
WARNING: THERE IS A CHANCE THIS SOFTWARE MAY DAMAGE YOUR PICO. I TAKE NO RESPONSIBILITY. I’m running the RP2040 at 312 MHz. This is a 141% overclock (or 241% of stock) with a 1.2 VREG voltage. The clock divider on the PIO is about 9. It is a lot of data to process in not a very long period of time (64 microseconds). I believe I have partially broken at least one RP2040 working on this.
As for my specific hardware, I’ve used both a Pimoroni Tiny2040 and a regular Pico. I’ve built two different simple (read: less precise) resistor DACs…my newer DAC (has) 33k, 18k, 10k, 5.6k, 2.2k, 1k, 560 and 270 Ω resistors.
I have a suspicion that when overclocked not all RP2040 chips end up at exactly the same frequencies, and not all TVs lock on to the PAL colour carrier as easily, so if you are unable to see a colour image you may need to play with the CLOCK_SPEED and CLOCK_DIV settings.
Due to the technical limitations of RAM and DAC timings, it’s been an ongoing effort to work out video resolutions. The best I’ve been able to get so far is a “super high” resolution of 220×110 at roughly a 7 bit colour depth. The major challenge for higher resolutions at this point is RAM, and I think a more standard 320×200 resolution is otherwise possible.
There are numerous links to principles and similar projects.
Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here: adafruit.com/editorialstandards
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.