BYOD/S

Bring your own device, and build your own server for the device to ping.

In the BYOD/S model, the only TRMNL IP is our open source firmware. Technically we don't owe you any explanation to get up and running, but we'll do it anyway. ;)

Device setup

See our BYOD guide for instructions to build a device that's compatible with our firmware.

Server quickstart

Oversimplified, the TRMNL web server generates 1-bit Bitmap images. When a device running TRMNL firmware pings our web server, 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.bmp"
}

You can demo this process from the command line by installing ImageMagick, then invoking convert like this:

convert regular_img.png -depth 1 eink_compatible.bmp

With this in mind, your job in building your own server is to create an endpoint that responds with links to firmware-compatible Bitmap images.

Assuming you've set up a device, simply...

  1. change the base url of "https://usetrmnl.com" to your own server

  2. mimic the api/setup and api/display endpoints to respond per our docs

  3. profit

Other infrastructure

In the quickstarter 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, so that users can drag/drop different screen content in any sequence they like.

Each item in a device's Playlist is an instance* of a Plugin, something we call a PluginSetting.

This keeps our Plugins table immutable, for example our Google Calendar record contains just name, icon, etc. But details about an actual 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?

TBD

We'll have more information soon. Our team is currently split between manufacturing, crowdfunding, dveloping plugins, and improving the firmware for launch.

Last updated