Skip to content

Instantly share code, notes, and snippets.

@nyanpasu64
Last active October 18, 2023 23:08
Show Gist options
  • Save nyanpasu64/d8054e1f5ef1f9aacaf01a29650b0ba9 to your computer and use it in GitHub Desktop.
Save nyanpasu64/d8054e1f5ef1f9aacaf01a29650b0ba9 to your computer and use it in GitHub Desktop.

Probing a VGA signal

2023-06-05:

In order to debug vsync placement in regular and interlaced modes, I ended up building a custom VGA cable to direct the video and vsync signals to my computer's sound card, while it's also outputting to a display so I can see what I'm doing. I purchased a passive VGA splitter (which you shouldn't actually use with two monitors each with a 75 ohm termination), plugged the base and one end into my regular VGA port and cable, and stuck wires into the green, vsync, and ground holes in the other output. Since I didn't have protoboard, I hot-glued these wires to a piece of cardboard, using surface-mount resistors to divide the vsync signal to a safer voltage for microphone jacks. This proved to be a mistake, with the cardboard being so floppy that I repeatedly snapped the resistors' metallized terminals off their bodies.

My first VGA probing rig had some truly terrifying signal properties, far worse than plugging my Wii's component 480p luma signal through a RCA splitter into my motherboard. If I powered on my CRT monitor while the other terminal of the Y-splitter was connected to my computer, I saw horrible ripple on the green channel, with smeared ringing on every vertical edge (including the entire left edge of the screen), each covering 10% of my screen's width. (The artifacts disappeared if I unplugged the cable from my motherboard line in.) This could have been because of my non-shielded probe wiring, or alternatively because I plugged my probe's ground to the wrong ground pins on the VGA port, so the green wire's return current had to travel through the wrong shield to the output/monitor's shared ground before reaching the green shield.

Later I improved the probe by plugging the VGA cable pins nearly-directly into a RCA cable's conductor and shield, and putting the surface-mount resistors on a repurposed spare PCB from my sensor bar project. This made the artifacts much smaller, but the green channel was blended with a dimmed replica of itself a few pixels to the right, causing annoying chromatic aberration effects. I would not use the display with the probe in place (whereas I'm perfectly happy gaming on Wii 480p component with a RCA splitter attached to the luma channel).

I suspect the remaining signal reflection(?) arises because the VGA probe hooks onto the cable using a Y-splitter, connected to a long cable with inductance and capacitance, terminated with an audio input with a non-infinite impedance. I tried switching to a shorter cable, and the gap between the green signal and replica became smaller but did not go away, and each image itself became more blurred.

Moving the probe onto the blue signal made the artifacts almost invisible to the naked eye, except in synthetic test images like a blue line on a black background. This is because the human eye is much less sensitive to blue.

To fully eliminate the artifacts, I would need to increase the probe impedance (for example buying a digital storage oscilloscope with high-impedance probes, rather than a computer audio jack), or isolate the probe from the signal path (by plugging the monitor and probe into separate outputs of a VGA distribution amp).

Update: oscilloscope probing

2023-10-18:

Since publishing this blog post, I've gotten an oscilloscope which can tap VGA signals without disturbing signal integrity. I plug a VGA breakout into the Y-splitter, add breadboard wires into the desired screw terminals, then lock my oscilloscope probes onto these breadboard wires. Unfortunately you cannot probe the pins from the screws alone (due to no electrical connection), when no wire is placed in the screw terminal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment