Oscilloscope Mod: Decoding My First Frame

It’s been a long time since I last updated about this project, but I have been working slowly in the background. The current plan is to use a TVP7002 from Texas Instruments which is a triple 10-bit video digitiser. It is a little bit over-kill for my needs – it is able to handle three RGB video signals and I only need one monochrome video signal – but nonetheless it is an interesting chip and will achieve what I need.

Screenshot from 2018-04-19 00-41-17.png

TVP7002 Block Diagram

This chip takes HSYNC, VSYNC and Video as an input, which are the same signals the oscilloscope outputs to the display.  It then outputs a pixel clock and 10 bits of red-, green- and blue-data. Because I am only using one channel, I feed my video signal into the green input and only look at the 10 bits for the green output.


In order to reconstruct the video signal, the chip needs to know a number of parameters of the video signal, such as number of pixels per line, the length of the hsync pulse, the number of lines and the length of the vsync signal. These details aren’t given in the repair manual for the oscilloscope, therefore I needed to find them out myself.


Probing the LM1882


Probing the LM1882

The oscilloscope contains an LM1882 “Programmable Video Sync Generator” from National Semiconductor. By probing the vsync, hsync, pixel clock and blanking signals from this chip I was able to determine a number of properties of the signal.


Signals from the LM1882

The properties are as follows:

  • Pixel clock = 20MHz
  • 800 dots per line
  • 576 dots per line
  • Hsync of 64 dots
  • Horizontal front/back porch is 136 and 24 dots
  • 417 lines in total
  • 378 active lines
  • Vsync of 3 lines
  • Vertical front/back porch is 25 and 11 lines


These properties could then be programmed into the TVP7002 over the I2C interface from the Atmel ATtiny87.

Finally, I connected the TVP7002 video board to the oscilloscope output cable and connected the output of the board to the logic analyser of the Rohde& Schwartz RTB2004 Oscilloscope. I then captured the output signals for a full frame and saved this to usb.


The video cable of the oscilloscope into the video board which is connected to the logic analyser probes.


Data from one full frame of video data

I transferred this data to my computer and processed it in Matlab.


First fully decoded frame

And look! It actually looks almost correct.

There are clearly some issues with the settings on the video digitiser. The data only uses the bottom 7 bits of the 10 available bits and there seems to be some phase error on the pixel clock, but this can be corrected in register settings.

Obviously this whole process is very manual. The next step is to develop the FPGA code using my Digilent Nexys DDR 4 development board so that I can feed the video signal directly into my LCD panel over VGA.


Oscilloscope -> Video board -> FPGA Board

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s