I'm using a Computing Shield with a BEMICRO MAX 10 FPGA board. It has +3.3v GPIO. I'm using (4) PMOD headers with a custom 12" cable. It was longer than I wanted, but it's what I've got. This is a cable made from Pololu Electronics -- basically DIY pre-crimped M/F header cables. I'm driving it with my own Verilog design. This is a custom computer.
I've got the 12 digital color bits + hsync + vsync + GND hooked up. I've done VGA FPGA projects before and have some familiarity. I'm running it at 800 x 480, ~31.6khz/60hz, if it matters. Samsung 21.X inch IPS LED monitor.
I've got the 12 least significant bits(MSB is on the left/top) of a 16-bit word mapped to RGB. The top bits are unused. So bits 11-8 go to Red, 7-4 go to Green, and 3-0 go to Blue.
When I output 0x0FFF, I get a dim shade of gray, when I would expect to see a purer, cleaner, brighter white. Black at 0x0000 is fine.
When I output 0x0F00, I get a pure red, but it seems awfully dim to me. The other colors like Green (0x00F0) or Blue (0x000F) are similar. Blue is actually the worst. This isn't a bright blue like I would expect.
Only nibble values of 0xA to 0xF produce visible colors on the display. Anything under 0xA is so dark that the color turned on isn't discernible.
I reverse engineered the pinout from looking at the PCB and using the Papilio Duo that it would normally connect to for the pin names. An image showing the BOTTOM of the computing shield with associated pin names would have really been helpful.
The image is crisp and stable.
I can use a scope and get output voltages. Will the computing shield output the full range of voltages? Meaning does a digital input of 0000 correspond to 0v, and 1111 to +0.7v? Any chance you have a chart the shows the corresponding voltages to expect given the input? Ie given your resistor values?
I'm inclined to think I've got a wire/pin mapping problem. or reversing the order of the bits or something.
Any thoughts or things to try?