BYOD/S

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 firmwarearrow-up-right.

Device setup

See our alternate screensarrow-up-right and BYOD guide for instructions to jailbreak or build a device that's compatible with our firmware.

Server quickstart

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 Implementationsarrow-up-right. To develop your own server that is TRMNL firmware compatible out of the box:

  1. Change the base URL to your own server or local network from the WiFi Captive Portal

  2. Mimic the api/setup and api/display endpoints per our firmware READMEarrow-up-right

  3. Follow our ImageMagick guide to create TRMNL firmware compatible images

  4. Profit(?)

Other infrastructure

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.

Drag/Drop Playlists UI

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 Schedulerarrow-up-right. This makes it easy to dictate conditions for when and why a given plugin is displayed on your device.

Scheduler in action
Playlist scheduler in action

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