← Back to all posts

Introducing Palettes

in classic startup tradition, we launched TRMNL with hard-coded values like "800x480" pixel dimensions across both the frontend and backend rendering pipeline.

paying down this technical debt was a blast (/s) and we learned a lot along the way. for example, as BYOD took off we realized: displays have a lot of specs! we publish those parameters in the Models API, making them accessible to BYOS clients for easy parity.

https://usetrmnl.com/api/models

but another aspect of displays and devices is their capabilities, and more importantly what an end-user wants to do with their display, regardless of its capabilities.

this may sound counter-intuitive, so let's take an example. suppose your e-ink display supports up to 7 colors, but requires 25 seconds to load, and you want the menu at your coffee shop to cycle every 30 seconds. wouldn't it be nice to render that menu in black and white, reducing the refresh time to < 1 second, but after closing hours show something in full color?

thus we created color palettes, yet another public API anyone can consume.

https://usetrmnl.com/api/palettes

thanks to this abstraction, any TRMNL device running FW1.6.X+ may specify which colors their content is rendered in, on a per item basis.

get started:
https://help.usetrmnl.com/en/articles/12985974-understanding-color-palettes

Ryan Kulp

Founder at TRMNL