I've been playing around with the XIAO ePaper Panel from Seeed Studio over the last while, and I absolutely love it. It's an ESP32-based 7.5-inch e-ink display that can link up with Home Assistant, and you can develop for it in any language that supports the ESP32. I first started with ESPHome, and I've slowly iterated and improved on that setup over the past month or so since I last covered it. However, this particular panel also supports TRMNL, so I decided to try that out, too.

TRMNL is an e-ink dashboard aimed at productivity, and the company sells its own bespoke hardware that you can purchase, dedicated to running TRMNL. Seeed Studio has since also launched the "TRMNL DIY Kit," which is quite similar to the Xiao ePaper Panel, except that it has no plastic shell by default and comes with an ESP32-S3 instead of the ESP32-C3.

All of this piqued my curiosity; TRMNL seems like a good middle ground when it comes to buying and deploying an e-ink display, especially if you still want to maintain control over your data. While I enjoyed working with ESPHome to design a personal dashboard linked with Home Assistant (and I still use it on my other panel), the simplicity and ease of use of TRMNL is a big deal.

About this article: TRMNL provided us with a BYOD license for the purposes of this article. The company had no input into its contents.

What is TRMNL?

There's a big focus on "unbrickable"

We've already covered the basics of TRMNL, but there's more to this company than just an e-ink display platform with a bespoke device preflashed with their firmware. In fact, in an age where we've seen smart home devices come and go as companies shut down support, I've been very impressed by the company's approach to the smart home ecosystem. TRMNL is "unbrickable," even if the company shuts down, and I'll explain how.

When you deploy a TRMNL device purchased from the company and connect it to the internet, it'll pop up with a device ID on the screen that you can use to register it online. This device ID is tied to your particular screen and is how TRMNL's servers can drive content on your display. However, when connecting the display to your Wi-Fi, there's another option that you can choose as well, and that's to use your own custom TRMNL server.

To quote TRMNL's founder, Ryan Kulp:

On Day 1 we made a promise: build an un-brickable device. Because we've all been there: new tool, great potential, something goes wrong, energy wasted.

A frequent Kickstarter Backer myself, I knew this was a losing strategy to build trust. I also knew it would take time to get it right, so thanks for the patience these last 6 months.

In that same post, TRMNL debuted Sinatra, the first iteration of the company's "Bring Your Own Server" software. This has since been replaced by two server options: Terminus (built on Ruby and Hanami) and a Laravel build, both of which are full-fledged replacements for the hosted TRMNL server that you can use out of the box. An engineer at the company put the concept more bluntly in a Reddit post a couple of months back.

Being open-source, we pledged to keep the project alive, even if we go bankrupt (as a company). You won’t be left with a useless device you bought.

There's another upside to this, though, which is that anyone can spin up and deploy their own servers to use the TRMNL firmware and point their device to their server instead of the cloud. This not only means that you can technically buy one of the Seeed Studio displays and host a TRMNL server instead of paying to use their services, but it means that if the company goes bankrupt, you're not left with a completely useless device. It's designed to outlive the company, and that's fantastic.

As a no-frills e-ink device, TRMNL is great, but its "unbrickable" nature is even better. The $50 fee to bring your own device to their service (which you have to pay to bring either of the Seeed offerings over) makes sense from the perspective of paying to use TRMNL's servers and development resources. Plus, it's a single up-front payment, rather than a subscription, meaning that it's not really different from any other software purchase, either. Really, the only difference is that you can put in the work and self-host it yourself, which is a massively consumer-friendly practice.

Setting up TRMNL

It's so easy to use

Once your device ID is added to TRMNL, you can immediately start creating your "playlist." A playlist, on TRMNL, is a series of screens that can be shown on your device, comprised of plugins. These range from simple pieces of information, like the weather or your calendar, to even building your own.

To build your own, you can use the "private plugin" option, though this requires the developer edition of TRMNL, which is an extra $20 over the initial asking price. Here, you can create a simple flow that will either poll data, merge JSON data, or host a webhook on TRMNL's servers. Once you've entered your data, you can edit the design of what's shown on the screen in markup.

There's a lot to love about TRMNL, and there are some amazing plugins that you can use immediately and set up in seconds using the plugin browser.

Some plugins you can install include:

  • Stock price tracking
  • NYC metro schedule
  • Astronaut tracking
  • Email analytics
  • YouTube channel and video analytics
  • Display any image
  • RSS feed reader

There's more than that, too, but those are some of the most interesting ones I spotted. They're all basically just a one-click setup, no strings attached. For data like weather reports, TRMNL takes the pain out of needing to maintain API keys as well. It's all done for you, and I was able to get a weather screen in a playlist in seconds.

Hosting my own server

Surprisingly simple

Out of curiosity, I wanted to put TRMNL's "unbrickable" claims to the test. I pulled the latest version of their Laravel-based server, deployed it in a Docker container, and made it accessible across my home network. I then factory reset my installation and tried to set it up with my new custom server.

It all just... worked. My display joined my TRMNL server instance, and I could instantly control it from my PC. Even better, entirely through my local network, too. While the Laravel server offers a way to proxy requests to official TRMNL servers through your own server, I didn't enable this feature as I wanted to get a feel for what this device would be like in the event that the servers shut down for good.

I was genuinely surprised; there were some plugins in place that I could test, and you can make your own, too. In fact, I would wager that if TRMNL did shut down, I could see a community pop-up surrounding the creation and deployment of new plugins for self-hosted instances like these. I've already found other people replicate the same functionality in Python to act as a dedicated dashboard for Home Assistant, and I'm sure there are others out there, too.

So, is the TRMNL truly "unbrickable"? In its current state, I'd certainly say so. The Laravel server offers enough functionality to be a replacement if the company were to disappear one day, and it was surprisingly easy to deploy and get up and running. Offering a self-hosted solution to end-users is a fantastic way to garner trust, and its existence, almost paradoxically, likely extends the lifespan of the company, too.

Think about it; if you were considering buying a TRMNL, but you were worried the company could shut down and your device would be useless, that may result in you not purchasing one. However, the knowledge that there's a fallback option makes it easier to take the plunge, as you know that even if the company went out of business, your device could still work, even if it just required jumping through a few hoops.

I love what TRMNL is doing

"Unbrickable" is sorely needed in the smart home space

I'm a big fan of projects like these, where there's a clear level of respect given to the consumers up front. No subscription fees, a failsafe provided to end users if the company does go under, and a focus on just the product. There's no constant nagging to upgrade to some other package, and what you see is ultimately what you get.

Everything about TRMNL seems to focus on productivity and fewer distractions, and the company, in a way, mirrors that philosophy in how it's set up. You can just buy their product and not have to worry about it, and if there comes a day where you do have to worry about it... Well, you can still use the device you purchased.

Even when not focusing on the self-hosted elements for a moment, the list of plugins is fantastic and only growing, and they look great, too. UI design is hard, and while I was proud of my dashboard that I built using ESPHome, it's simply no match for how these look. It's a lot of the same customizability, but without the fuss of trying to develop your own solution.

If you've been on the fence about getting your own TRMNL device, there's a lot to love. If you're looking for a dashboard that can sit on your desk, free of distractions, just showing you information that you need, then this is honestly an amazing investment. My other dashboard, designed with ESPHome, saves me a lot of time by simply keeping my tasks on the screen, the weather, and the temperature in the room that I'm in.

All of that information is what I need static on my desk, and I don't need to go looking at another app or website to get that information; it's all right beside me. TRMNL achieves the same thing, and if you want a way to just keep constant information on your desk, it's an easy-to-use, no-frills solution that lets you focus on other things.