Tinta: a low-power e-paper display for Home Assistant

Hello everyone,

I would like to show you a small device I have been building. It is called Tinta, it hangs on a wall without any cable, and it displays whatever you want from Home Assistant on e-paper.

The way it works: at configurable times Tinta wakes up, connects to the local WiFi, asks Home Assistant for the data you selected, “prints” it onto the e-paper, and then switches itself off completely. E-paper keeps showing the content while the device is off. There is no deep sleep involved — a hardware RTC and a MOSFET cut the supply, so between two updates the microcontroller draws almost nothing and the RTC alarm (or push buttons or NFC) switches it back on.

How long it runs

This is a real measurement, not a datasheet estimate. One 4.2-inch unit has been running unattended on a single set of three AAA alkaline cells:

468 days, 4772 display updates, waking roughly once per hour — still going.

There is also a 7.5" version.

Yet another epaper device - Why not just ESPHome?

The difference is the power path and the hardware. An ESP32 deep-sleeps between updates. Tinta does not sleep, it switches itself off — a hardware RTC and a MOSFET cut the supply, so between two updates there is no microcontroller running at all, and the RTC alarm (or a button, or an NFC tap) puts the power back. That is what turns months into a year(s) runtime, and it is why primary alkaline cells make sense here - the self-discharge for alkaline batteries is favorable over most rechargeable batteries.

How it appears in Home Assistant

Tinta announces itself over MQTT discovery. After the first wake there is a device in HA with its entities — battery voltage, WiFi signal, CPU temperature, wake source, and a few more you can switch on or off in the web interface.

The other direction is used to configure Tinta. Discovery can declare writable components, so the display title is a text entity in HA: you type into it, the retained command waits on the broker, and Tinta applies it on its next wake. A binary_sensor shows “change pending” until that happens. No helper entities and no automation needed. Refresh interval and data source will follow through the same mechanism. This can easily be extended to other variables. Additionally, Tinta can also be setup via wifi acting as access point.

For the content itself Tinta reads the HA REST API — the current value of any entity, and its recorder history for a graph. Which entity and which time window are set in the web interface, so nothing has to be recompiled.

Enclosure and NFC

The case is 3D-printable and part of the project. It has a dovetail on the back, so the device sits firmly on the wall and can still be taken off easily.

There is also an NFC chip with a coil in the enclosure. Hold a phone against the display and it wakes — the chip is powered entirely by the phone’s field, so the tap itself costs no battery at all, exactly the same wake concept (and circuitry) as the RTC alarm. Beyond waking, the tap can write: a short text note or a small hand-drawn sketch from the phone, straight onto the e-paper. A digital replacement for the sticky note on the door frame. This can be extended for home assistant commands - I am open for ideas!

Building one yourself

Everything is open source — firmware, KiCad project, and the enclosure:

You do have to solder the custom PCB if you build one yourself.

Ideas?

I am happy about more ideas and things one could do with home assistant and tinta. I built it originally for something quite different. We moved to a self-hosted room and desk booking system, and it works nicely — but once people stopped sitting in fixed offices, I kept walking into the wrong room looking for a colleague. The booking system knew where they were. The door didn’t.

What I wanted was a small sign that shows that automatically: common batteries, existing Wi-Fi, no cables, no per-device licence, no extra network, and not a proprietary box with an unknown future. I could not find one to buy, so I set out to build it myself. And partly just for the fun of it — I wanted to play with NFC and see how far down the power budget could go.

Where this is going

I would like to develop Tinta further, as an open source project and as a finished device that arrives ready to use, for people who would rather not solder. To find out whether there is enough interest for that, there is a pre-launch campaign on Crowd Supply. Signing up for the update list costs nothing and is exactly the signal that decides whether it gets built:

Happy to answer questions, and I am glad about every idea for what else one could display.

A small addition to the NFC part above, for anyone interested in the circuit details. You can find schematic, coil, and the measurements behind it at

That wake path got an honorable mention in Hackaday’s Green-Powered Challenge in May: Congratulations To The Green Powered Challenge Winners! | Hackaday From the article: “We love the idea of surreptitious NFC-powered data insertion while the microcontroller is still sleeping.”