My TRMNL ePaper screen now has an Android companion app.

This is the same screen from Two Tiny Screens and No Grand Plan, and more specifically the one that has lately been busy acting as a tiny DietPi dashboard.

This was supposed to make the project more civilized. Instead of sending commands with curl, I can use the phone to update the DietPi dashboard, upload TXT books and images, write text directly onto the screen, and switch modes without pretending that an HTTP endpoint is a user interface.

The phone also does the expensive work. It can reach my Orange Pi through Tailscale, render an exact 800x480 monochrome frame, and hand the finished pixels to the ESP32 over local Wi-Fi. The screen only has to display them and remain magnificently slow.

Naturally, the first proper test immediately removed the app from the phone. The Android instrumentation runner was being helpful.

Then the guest Wi-Fi turned out to be 5 GHz, which the ESP32 regarded as an interesting rumour. I used the phone’s 2.4 GHz hotspot instead.

Then Gallery’s Open button opened Gallery without opening the selected image, because apparently sending the image ID had seemed optional. Finally, Reader and Gallery disagreed about which side of a portrait screen counted as the bottom.

All of that is fixed now. The app discovers the screen, relays the dashboard through Tailscale, opens the image I actually tapped, and uses one shared orientation for books and pictures.

So the project is simpler to use.

It only required building an Android app, extending the firmware protocol, debugging two networks, reinstalling the app, and negotiating the philosophical meaning of “down.”

Progress.