VGA to 'scope display

The question on my mind was this: Where do I get a nice, fast DAC to run an XY display? How do I keep it fed with values? I discovered a very simple answer that I hadn't heard of before.

The hardware is dirt simple: Get a VGA to 5 BNC-connector cable. Plug your computer's VGA output into your scope. Now load a specially crafted image in a full-screen viewer

An XY image as seen onscreen (cropped)
The bright dot in the lower left-hand corner is the pixel displayed during retrace. A slightly more sophisticated scheme will use the G output as the scope's Z input.

I also used the scope to display a 256x256 greyscale image by scanning raster-fashion, but resting at each pixel for a time proportional to the intensity of the pixel.

There are a few problems with this approach. The DACs in a video card are not linear (even at gamma 1.0 they seem a bit unlinear---if you look carefully you can count 4 divs on the left-hand face of the cube, but only a little more than 3 divs for the right-hand face. They shold be the same size). The retrace problem I mentioned above has to be tackled too.

But the biggest problem is the range of the outputs---only 8 bits. Old XY games like Asteroids and Star Wars had 10 bits of resolution.

So wile I am going to write some simple software to do vector display on a 256x256 grid, the next step is to add a little bit of hardware. The basic idea is this: Convert the HSYNC and VSYNC pulses to logic-level signals. Use a ripple counter, incrementing on HSYNC and resetting on VSYNC. The ripple counter outputs provide offsets to X and Y. Different logical scanlines on the PC will thus appear in different quadrants of the scope display, increasing the resolution. I think I found a cheap op-amp with enough bandwidth to work. Just how bad objects that cross quadrant boundaries will look is the next potential problem.

Other VGA/scope projects:

VGA-to-Scope Converter displays your desktop on a scope

Entry first conceived on 16 April 2005, 16:53 UTC, last modified on 15 January 2012, 3:46 UTC
Website Copyright © 2004-2024 Jeff Epler