Fake any display for <50$ and a Raspberry Pi

Fake any display resolution by editing the EDID information stored inside a headless ghost E²PROM HDMI dongle.

Similar projects worth following
I use a Headless Ghost to fake my 21:9 ultra-wide monitor for Parsec Game Streaming.

WARNING: Do not use seperate pull-up resistors with a Raspberry Pi. Some microcontrollers (like RPi) have built-in pull-ups on their I²C channels. By adding additional resistors in parallel one would decrease overall resistance by

thus increasing current on SDA/SCL to a possibly damaging level.

Motivation: I use Parsec Game Streaming to stream games from my gaming PC inside my rack in the basement.

Parsec requires to have a monitor attached to be able to stream the display output over the network. Therefore you need to have either a real display attached to your GPU or use a so called HDMI ghost display if you want to go headless like I do.

Issue: But every ghost I bought only offered the common 16:9 or 16:10 resolutions which do not suit my special need for a 21:9 2560x1080 ultra-wide gaming experience I could have with my monitor.

Solution: With further Google research I stumbled upon a Kickstarter project called "Headless Ghost" that promised to offer a programmable HDMI dongle using an E²PROM to store monitor EDID and an I²C interface to program the chip.

Utility to import/export and edit EDID data

x-zip-compressed - 541.21 kB - 11/25/2019 at 19:39



Datasheet for the E²PROM

Adobe Portable Document Format - 584.83 kB - 11/21/2019 at 15:28



Pinout for GPIOs on Raspberry Pi 2. See for I²C pins.

Portable Network Graphics (PNG) - 374.58 kB - 11/20/2019 at 19:32


Headless Module Programming.pdf

Programming description and pinout to program the E²PROM. Turn to page 2 for HDMI pinout.

Adobe Portable Document Format - 230.21 kB - 11/20/2019 at 19:20


  • Wiring up

    Steven Roch11/25/2019 at 20:33 0 comments

    Use the HDMI breakout beard and plug in the Headless Ghost.

    Follow the pinout described in the datasheet of the headless ghost for correct wiring.

    • Breakout Pin 15 ---SCL--> Pin 2 (BCM) or Pin 3 (Standard) RPi
    • Breakout Pin 16 ---SDA--> Pin 3 (BCM) or Pin 5 (Standard) RPi
    • Breakout Pin 17 ---GND--> GND RPi
    • Breakout Pin 18 ---3.3V--> 3.3V RPi

    Be careful with pull-up resistors and voltage!!!

    I can directly attach my adapter to the Pi because:

    1. the E²PROM supports input voltages from 1.7V up to 5.5V (depending on I²C frequency)
    2. every Raspberry Pi from Model B+ on has internal pull-up resistors to 3.3V

    Therefore I can operate at 3.3V which is the voltage level the I²C lines are already pulled up to internally.

    For use with different microcontrollers or E²PROM use level shifters.

  • Starting the adventure

    Steven Roch11/20/2019 at 19:25 0 comments

    Nov. 20th 2019:

    Today I finally got everything I need to program the dongle.

View all 2 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates