Mastodon github.com/rknightuk proven.lol/aaecd5

Last week I ordered a TRMNL. It's an 800x480 e-ink screen with a plugin system and a little kickstand.

/save

Use the code robb15 to get $15 off. I get $5 towards another TRMNL if you use it so everyone wins. Except my wife who will wonder why I bought yet another thing for the house.

I bought the developer edition which gives you access to make your own plugins rather than exclusively rely on the work of others. It also means I was able to get going before it even arrived with a virtual device. The way plugins works, I was able to put together an EchoFeed plugin pretty easily to show sign ups, posts, and other things. I added an endpoint to EchoFeed and piped that into the plugin.

A TRMNL panel showing stats from EchoFeed

Assuming there's an endpoint that takes an API key for authorisation (or nothing, in the case of Mastodon), it's really simple to make plugins. The rendering is done with Liquid which I was already familiar with. TRMNL have a CSS framework for making plugins. You don't have to use it, but you probably should. The first plugin I made was one for Relay for St Jude which I mentioned in weeknote #1951 - I'll make sure this is live and ready to go for when the campaign starts[1].

The first version required entering your campaign URL manually (e.g. https://titlity.com/@rknightuk/stjude2024. I spotted an xhrSelect in the docs as "coming soon" but Ryan at TRMNL got it added within a few hours of me asking nicely so now I can fetch all campaigns from the API instead of expecting people to paste in their campaign URL. Very handy. For reference, I did need to add the following headers on my server to get it to work:

header('Access-Control-Allow-Headers: *');
header('Access-Control-Allow-Origin: *');

I could have done a better job here but there's nothing in this particular endpoint that requires it can only be accessed by certain domains. It's fine. CORS gunna CORS.

I've also submitted three plugins since having it:

  1. Fathom Analytics
  2. Mastodon
  3. Stripe

There's a screenshot plugin option which will take a screenshot of a webpage and show that on screen which meant I could do a proof of concept for Project Mosaic[2].

A TRMNL showing a grid of small pixels, all randomly colored in black and white

TRMNL have a web component which you can see in use on this demo page. I grabbed the SVG out of it so I could make a template in Pixelmator and I can drop in a screenshot to make nice looking images to share. Their GitHub has a bunch of other resources too like servers, libraries, and a list of 3D printable mounts.

You can, if you choose to, host your own server instead of relying on theirs. I've installed the Laravel version to check it out but I haven't done much with it. It is reassuring that I could run the whole stack if I wanted to. I won't, but I could.

I've wanted some kind of "screen with data" for a while and had similar thoughts to Jachin: there are lots of other options (iPads, Raspberry Pi mirrors, Skylight) but they all have major downsides. TRMNL meets most of my requirements and I'm already considering getting another one for the kitchen[3].


  1. It's basically September

  2. More on that soon, also codenames are always cool

  3. So please use my code robb15 thanks very much

Discuss on the 'don 2025-06-13

One Week with TRMNL rknight.me/blog/one-week-with-

Wrote up a slightly rambly post about TRMNL including Project Mosaic

Popular Posts

Analytics powered by Fathom