top of page
  • Writer's picturerehsd

VGA 640x480 ISA Card

Updated: Mar 4

As a follow-up to VGA Next: 640x480 ISA Card, I now have a functional version of an ISA VGA card working. The card supports 640x480 with 65,536 colors (two bytes of color data per pixel -- RGB565). The card has two video pages (i.e., frames), with the host (in my case, a 286 system) controlling one frame and the VGA output controlling the other frame. Frame access can then be swapped.

Update: Since posting the video above and the schematic below, I have updated resistors R45 and R46 from 33 ohm to 68 ohm. This increased the individual RGB output voltage to slightly over 700 mV. Whites are noticeably brighter now. Unfortunately, the face is a bit too bright at this level. I'm going to compromise and use 47 ohm resistors; this results is a pretty decent white and a decent face color.

While working to remove the noise when capturing video output to my PC, I tried a different capture device. The alternate capture device is an inexpensive HDMI to USB device. This device, along with a VGA-to-HDMI converter, resulted in lower noise. However, there was still some noise. Also, the alternate capture device does not capture moving content as well as the XR1 Pro. So, I kept digging.

Finally, I was able to clear up the noise entirely (or pretty close at least). In the above video, changing the power source of the Arduino Nano from USB to the 286 helped greatly. The configuration to the right seems to have taken care of the remaining noise. I am using a VGA cable to connect the video card to an active VGA splitter. One of the VGA outputs then runs to a VGA-to-HDMI converter, then into an HDMI capture device via an HDMI cable, and finally to the PC via USB. An LCD monitor is connected directly to the second VGA output of the VGA splitter. This configuration seems to be working quite well. I will continue to monitor (no pun intended 😁).

VGA schematic 20230209
Download PDF • 1.05MB
VGA timing addressing 20230209
Download PDF • 86KB
VGA decode 20230209
Download PDF • 93KB

VGA DAC R-2R Ladder: Impedance and Voltage

For a 3.3V system, the following would be calculated ideals:

  • R1= 177Ω (or 180Ω)

  • R2= 354Ω (or 360Ω)

  • R3= 130Ω

For my FPGA RGB565 video (3.3V), I will be using the following:

  • R1= 150Ω

  • R2= 300Ω

  • R3= 110Ω

While the above example solutions may not be entirely perfect, they should be "close enough" for my projects.

359 views0 comments

Recent Posts

See All


bottom of page