Panda381/PicoLibSDK

Real 320x240 output

Opened this issue · 2 comments

nmur commented

Hi, thank you for your awesome projects!

I have just tried running the PicoinoMini Monoscope, and it looks like it doubles the 320x240 output to give a 640x480 signal. I understand that this is the common minimum requirement for VGA monitors.

I am interested in displaying video on an old SD CRT TV, which can only display 15kHz signals. Is it possible to configure the library to output real 320x240? Or would that require modification?

Thank you!

My earlier project was a PicoVGA display driver that also supported TV interlaced output https://www.breatharian.eu/hw/picovga/index_en.html . It is, however, difficult to use and does not yet work fully with the PicoLibSDK library. Implementing TV interlaced mode is quite difficult, but it should be quite easy to adjust the minivga library timings for TV output without TV interlacing support. In the _display\minivga_config.h file, find #elif WIDTH == 320 and there adjust MINIVGA_VMUL to 1, and recalculate the timings for TV video mode. I don't know exactly, but if MINIVGA_CLKDIV is changed to 4 (this will halve the horizontal timing), then just changing the vertical setting of MINIVGA_V* to half might be enough, and that could very approximately match the NTSC signal. For more accurate timing, everything would have to be calculated more accurately.

nmur commented

Thank you for your reply!

It looks like this yields a signal that is in range of a SD TV, which is great.
image

As you predicted, the timings are slightly off. For NTSC SD video it would be expected to have a horizontal frequency of ~15.7kHz, and a vertical frequency of 60Hz.
image

I can continue to tinker with it from here and try to calculate more accurate timings.