Raspberry Pi VGA HAT, 24-bit 1080p

lo-tech-vga-r01-banner

The Raspberry Pi uses HDMI for it’s built-in display interface, and it’s well documented that a second screen can be connected to the GPIO header when switched to ‘display parallel interface’ (DPI) mode. The DPI is powered from the Raspberry Pi’s GPU and so has the same performance and capabilities as the HDMI port – 1080p, 24-bit colour, 60Hz.

Project boards exist already to connect a VGA screen to the GPIO, but these are very simple designs and have some limitations such as 6-bit colour and sensitivity to interference from the wireless peripherals in the RPi 3. The RPi GPIO is also stressed by the TTL control signals in the VGA interface and the project boards lack the certifications needed to be offered as finished products.

The Lo-tech Raspberry Pi VGA Board aims to address these problems, providing a true-colour VGA Adapter in a ‘HAT’ PCB format that will provide a reliable VGA output for primary or secondary display purposes whilst protecting the RPi, both from ESD when the screen is connected hot and from over-stressing the GPIO outputs via buffering of the key control signals.

I’m excited to report that this board has just cleared EMC testing, meeting EN 55032:2015 Class B limits, and ESD testing, passing BS EN 61000-4-2:2009 level 4, and so can be pre-ordered today (first deliveries expected approx. February 2017).

vga-r01-slider

15 Responses to Raspberry Pi VGA HAT, 24-bit 1080p

  1. Anonymous says:

    I have a question, but it’s a bit of a weird one.
    Since this hat is designed to be on top of the pi it would block airflow and prevent cooling solutions. Would it be possible to get an underside-mount via pogo pins?

    • james says:

      I guess this is more of an issue with RPi4 than when this board was originally developed, on an RPi2 which produces very little heat. Maybe it would be enough to reshape the board as an ‘L’?

      • Anonymous says:

        Yeah, that would do it, but it might compromise the structure a bit since it would lose the 4th mounting hole.
        Maybe putting a hole in the middle over the components that need a heatsink so a 40mm fan can be slotted in?
        I’d pay double for one that had a low-profile 5v fan header and a fan mount, but I don’t know if there’s enough demand to justify a production run :/

        • james says:

          An alternative approach is to mount a fan beside the assembled RPi/VGA-hat, so blowing ‘through’ the sandwich. This allows the use of a bigger, quieter and more reliable fan, of course at the expense of case space. When used as an embedded system, e.g., in an arcade cabinet, that presumably wouldn’t be a problem.

  2. kitty666cats says:

    I use this on an old Apple IIgs CRT monitor with a custom 15kHz RetroPie image (and a sync combining circuit, as that monitor uses RGBS sync rather than RGBHV) and it looks phenomenal. The only other 24bit GPIO hat is over $100… I’ll pass! Haha. Anyhoo, just wanted to tell you that this thing is an underrated gem.

  3. Fernando Trevisan says:

    which image can i use with pi4 for retro games CRT 240p? I already bought your product.

  4. Yury Euceda says:

    According to VGA standard only 3×8 + Hsync + Vsync = 26 GPIO are needed and then ¿Does this hat uses all 40 GPIO or there are some that can be used for another purpose? This is because I’m interested in this device but I need to add some other components and in this mode RPi cant not use SPI.

    Thank you very much.

    • james says:

      Hi, the board uses: Blue – GPIOs 4..11; Green – GPIOs 12..19; Red – GPIOs 20..27; plus GPIOs 2 and 3 for HSYNC/VSYNC. That only leaves ID_SD and ID_SC, which I think can be used as GPIOs except on the RPi3.

  5. Arman A says:

    hi there, I am interested in buying this board to retrofit my vehicle’s display (by adding rpi4 with openauto firmware). input video format must be rgbhv with 800×480 resolution and I am using cheap HDMI to vga converter for this however the image quality leaves much to be desired. Can I use this VGA shield to output above mentioned resolution? I haven’t found this resolution in dpi modes mention in your wiki

    • james says:

      This can probably be achieved using dpi_timings but some experimentation is probably needed. You might try “dpi_timings=800 480 48 40 40 3 10 10 28007040” which would be 60Hz with 40 pixel front and back porch horizontal and 10 lines front and back vertical. ChatGPT can probably help you – good luck!

  6. Michael says:

    Hi, I was wondering if I could get a 480 signal from this to my CRT. Thanks!

  7. Chad Boughton says:

    I am wondering if this could be used to drive a monochrome TTL display with MDA? Has anyone done this?

    • kitty666cats says:

      While I am almost certain you can dial-in the oddball resolutions and Horiz/Vert frequencies, the issue is “down-converting” it to its original transistor-transistor logic…

      I found this post:
      “I assume you want to connect machine emulating CGA image through VGA to the native CGA monitor.

      It is of course possible, but mind cost and quality.

      To formally downgrade VGA to CGA you need scan frequency go down from 31 kHz to 15 kHz, and thus dot clock will half too, but you will need to read two rows and perform intelligent generation colors of the single CGA row out of two VGA rows (similar operation to be done on dots located within the same row).

      Then, color encoding will be lossy, but it will not be a very big problem if you output CGA image onto VGA – you will only need proper conversion table, however this may require tuning or adjustment within various setups in regard to analog signal integrity, strength and noise.

      The device, at its complexity level, should be the same complex as RGB to VGA converter (example).

      I am sure that off the shelf devices do not exist for simple reason: there’s no enough market demand. Probably you can simplify things by using VGA to RGB converter which outputs 15 kHz, then you will only need to convert analog to TTL using conversion table (as converter will perform clock halving and frequency conversion). But note: you must use active converter which halves the clock rate (the box), just direct cable will not work.

      P.S. I think this question relates more to SE.EE rather than SE.RC.”
      Via – https://retrocomputing.stackexchange.com/questions/8551/vga-to-cga-rgbi-signal

      …but the wonderful thing about the Pi is you don’t have to worry about some sort of external scaler. So all you need is, hopefully, just some sort of circuit and, per the quote, “conversion table”. Considering you need mono, perhaps it’d be less work, heh.

      I think your best bet would probably be making an account on vcFed or VOGONS, then trying to gather some folks together to finally figure this out. I say “finally” because I have always had a morbid curiosity about converting analog RGB to digital RGB. I ended up finding this neat thing:
      https://youtu.be/_ZQ7Aw_jUmI?si=LK6I771mXJqMa3eZ
      It’s outrageously cool, I saw it on eBay ONE time (it may even be what led me to finding the video).

      I know I’m exhausting you with all these links, ideas, quotes… but I have thought of ONE other thing.

      What a lot of people don’t know is several earlier Extron RGB interfaces (if you’re unfamiliar, they’re these awesome boxes that let you separate or combine sync on a RGB cable/aid in boosting long cable runs) support digital RGB/have the ability to convert digital RGB to analog. I have a Extron “RGB 202 Plus” (it says MX/VS afterwards) and it has a dedicated TTL input.

      Obviously, you’re looking to convert analog to digital, not do the opposite as you are trying to BUT: the green output of these can double as mono. With luck, you might be able to input the signal from the Pi – WITH the *exact* video timings – to one of these 202s (possibly other old ones w/ TTL inputs) and be able to do it.

      I don’t know if you can just straight-up send it into the analog input ‘n just use mono, or if you’d have to “trick” it and send the Pi’s analog RGB to the TTL input. I am not certain if MDA also uses a very specific voltage, and AFAIK you can’t mess with the voltage the Pi outputs via simple configurations.

      SO, in conclusion, there’s Extron 202’s out there without the “Plus” and I think they all accept TTL inputs. So maybe any variant of the 202 does (just Google Extron 202), and maybe you can very luckily succeed since you only need mono and not all the colors.

      You could try buying one on eBay, but I still also recommend making accounts on the forum(s) where someone with the electrical know-how can be of better help and correct any wrongs I could have made.

      Good luck, pal!

Leave a Reply to kitty666cats Cancel reply