ddc-oled

Tiny OLED as a second monitor
git clone https://git.mitxela.com/ddc-oled.git
Log | Files | Refs | README

Branches

Name Last commit date Author
master2022-05-11 07:51:58 +0100mitxela

File Tree (HEAD)

Name Size
LICENSE1.039K
pyxcursor/LICENSE1.039K
pyxcursor/__init__.py40B
pyxcursor/pyxcursor.py4.454K
readme.md995B
ssd1306.py3.746K
tinyHdmi.sh530B

History

* 929b175 (HEAD -> master) | mitxela 2022-05-10 18:35 | update readme | * 782925b | mitxela 2022-04-26 20:01 | attempt to make wrapper script more generic | * 154d219 | mitxela 2022-04-26 18:11 | dither on off | * 62630a3 | mitxela 2022-04-26 18:01 | render cursor after dithering | * cb852ab | mitxela 2022-04-26 00:34 | Wrapper script to launch | * d2c94ba | mitxela 2022-04-26 00:03 | combine startup commands into single transaction | * f46468e | mitxela 2022-04-25 23:52 | cleanup | * 8f24934 | mitxela 2022-04-25 21:45 | apparently working | * 0456db7 | mitxela 2022-04-25 19:52 | still some weirdness | * 7667049 | mitxela 2022-04-25 17:07 | Initial attempt to only transmit differences | * 3299da4 | mitxela 2022-04-02 11:38 | licenses | * 6a6b64b | mitxela 2022-03-31 15:07 | add readme | * ca7b619 | mitxela 2022-03-29 23:59 | Mouse pointer rendered correctly | * 9b8d98d | mitxela 2022-03-29 23:57 | Import bindings for XFixesCursorImage from https://github.com/zorvios/PyXCursor | * 84005dd | mitxela 2022-03-28 22:20 | use i2c-dev directly to overcome smbus 32 byte limit | * 4e3c7b0 mitxela 2022-03-28 20:59 display working

Contents of readme.md:

DDC-OLED

Use an SSD1306 OLED display as a secondary monitor by piping video to it over the DDC bus. This is a total hack and by far the worst way to get a second monitor.

This demo will only work on Linux using X11, and requires the i2c-dev kernel module loaded.

Update: Command line options for dither and brightness have been added, and the script now only updates the parts of the display which have changed.

I've added a wrapper script which handles the xrandr framebuffer setup and teardown, and attempts to determine the i2c device number based on its name as output by i2cdetect -l (or cat /sys/class/i2c-dev/*/device/name). In my case, that's i915 gmbus dpb. The script assumes the primary display is named eDP-1 and has a resolution of 1920x1080. You should definitely read through/modify the script before running it.

More info: https://mitxela.com/projects/ddc-oled

PyXCursor from here: https://github.com/zorvios/PyXCursor (modified to also return xhot and yhot)