July 10, 2026
Posting this as a pointer for anyone using this repo's overlays alongside a Pi setup that also needs a forced/no-EDID HDMI output (e.g. drm.edid_firmware= + video= KMS-based forcing) — you'll hit a real, structural incompatibility, not a config mistake:
fbtft (the legacy framebuffer driver family these overlays install) does not work under KMS (vc4-kms-v3d). Under KMS, the panel driver still probes and appears to bind, but writes never reach the physical panel. If you need both a forced HDMI output and a working SPI panel, the fix is to comment out dtoverlay=vc4-kms-v3d in config.txt and force HDMI the legacy way (hdmi_force_hotplug=1 / hdmi_group=1 / hdmi_mode=16 etc.), not the newer EDID-firmware/KMS mechanism. Side effect: under the legacy stack /dev/fb0 is typically 32bpp BGRA-ish, not the 16bpp RGB565 you might see reported under KMS — worth checking with fbset rather than assuming.
Separately, a general caution for anyone new here: the LCD35-show/MHS35-show scripts rewrite config.txt, WiFi config, and inittab/modules wholesale. If you're on a headless box or already have a customized config.txt (forced HDMI, custom overlays, etc.), read the script before running it — it's easy to lose an unrelated working setup. Installing the relevant dtoverlay= line by hand (copy the .dtbo, add one config.txt line) avoids this entirely and is enough for the panel alone.
Full write-up: https://gist.github.com/patricklum808/2a0fcbf12283083eded8dd87855a0de9
July 10, 2026
Posting this as a pointer for anyone using this repo's overlays alongside a Pi setup that also needs a forced/no-EDID HDMI output (e.g.
drm.edid_firmware=+video=KMS-based forcing) — you'll hit a real, structural incompatibility, not a config mistake:fbtft (the legacy framebuffer driver family these overlays install) does not work under KMS (
vc4-kms-v3d). Under KMS, the panel driver still probes and appears to bind, but writes never reach the physical panel. If you need both a forced HDMI output and a working SPI panel, the fix is to comment outdtoverlay=vc4-kms-v3din config.txt and force HDMI the legacy way (hdmi_force_hotplug=1/hdmi_group=1/hdmi_mode=16etc.), not the newer EDID-firmware/KMS mechanism. Side effect: under the legacy stack/dev/fb0is typically 32bpp BGRA-ish, not the 16bpp RGB565 you might see reported under KMS — worth checking withfbsetrather than assuming.Separately, a general caution for anyone new here: the
LCD35-show/MHS35-showscripts rewrite config.txt, WiFi config, and inittab/modules wholesale. If you're on a headless box or already have a customized config.txt (forced HDMI, custom overlays, etc.), read the script before running it — it's easy to lose an unrelated working setup. Installing the relevantdtoverlay=line by hand (copy the.dtbo, add one config.txt line) avoids this entirely and is enough for the panel alone.Full write-up: https://gist.github.com/patricklum808/2a0fcbf12283083eded8dd87855a0de9