The Raspberry Pi can output composite video. Pixel frequency appears to be 13.5 MHz, i.e. the BT.601 standard.
The Raspberry Pi console framebuffer is 720 pixels wide. But that is actually too wide to fit in a standard PAL/NTSC display at 13.5 MHz, so the left-and rightmost pixels are never visible. Also about three pixels on the left and right side coincide with the edge of the blanking pulse, so these are also best avoided.
To make sure these hidden pixels are not used you can use these overscan settings:
PAL full frame
overscan_left=17 overscan_right=4
NTSC full frame
overscan_left=4 overscan_right=9
Analog TVs limit the amount of visible pixels further. I experimented with a few (LCD) TV models, and came up with this safe set of values:
PAL cropped
overscan_left=41 overscan_right=24 overscan_top=19 overscan_bottom=21
NTSC cropped
overscan_left=27 overscan_right=31 overscan_top=14 overscan_bottom=16
To use the above values you also want to set
disable_overscan=1
The Raspberry Pi normally outputs NTSC video. To output PAL video, add
sdtv_mode=2
There is a 'hidden' option called sdtv_disable_colourburst
.
This turns off the colo(u)r burst signal, so the image will appear in black
and white. This does not actually turn off the color signal, so it will do
nothing to enhance the picture. There is a lot of ringing in the video signal
on sharp edges, that does not go away when setting this to 1.
In newer releases the config.txt may have
dtoverlay=vc4-kms-v3d,compositeor a variation thereof. This actually turns off the whole overscan bit, so you need to comment this out if you want to use overscan.
Raspberry Pi 4 has no composite output by default due to hardware changes. I have not tested any of the above with an RPi4 yet.
Michiel Boland
Apr 2022