My computer connects to the monitor using a VGA cable. I want to turn the display grayscale or black & white.

I don't want to use any software solutions as I fear it will not be as effective as I want it to be.

So I researched the Internet for RFC of VGA pin and cable and I couldn't find such an RFC and pin layout configuration was not helpful.

Is there a way I can build a mod which I can attach to either the output of the computer or to the input of the monitor, which discards the color information and display either a grayscale image or black & white image? If possible I would also like the mod to throttle the refresh rate to either 24Hz or 30Hz.

It has to display a resolution of 1920 x 1080.

  • 1
    \$\begingroup\$ I am contemplating if you can do it and still have the impedances and voltages right. You need to feed the three R,G,B inputs at the same time, each is 75 Ohm . So the combined VGA inputs are 25 Ohm. Your VGA R,G,B output impedance should also be 75 ohm each but you can't "just" tie them together as you might short some outputs drivers. So you need three (equal) series resistors. But at the time you still need to have a 25Ohm output impedance to match up and still have the same (common) peak-peak voltage. As I said: I am still calculating.... \$\endgroup\$ – Oldfart Jan 13 '20 at 16:38
  • \$\begingroup\$ Why dont you want to use the built in windows color filter? \$\endgroup\$ – Passerby Jan 13 '20 at 18:19
  • \$\begingroup\$ "If possible I would also like the mod to throttle the refresh rate to either 24Hz or 30Hz." - why? \$\endgroup\$ – Bruce Abbott Jan 13 '20 at 20:47
  • \$\begingroup\$ @BruceAbbott My guess is this monitor is going to be used on the set for a movie and flicker is not tolerable. \$\endgroup\$ – DKNguyen Jan 14 '20 at 0:26
  • 1
    \$\begingroup\$ But... why not? Why is it not a solution for you? \$\endgroup\$ – Passerby Jan 14 '20 at 13:41

You do not need an FPGA. The pinout of the VGA cable can be found in lots of places.

As you can see there are three separate signals. You could combine them to a single "white" signal and then re-connect that to the R/G/B pins, following this example: VGA to composite circuit. Does it work?

Changing the refresh rate is more complicated since that's entirely under the control of the sender. It's based on EDID. What you could do is disconnect the I2C lines from the target monitor and route them to an EEPROM or microcontroller of your own, which would then send back only the data for those video modes that are in 30Hz.

24Hz seems rather too low unless it's interlaced?


Simply connect R, G and B lines on cable together (pins 1, 2 and 3). The matching resistors on VGA card output will do the mixing. Any FPGAs, opamps etc. are overengineering.

  • 1
    \$\begingroup\$ Dangerous: see my comment about shorting drivers. \$\endgroup\$ – Oldfart Jan 13 '20 at 16:39
  • \$\begingroup\$ Not dangerous: there are serial matching resistors on VGA output inside the card. \$\endgroup\$ – VillageTech Jan 13 '20 at 16:41
  • 1
    \$\begingroup\$ I have learned from experience never to assume anything when doing a design. \$\endgroup\$ – Oldfart Jan 13 '20 at 16:45
  • 3
    \$\begingroup\$ :) The matching resistors was always used to prevent from shadows on the screen. There are two (and only two) possible configurations of DAC outputs inside VGA card: first is that the DAC acts as voltage source, so matching resistors (75R) will be connected in serial between DAC and output socket, second is that the DAC ascts as current source, so matching resistors are connected between outputs and ground. In both cases, connecting outputs together will not be dangerous. \$\endgroup\$ – VillageTech Jan 13 '20 at 16:52
  • 1
    \$\begingroup\$ FPGA would be over-engineering. Op-amps would be normal. Shorting RGB pins together would be just so wrong. It would cause an impedance mismatch, as one 75 ohm cable would not see 75 ohm termination, but three 75 ohm terminations and two other 75 ohm cables. Besides RGB is not simply averaged to grayscale, it is a weighted sum. True, it would most likely not break anything, but I would not even dare suggesting it. \$\endgroup\$ – Justme Jan 13 '20 at 17:31

Simple analog summing circuit with video op-amps should work fine for this, when frame rate conversion is not needed. If frame rate conversion is needed then this must be done in digital domain with DRAM frame buffer, but most likely no display will eat 1080p24 or 1080p30 signal from analog input. If doing this in digital domain, video processor ASICs are cheaper when mass producing these and easier to get it working, and you also need video ADCs and DACs. But for a one-off hobby project, a single FPGA can be easier to get.


You need an FPGA I think. VGA is sent on separate analog RGB so to monochrome it you would need to digitize and read the analog RGB, calculate the luminance (average) and regenerate it equally (divided by 1/3) on all three channels. You could possibly do it the same way in an analog circuit with opamps since it doesn't sound too complicated now that I described it.

I think changing refresh rate is much more difficult. That sounds like FPGA frame grabber territory.

  • 5
    \$\begingroup\$ You could definitely do it with an analog circuit. \$\endgroup\$ – user253751 Jan 13 '20 at 16:23
  • 1
    \$\begingroup\$ Calculating the average by summing all three signals and multiply with 1/3 may be done all analog without a digital FPGA.. \$\endgroup\$ – Uwe Jan 13 '20 at 17:12
  • 2
    \$\begingroup\$ Might work but usually RGB is not simply averaged to grayscale, normally it uses about 60% green, about 30% red and about 10% blue, depending on which standard is used. See ITU-R BT.709 for example. \$\endgroup\$ – Justme Jan 13 '20 at 17:17
  • \$\begingroup\$ @Justme weighted average then. Don't use identical summing resistors. And regeneration too? Or is that double counting? \$\endgroup\$ – DKNguyen Jan 13 '20 at 17:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.