Category Archives: Random IT

TMRNL – My first plugin (Syncing Apple reminders)

I picked up a TRMNL earlier this year and have enjoyed experimenting with it. It’s an e-ink display with a battery and microcontroller in a sleek case, complete with a wall-mount hook.

Screenshot

What drew me in was the flexibility: no power or network cables needed, strong developer docs, BYOD/BYOS support, and open-source firmware. Even if TRMNL disappeared tomorrow, the device would still be usable.

With a developer license, you can create custom plugins. I’ve built two so far:

  • Apple Reminders sync using a Webhook
  • Timesheet overview using Polling

Under the hood, the firmware connects to TRMNL’s backend, which manages the plugin playlist and generates images server-side. Plugins are split into data and view (markup) components.

Sharing Data with Plugins

Data can be passed to a plugin via strategies like Webhooks or Polling. For Webhooks, TRMNL provides a custom URL that accepts HTTP POST data, which is then rendered via HTML + Liquid templates.

Once created, a plugin can be added to your playlist and scheduled to refresh at set intervals.

Apple Reminders Syncing

For syncing Apple Reminders (similar to Snazzy Labs’ setup), I use an Apple Shortcut to export my top 10 reminders, including tags and priority. The shortcut sends them via HTTP POST to my TRMNL Webhook.

In the TRMNL web interface, I created a plugin with:

For the display, I used this markup with Liquid syntax (seen within the tbody tag) to loop through the reminders and render a table:

<div class="title_bar">
  <img class="image" src="/images/plugins/trmnl--render.svg" />
  <span class="title">My Reminders</span>
  <span class="instance">Apple Shortcuts</span>
</div>
<div class="layout layout-col gap--space-between">
  <div class="grid grid-cols-1">
    <div class="item">
      <div class="meta"></div>
      <div class="content">
        <table class="table table--condensed">
          <thead>
            <tr>
              <th><span class="title title--small">Title</span></th>
              <th><span class="title title--small">Tags</span></th>
              <th><span class="title title--small">Priority</span></th>
            </tr>
          </thead>
          <tbody>
            {% for Item in Items %}
            <tr>
              <td><span class="label">{{ Item.title }}</span></td>
              <td><span class="label">{{ Item.tags }}</span></td>
              <td><span class="label">{{ Item.priority }}</span></td>
            </tr>
            {% endfor %}
          </tbody>
        </table>
      </div>
    </div>
  </div>
</div>

Which renders like this:

FLIR One Pro iOS Thermal Camera with USB-C to Lightning adapter

Why a thermal camera?

Last year I purchased a FLIR One Pro for iOS thermal camera with the intention of identifying areas of our house where we were not thermally efficient. While this provided some insights it didn’t lead to any action items as most of the issues where related to larger budget items (such as replacing glass windows).

The best use of the FLIR camera that I’ve had so far was a local neighbour who thought they had something decomposing in their roof due to the smell in that room, unfortunately the type of insulation in the roof didn’t let them identify the issue visually. Using the thermal camera we were able to look at the ceiling of the room and identify a hot spot of a few degrees where we suspected the issue was located. They were then able to access that specific part of the ceiling and remove the decomposing animal sorting out their issue. It was pretty nifty!

Compatibility with USB-C

The FLIR One Pro is an excellent little device however it does connect via the Lightning port on iPhone/iPad and of course Apple has now moved to USB-C for the iPhone 15 generation so it won’t connect directly anymore.

FLIR One Pro connected to my iPhone 14 Pro

Apple does sell an adapter on their website “USB-C to Lightning adapter” for AUD $49 which has a male USB-C port on one end and a female Lightning port on the other to allow connecting lightning accessories via USB-C. This was released around the time of the iPhone 15.

Apple USB-C to Lightning Adapter

I ordered the Apple USB-C to Lightning adapter to test if the FLIR camera would continue to function if I decided to upgrade to a newer iPhone in the future or if people who had newer iPhones wanted to borrow it.

How I store the USB-C to Lightning Adapter

This also got me wondering if this will function with devices other than the iPhone such as Android.

DeviceFunctional?Comment
iPad ProYes
Pixel 4a running Android 13NoDevice seems to try to connect but the FLIR camera just makes clicking noises and does not function
Colleague’s Android device (unknown version)NoSame as the Pixel 4a
Results

### iPad Pro interactions

The iPad Pro worked without issue.

iPad Pro testing

### Pixel 4a interactions

The Pixel 4a was updated to Android 13 & had all possible application updates applied as of 2nd January 2024. It consistently went through the trying to connect screen before failing and retrying.