Friday, November 22, 2013

Wow! VBI injection is working! Holy cow!

I am super excited about this!  This is my first attempt at injecting a 24-bit picture number into the VBI of a video signal.  Yes, it's on line 11 instead of 17/18 and yes, it's not as bright as it should be, but dangit it is working!!  I had to hand-craft AVR assembly language and count each cycle meticulously to make sure I did not drift and I am pleased to say that each bit cell is "exactly" 2 microseconds long (as accurate as the clock is) which is what the official laserdisc spec says it should be.

This was really the big hurdle that I've been procrastinating for so long and now that it's finished I can do the easier stuff.

For those curious, the voltage to create this data is currently about 0.95V where the NTSC standard says that 1 V should be about max brightness.  But often this standard is somewhat ignored.  I designed the board so that I can crank up the voltage as high as about 1.5V.  The RGB values from the current voltage are 182 and they should be closer to 255 (fully white).  According to my math, I am going to need the voltage to be about 1.3V to get it fully white.  I am sure glad I made the voltage adjustable on this board! :)


  1. That makes sense if you're using the Pi as the NTSC video source. Its output is biased about 0.3V higher than the NTSC spec calls for, so it doesn't have to produce negative voltages. Your VBI output looks 0.3V low when it's mixed in. Setting it to 1.3V will make it work right for the Pi, but would be way too high for a proper NTSC source.
    Perhaps we should use an analog input pin on the aux AVR to measure the peak voltage on the source video, and use that to determine the output level for the VBI signal. :)

  2. Or we could just assume the source video will always the be Pi :o