Skip to content

Screens & compatibility

Tesserae renders a dashboard headlessly and pushes the frame over MQTT; a small client on the other end paints your panel. What panel you can drive comes down to which client you flash and which renderer feeds it.

Panel presets

Built-in sizes (Settings → Panel). Pick custom for anything not listed, the dimensions are all that matter to the renderer.

Preset Native resolution Panel
inky_13_3 Inky Impression 13.3", 1600x1200
inky_7_3 Inky Impression 7.3", 800x480
inky_5_7 Inky Impression 5.7", 600x448
inky_4 Inky Impression 4", 640x400
waveshare_e6_7_5 Waveshare E6 7.5", 800x480
waveshare_photopainter_7_3 S3), 800x480 Waveshare 7.3" PhotoPainter (ESP32
waveshare_e6_13_3 Waveshare 13.3" Spectra 6 (ESP32), 1200x1600
waveshare_42_bw bpp), 400x300 Waveshare 4.2" B/W (ESP32, 1
custom any (set width + height) anything the inky / Waveshare path drives

Renderers

A renderer turns the composition PNG into the exact bytes a client wants. Each ships as a drop-a-folder plugin under renderers/<id>/.

Renderer Output Target client(s) What it's for
esp32_bin .bin tesserae-device-esp32-bin (13.3" Waveshare)
tesserae-device-photopainter-7.3-bin (7.3" PhotoPainter)
Composition PNG packed into the Waveshare E6 4-bpp buffer the ESP32 firmware streams to SPI.
esp32_bw_bin .bin - Composition PNG dithered to mono B/W and packed into a 1-bpp raw buffer the ESP32 firmware (e.g.
pi_bin .bin tesserae-device-pi-bin Composition PNG packed into the panel-native 4-bpp buffer the .bin Pi client consumes.
pi_png .png tesserae-device-pi-png Composition PNG, rotated to the Pi client's landscape-native pixel grid.
pico_bin .bin - Composition PNG packed into the panel-native landscape 4-bpp buffer the battery-powered Pico Plus 2 firmware (tesserae-device-pico-bin) streams onto a Pimoroni Inky-style Spectra 6 panel over SPI.
trmnl_png .png tesserae-trmnl-client Composition PNG fitted to the device's panel size, then quantised to 1-bit black/white with the selected dither.

Device kinds

The bundled client kinds Tesserae knows how to talk to. A flashed client announces itself on tesserae/<device-id>/status and shows up under Settings → Devices → Discovered. See Install a client and Set up a device.

Device kind Default panel Renderers What it is
esp32_bw_client 400×300 esp32_bw_bin Battery-powered ESP32 firmware for mono B/W e-paper panels (e.g.
esp32_client 800×480 esp32_bin Battery-powered ESP32 firmware that subscribes to tesserae/esp32/frame/bin (retained), paints the panel via SPI, and goes back to deep sleep.
pi_bin_client 1424×1200 pi_bin Raspberry-Pi-side client that consumes the 4-bpp .bin frame.
pi_png_client 1424×1200 pi_png Raspberry-Pi-side client that consumes the PNG frame.
pico_bin_client 1600×1200 pico_bin Battery-powered Pico Plus 2 firmware (RP2350) driving a Pimoroni Inky-style Spectra 6 panel over SPI.
trmnl_client 800×480 trmnl_png HTTP-polled e-paper client compatible with the TRMNL BYOS protocol.

What's been tested on real hardware

Honest status from the maintainer's own bench. Untested doesn't mean broken, it means nobody's confirmed it yet. Got one working? Open a PR or issue and we'll mark it.

Renderer Hardware Status Notes
esp32_bin Waveshare 13.3" Spectra 6 (ESP32-S3-WROOM-2) + Waveshare 7.3" PhotoPainter (ESP32-S3) Tested Primary daily driver, battery-powered, deep-sleep. The 13.3" client lives at tesserae-device-esp32-bin; the 7.3" PhotoPainter client at tesserae-device-photopainter-7.3-bin. Both pair with the same renderer; the panel preset (waveshare_e6_13_3 vs waveshare_photopainter_7_3) selects the firmware-native row stride.
esp32_bw_bin - Not yet tested -
pi_bin Pimoroni Inky Impression (Spectra 6 / Waveshare E6) Tested Fastest Pi path, packed buffer written straight to inky's _buf.
pi_png Pimoroni Inky Impression (via inky set_image) Tested Works on every inky-supported panel; quantises on the Pi each frame.
pico_bin - Not yet tested -
trmnl_png Amazon Kindle Paperwhite 2 (jailbroken) via KOReader trmnl-display plugin Tested 1-bit greyscale PNG fitted to the panel + dithered server-side. TRMNL devices (Seeed hardware running the TRMNL firmware) are supported but not yet confirmed here.