BYOD/S
Bring your own device, and build your own server for the device to ping.
Last updated
Bring your own device, and build your own server for the device to ping.
In the BYOD/S configuration, the only TRMNL IP is our open source firmware.
See our alternate screens and BYOD guide for instructions to jailbreak or build a device that's compatible with our firmware.
The TRMNL web server generates PNG images. When a device pings our Display API, the next-in-queue image is shared as an absolute URL inside a JSON response like this:
{
"image_url"=>"https://trmnl.s3.us-east-2.amazonaws.com/path-to-img.png"
}For ready-made OSS server clients, see BYOS Implementations. To develop your own server that is TRMNL firmware compatible out of the box:
Change the base URL to your own server or local network from the WiFi Captive Portal
Mimic the api/setup and api/display endpoints per our firmware README
Follow our ImageMagick guide to create TRMNL firmware compatible images
Profit(?)
In the quickstart above we glossed over a critical element: "next-in-queue" images.
At TRMNL we use a Playlists table to manage the ordering of plugin instances, letting users drag/drop different items in whatever sequence they prefer.

Each item in a Playlist is an instance of a Plugin, which we call a PluginSetting.
This keeps our Plugins table immutable, for example Google Calendar is just a name, icon, and form field parameters. Meanwhile details about a connection to Google Calendar are stored inside a PluginSetting record. Keep this in mind as you build your own server -- do you want to allow multiple connections to the same parent plugin?
TRMNL also offers a Scheduler. This makes it easy to dictate conditions for when and why a given plugin is displayed on your device.

Following our architecture is unnecessary for a self-hosted ePaper dashboard, but we do encourage you to check out those which have already been implemented in BYOS clients.
Last updated