A word of caution if you are starting a small LCD project: the framebuffer approach is dead on Linux. The new approach is DRM (Direct Rendering Manager), that allows partial LCD updates from userspace. See
The fun here was to use only Warp 10 database on the system, the only time series database that has built-in image creation function in the language. Normal use is to build heavy dataviz on the server, then return a base64 encoded png.
It’s /dev/dri/card0 on my device.
DRM has a thing called “dumb framebuffer” which exposes a memory mapped file with the CPU-accessible frame buffer data. See DRM_IOCTL_MODE_CREATE_DUMB and DRM_IOCTL_MODE_MAP_DUMB IOCTLs. The only inconvenience, some boilerplate is required to find the correct GPU connector, and setup a supported video mode.