Friday, February 17, 2023

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.

See more on the project GitHub page here.

No comments:

Post a Comment