<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
  <author>
    <name>Ryan Kulp</name>
    <uri>https://trmnl.com</uri>
  </author>
  <author>
    <name>Mario Lurig</name>
    <uri>https://trmnl.com</uri>
  </author>
  <category term="trmnl"
    label="TRMNL"/>
  <generator uri="https://trmnl.com"
    version="0.0.0">TRMNL</generator>
  <icon>https://trmnl.com/favicon.ico</icon>
  <id>https://trmnl.com/blog</id>
  <link href="https://trmnl.com/blog"
    rel="alternate"
    type="text/html"
    title="TRMNL: Blog (web)"/>
  <link href="https://trmnl.com/feeds/blog.xml"
    rel="self"
    type="application/atom+xml"
    title="TRMNL: Blog (feed)"/>
  <logo>https://trmnl.com/images/brand/icons/icon--brand.png</logo>
  <rights>Copyright 2026</rights>
  <subtitle>The latest site news and information.</subtitle>
  <title>TRMNL: Blog</title>
  <updated>2026-08-13T00:00:00+00:00</updated>
  <entry>
    <author>
      <name>Ryan Kulp</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;we started with an 800x480, 1-bit display. it didn&#39;t take long to realize: designing for low resolution ePaper panels is tricky. thus Framework was born:&lt;br&gt;&lt;a href=&quot;https://trmnl.com/framework&quot;&gt;https://trmnl.com/framework&lt;/a&gt;&lt;/p&gt;&lt;p&gt;fast forward a few years, today we host 93,108 private plugins delivering 281,872 instances to 10s of thousands of devices around the world every 5-15 minutes.&lt;/p&gt;&lt;p&gt;which is why i&#39;m thrilled to announce that our entire design system is now open source.&lt;br&gt;&lt;a href=&quot;https://github.com/usetrmnl/trmnl-framework&quot;&gt;https://github.com/usetrmnl/trmnl-framework&lt;/a&gt;&lt;/p&gt;&lt;p&gt;after thousands of iterations, here are a few things it can do.&lt;/p&gt;&lt;h2&gt;Components&lt;/h2&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTgzNjk3OTk_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--d0296b0e0921f44f79c42f7d5a5e64bf798b6b27&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNjk3OTksInB1ciI6ImJsb2JfaWQifX0=--c78d5cf750f37ac92ab86f4e608f538518d9a629/framework-open-source-components.png&quot; filename=&quot;framework-open-source-components.png&quot; filesize=&quot;39512&quot; width=&quot;1600&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNjk3OTksInB1ciI6ImJsb2JfaWQifX0=--c78d5cf750f37ac92ab86f4e608f538518d9a629/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/framework-open-source-components.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;nobody wants to reinvent a table, label, or stat widget.&lt;/p&gt;&lt;p&gt;Framework components provide device-aware markup that looks great on your computer screen or ePaper display. charting is powered by &lt;a href=&quot;https://www.highcharts.com/?gad_source=1&amp;amp;gad_campaignid=22994297277&amp;amp;gbraid=0AAAAAo4v_Ovo1lO2eDETR56dG1Mdyy0xN&amp;amp;gclid=CjwKCAjw1vXTBhB-EiwAEKr_k0XLWolI0sFUp9OkEMZwV4aT7Pcpimvtzy5YirU16zPQQ3FT45CxEhoC7BoQAvD_BwE&quot;&gt;Highcharts&lt;/a&gt; under the hood, with theme overrides to account for hardware limitations.&lt;/p&gt;&lt;p&gt;speaking of hardware...&lt;/p&gt;&lt;h2&gt;Hardware&lt;/h2&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTgzNzAyNzE_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--d7b5bbcdb80e1a2727b46957dd6c882261c9908e&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNzAyNzEsInB1ciI6ImJsb2JfaWQifX0=--326763ca73394aaa5269b63755a0bbdf5d98ff19/framework-open-source-hardware.png&quot; filename=&quot;framework-open-source-hardware.png&quot; filesize=&quot;702773&quot; width=&quot;1600&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNzAyNzEsInB1ciI6ImJsb2JfaWQifX0=--326763ca73394aaa5269b63755a0bbdf5d98ff19/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/framework-open-source-hardware.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;as our device model library grows, your work should Just Work on different display sizes and resolutions.&lt;/p&gt;&lt;p&gt;the &lt;a href=&quot;https://github.com/usetrmnl/trmnl-picker&quot;&gt;model picker&lt;/a&gt; reads from the &lt;a href=&quot;https://trmnl.com/api/models&quot;&gt;Model API&lt;/a&gt; to inject dimensions, colors, and other capabilities of a given device directly into the web based markup editor or your local dev tooling with &lt;a href=&quot;https://github.com/usetrmnl/trmnlp&quot;&gt;trmnlp&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;try changing parameters in the top-right dropdown in &lt;a href=&quot;https://trmnl.com/framework/docs/3.2/background&quot;&gt;our docs&lt;/a&gt; to see how it works:&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTg0ODgwMDE_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--4ce18206e7ceefdf02759b6119890301db442274&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODgwMDEsInB1ciI6ImJsb2JfaWQifX0=--1ac5498cbfc9e428ee43e8fe665255dd29de3b84/TRMNL-framework-hardware-picker.png&quot; filename=&quot;TRMNL-framework-hardware-picker.png&quot; filesize=&quot;19034&quot; width=&quot;256&quot; height=&quot;278&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODgwMDEsInB1ciI6ImJsb2JfaWQifX0=--1ac5498cbfc9e428ee43e8fe665255dd29de3b84/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/TRMNL-framework-hardware-picker.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;Framework is even compatible with &lt;a href=&quot;https://trmnl.com/blog/trmnl-for-apple-tv&quot;&gt;televisions&lt;/a&gt;, &lt;a href=&quot;https://help.trmnl.com/en/articles/11647499-trmnl-for-android&quot;&gt;tablets&lt;/a&gt;, &lt;a href=&quot;https://help.trmnl.com/en/articles/11647459-trmnl-for-ipad&quot;&gt;iPads&lt;/a&gt;, and &lt;a href=&quot;https://trmnl.com/byod&quot;&gt;beyond&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Legibility&lt;/h2&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTgzNzA1MTY_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--683ae7fcb02bd4005d7b7ba5f283e74e3fcfee9c&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNzA1MTYsInB1ciI6ImJsb2JfaWQifX0=--27b975460d9546660653037aebbc186a06aa601d/image-1786497163723.png&quot; filename=&quot;image-1786497163723.png&quot; filesize=&quot;92849&quot; width=&quot;1600&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgzNzA1MTYsInB1ciI6ImJsb2JfaWQifX0=--27b975460d9546660653037aebbc186a06aa601d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/image-1786497163723.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;perfect vision is wasted on the youth. we created &lt;a href=&quot;https://trmnl.com/blog/introducing-typography&quot;&gt;our own font&lt;/a&gt; from scratch, and now it&#39;s yours. for everything else there&#39;s Inter.&lt;/p&gt;&lt;p&gt;whether you want small type, large graphics, serifs or sans, Framework lets you scope typography on a per element basis.&lt;/p&gt;&lt;h2&gt;Magic (JavaScript)&lt;/h2&gt;&lt;p&gt;tying together many of the above elements is a &lt;a href=&quot;https://trmnl.com/framework/docs/3.2/framework_runtime&quot;&gt;JS runtime&lt;/a&gt;, &lt;code&gt;terminalize()&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;this lets you scale text, adhere to cultural or regional formatting, truncate big values, and more.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTg0ODg0ODA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--fbae63778e9212c725c837863cff9165bf77d1da&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODg0ODAsInB1ciI6ImJsb2JfaWQifX0=--8630e864527e3478621e56d5d6747626d0b94909/trmnl-framework-value-formatting.png&quot; filename=&quot;trmnl-framework-value-formatting.png&quot; filesize=&quot;88644&quot; width=&quot;794&quot; height=&quot;477&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Value Formatting&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODg0ODAsInB1ciI6ImJsb2JfaWQifX0=--8630e864527e3478621e56d5d6747626d0b94909/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-framework-value-formatting.png&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Value Formatting
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;if you&#39;re wondering why this matters, it&#39;s because TRMNL is designed for arbitrary content. the value of &lt;code&gt;{{ some_variable }}&lt;/code&gt; should never break your markup.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTg0ODg0Mjc_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--c58a2cda5b8571da88234c82bced14f9f8bd2ca5&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODg0MjcsInB1ciI6ImJsb2JfaWQifX0=--bef8c97714cae19028a54a7b13fd91e7dfde52f8/trmnl-framework-fit-value.png&quot; filename=&quot;trmnl-framework-fit-value.png&quot; filesize=&quot;38023&quot; width=&quot;800&quot; height=&quot;480&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Fit Value&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg0ODg0MjcsInB1ciI6ImJsb2JfaWQifX0=--bef8c97714cae19028a54a7b13fd91e7dfde52f8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-framework-fit-value.png&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Fit Value
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;the Framework Runtime even solves for fixed display heights, check out &lt;a href=&quot;https://trmnl.com/framework/docs/3.2/table_overflow&quot;&gt;Table Overflow&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;what&#39;s next&lt;/h2&gt;&lt;p&gt;if you&#39;re just getting started, check out &lt;a href=&quot;https://trmnl.com/framework/docs/3.2&quot;&gt;the docs&lt;/a&gt; and &lt;a href=&quot;https://trmnl.com/framework/examples&quot;&gt;examples&lt;/a&gt;. if you&#39;ve been with us awhile, skim the &lt;a href=&quot;https://trmnl.com/framework/docs/3.2/v3_overview&quot;&gt;v3 overview&amp;nbsp;guide&lt;/a&gt; for the latest features.&lt;/p&gt;&lt;p&gt;to report an issue or contribute new features, visit the source code:&lt;br&gt;&lt;a href=&quot;https://github.com/usetrmnl/trmnl-framework&quot;&gt;https://github.com/usetrmnl/trmnl-framework&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/framework-design-system</id>
    <link href="https://trmnl.com/blog/framework-design-system"/>
    <published>2026-08-13T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Framework is now Open Source</title>
    <updated>2026-08-13T00:00:00+00:00</updated>
    <dc:date>2026-08-13T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Ryan Kulp</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;We &lt;a href=&quot;https://usetrmnl.com/blog/introducing-trmnl-x&quot;&gt;introduced X&lt;/a&gt; on July 30, 2025. We began assembly + fulfillment on March 18, 2026.&lt;/p&gt;&lt;p&gt;To see your live spot in the order queue, go here:&lt;br&gt;&lt;a href=&quot;https://trmnl.com/order-tracker&quot;&gt;https://trmnl.com/order-tracker&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Here&#39;s our per-warehouse queue as of August 18, 2026:&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTg2MTc5NTg_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--66a2e38a96cb8c747f55f7fc7ee69e9e529b39ad&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg2MTc5NTgsInB1ciI6ImJsb2JfaWQifX0=--0dc979f60a91f1a196c5a895d0fc997162ec66f4/trmnl-x-queue-aug-18-2026.png&quot; filename=&quot;trmnl-x-queue-aug-18-2026.png&quot; filesize=&quot;9716&quot; width=&quot;261&quot; height=&quot;145&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg2MTc5NTgsInB1ciI6ImJsb2JfaWQifX0=--0dc979f60a91f1a196c5a895d0fc997162ec66f4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-x-queue-aug-18-2026.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;For detailed updates over time, see below.&lt;/p&gt;&lt;h3&gt;When will I receive my TRMNL X?&lt;/h3&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;Live in USA, Canada, India, Mexico, or Australia?&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Your TRMNL will ship from our USA warehouse. See chronological updates below for the latest availability.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;Live in Europe, Asia, Africa, South America, etc?&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Your TRMNL will ship from our Berlin warehouse. Due to Customs issues and supplier theft, this warehouse is moving slower through their queue than the USA. See chronological updates below for the latest availability.&lt;/p&gt;&lt;h3&gt;Tech Specs&lt;/h3&gt;&lt;p&gt;Highlights below, or see everything &lt;a href=&quot;https://trmnl.com/products/x/spec-sheet&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;10.3&quot; 1872x1404 EPD resolution with 16 shades of gray&lt;/li&gt;&lt;li&gt;Dust and basic waterproofing with a hacker-friendly enclosure&lt;/li&gt;&lt;li&gt;ESP32-S3 with 16MB of flash and 8MB of PSRAM as a core processor with fallback 2.4GHz WiFi&lt;/li&gt;&lt;li&gt;5GHz WiFi support via ESP32-C5 as a modem (external antenna)&lt;/li&gt;&lt;li&gt;Support up to 2x 6000mAh 3.8V LiPo batteries with automatic detection&lt;/li&gt;&lt;li&gt;Battery gas gauge from TI for battery SOC/SOH/capacity tracking&lt;/li&gt;&lt;li&gt;Bosch accelerometer for portrait/landscape orientation&lt;/li&gt;&lt;li&gt;Gesture touch-bar based on Azotech IC&lt;/li&gt;&lt;li&gt;Magnetic pogo pin-based mount for charging and accessories (Coming 2026)&lt;/li&gt;&lt;li&gt;OTG support with 5V 2A output&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Dimensions&lt;/h3&gt;&lt;p&gt;These values may change as we scale production. last updated December 15, 2025.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY2MzIxMjU_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--afd8df5339ded2d0dbc6f0a9c022b8a90db3d452&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://usetrmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY2MzIxMjUsInB1ciI6ImJsb2JfaWQifX0=--4fe9bcea7ce6f5b07810b792a3e4769bd9b3ec05/TRMNL-X-dimensions-2025-12-15.jpg&quot; filename=&quot;TRMNL-X-dimensions-2025-12-15.jpg&quot; filesize=&quot;40897&quot; width=&quot;1278&quot; height=&quot;832&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;X enclosure dimensions (mm)&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY2MzIxMjUsInB1ciI6ImJsb2JfaWQifX0=--4fe9bcea7ce6f5b07810b792a3e4769bd9b3ec05/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--d5e667c0137ab726f37f5f3b8ccaf980246e425b/TRMNL-X-dimensions-2025-12-15.jpg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          X enclosure dimensions (mm)
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;Weight (device only, no attachments)&lt;/p&gt;&lt;p&gt;1 battery - 362 grams&lt;br&gt;2 batteries - 448 grams&lt;/p&gt;&lt;h3&gt;&lt;b&gt;&lt;strong&gt;August 2025&lt;/strong&gt;&lt;/b&gt;&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Multiple boards and controllers support touch gestures, battery charging, and 5ghz WiFi&lt;/li&gt;&lt;li&gt;The circular area interfaces with a waterproof &quot;puck&quot; shaped charging connector, and several test points on the motherboard&#39;s bottom will let us build a QA jig for our warehouse&lt;/li&gt;&lt;li&gt;Prior to release we&#39;ll prototypes to your favorite creators for first-look reviews&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;September 2025&lt;/h3&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY0Njk4MDc_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--e65fee844581cfc51ea6b1464022c1afb0ca026c&quot; content-type=&quot;image/png&quot; url=&quot;https://usetrmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY0Njk4MDcsInB1ciI6ImJsb2JfaWQifX0=--3848d7bc1ccc9b3f6dbae3f418cdc08223198ba7/trmnl-x-board-preview.png&quot; filename=&quot;trmnl-x-board-preview.png&quot; filesize=&quot;187997&quot; width=&quot;2636&quot; height=&quot;2066&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;PCB preview&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY0Njk4MDcsInB1ciI6ImJsb2JfaWQifX0=--3848d7bc1ccc9b3f6dbae3f418cdc08223198ba7/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-x-board-preview.png&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          PCB preview
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;ol&gt;&lt;li&gt;We ordered 50x more prototypes with stronger magnets so devices can attach directly to a surface (e.g. refrigerator) without&amp;nbsp;&lt;a href=&quot;https://github.com/usetrmnl/mounts&quot;&gt;mounts&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Dual band WiFi will be powered by the ESP32-C5 and we&#39;ve benchmarked faster speeds + better range with custom modem firmware&lt;/li&gt;&lt;li&gt;Orders with the Battery Upgrade (or Clarity Kit) will now enjoy 10,000mAh versus the announced 7,000mAh variant&lt;/li&gt;&lt;li&gt;Our &quot;charging puck&quot; (name TBD) now has a universal connector for kickstands and other peripheral accessories that will debut in 2026&lt;/li&gt;&lt;li&gt;The same firmware that runs all OG + BYOD devices has&amp;nbsp;&lt;a href=&quot;https://github.com/usetrmnl/trmnl-firmware/tree/trmnl_x_alpha&quot;&gt;been extended&lt;/a&gt;&amp;nbsp;and is already running my own X prototype, &lt;a href=&quot;https://x.com/useTRMNL/status/1979637211412017281&quot;&gt;preview here&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;October 2025&lt;/h3&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY0ODQyMzM_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--a5a50e0b90ef76e5acdf6beea3f046c57655527b&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://usetrmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY0ODQyMzMsInB1ciI6ImJsb2JfaWQifX0=--11ea7b6379735e1dea6bf5387f6192ba4adb2b2b/TRMNL-X-robin-williams-test.jpeg&quot; filename=&quot;TRMNL-X-robin-williams-test.jpeg&quot; filesize=&quot;265844&quot; width=&quot;960&quot; height=&quot;1280&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Grayscale testing with a GOAT&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY0ODQyMzMsInB1ciI6ImJsb2JfaWQifX0=--11ea7b6379735e1dea6bf5387f6192ba4adb2b2b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/TRMNL-X-robin-williams-test.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Grayscale testing with a GOAT
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;ol&gt;&lt;li&gt;The first batch of screens arrived at our USA warehouse, more en route to our &lt;a href=&quot;https://usetrmnl.com/blog/slashing-postage-rates-again&quot;&gt;Berlin warehouse&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Gesture bar + charging pucks are in small batch production&lt;/li&gt;&lt;li&gt;Received and approved packaging samples. Model X packaging will be more premium and protective than OG packaging.&lt;/li&gt;&lt;li&gt;Consolidating WiFi antennas (2.4 + 5gh) to a single component&lt;/li&gt;&lt;li&gt;Added 3 angle options (degrees) to the kickstand&lt;/li&gt;&lt;li&gt;[Work in progress] battery options may grow another 20% to 6000/12000mAh variants pending more testing&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;November 2025&lt;/h3&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY1MTg1ODA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--d8a89686dba4f4b04bc16dcb136c95eab525f0bd&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://usetrmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTg1ODAsInB1ciI6ImJsb2JfaWQifX0=--c1477124c066c9bfa66b9ccd6f09cb176c30b9d9/TRMNL-X-assembly.jpeg&quot; filename=&quot;TRMNL-X-assembly.jpeg&quot; filesize=&quot;296326&quot; width=&quot;1280&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Full assembly (3D printed parts, not final)&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTg1ODAsInB1ciI6ImJsb2JfaWQifX0=--c1477124c066c9bfa66b9ccd6f09cb176c30b9d9/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/TRMNL-X-assembly.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Full assembly (3D printed parts, not final)
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY1MTc0OTY_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--824732486c8578547d16075875d06a33df483cc4&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://usetrmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTc0OTYsInB1ciI6ImJsb2JfaWQifX0=--74089f2a8c4c8b2d415181e16336639c0fca35f4/TRMNL-X-prototype-back.jpeg&quot; filename=&quot;TRMNL-X-prototype-back.jpeg&quot; filesize=&quot;173771&quot; width=&quot;1280&quot; height=&quot;674&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Fully functional prototype (3D printed case, non-branded silicone pads)&quot;&gt;  &lt;/action-text-attachment&gt;&lt;/p&gt;&lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTc0OTYsInB1ciI6ImJsb2JfaWQifX0=--74089f2a8c4c8b2d415181e16336639c0fca35f4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/TRMNL-X-prototype-back.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Fully functional prototype (3D printed case, non-branded silicone pads)
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY1MTc0OTc_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--3cf5cb7b951505b570349e23af70950eec7fd0cd&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://usetrmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTc0OTcsInB1ciI6ImJsb2JfaWQifX0=--aaf5c4631331eaf1ee4fbc0f8b97cab4cdc71593/TRMNL-X-prototype-front.jpeg&quot; filename=&quot;TRMNL-X-prototype-front.jpeg&quot; filesize=&quot;238857&quot; width=&quot;1280&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Prototype running latest (public) firmware release&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY1MTc0OTcsInB1ciI6ImJsb2JfaWQifX0=--aaf5c4631331eaf1ee4fbc0f8b97cab4cdc71593/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/TRMNL-X-prototype-front.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Prototype running latest (public) firmware release
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Added extra reset buttons to S3 and C5 MCUs for hacker friendliness, board design is final&lt;/li&gt;&lt;li&gt;Batteries are in production and we can confirm the improved 6k / 12kmAh sizing (announced size: 5k / 7k)&amp;nbsp;&lt;/li&gt;&lt;li&gt;Enclosure injection molds are in production, purchase order placed for thousands of cases in different colors&lt;/li&gt;&lt;li&gt;Magnet deliveries from Chinese factories have been delayed due to recent&amp;nbsp;&lt;a href=&quot;https://www.cnbc.com/2025/11/10/china-suspends-some-critical-mineral-export-curbs-to-the-us-as-trade-truce-takes-hold.html&quot;&gt;Critical Mineral Export Bans&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;December 2025&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Battery production complete, shipping to our warehouses next week&lt;/li&gt;&lt;li&gt;EC licenses underway at testing facilities&lt;/li&gt;&lt;li&gt;Packaging in mass production&lt;/li&gt;&lt;li&gt;Magnets in mass production&lt;/li&gt;&lt;li&gt;[New] OTG functionality - power other devices from your TRMNL&#39;s charging puck&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;January 2026&lt;/h3&gt;&lt;p&gt;From my desk to yours, a &lt;a href=&quot;https://www.youtube.com/watch?v=LNcoAZJP3hk&quot;&gt;video update&lt;/a&gt;.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY3NTYyNDE_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--ff980753fe59bd5c1d900042c94b672cb7df22bd&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY3NTYyNDEsInB1ciI6ImJsb2JfaWQifX0=--4a9e8b1d8020df4a822132b47790326a0e899297/trmnl-x-fulfillment-update-jan-2026.jpg&quot; filename=&quot;trmnl-x-fulfillment-update-jan-2026.jpg&quot; filesize=&quot;102241&quot; width=&quot;1280&quot; height=&quot;720&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY3NTYyNDEsInB1ciI6ImJsb2JfaWQifX0=--4a9e8b1d8020df4a822132b47790326a0e899297/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--d5e667c0137ab726f37f5f3b8ccaf980246e425b/trmnl-x-fulfillment-update-jan-2026.jpg&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;h3&gt;February 2026&lt;/h3&gt;&lt;p&gt;From our warehouse to your desk, a &lt;a href=&quot;https://www.youtube.com/watch?v=hiUiWCy93kg&quot;&gt;video update&lt;/a&gt;.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY4MDMzNzA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--552e5837128e6639a6a9fcb2642fef5ad103b626&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY4MDMzNzAsInB1ciI6ImJsb2JfaWQifX0=--8d3563708b4c2953b5f4e0585a21d05396a8fbe9/model-x-fulfillment-update-2.jpeg&quot; filename=&quot;model-x-fulfillment-update-2.jpeg&quot; filesize=&quot;227933&quot; width=&quot;1280&quot; height=&quot;720&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY4MDMzNzAsInB1ciI6ImJsb2JfaWQifX0=--8d3563708b4c2953b5f4e0585a21d05396a8fbe9/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/model-x-fulfillment-update-2.jpeg&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;h3&gt;March 2026&lt;/h3&gt;&lt;p&gt;From my desk to yours, a &lt;a href=&quot;https://www.youtube.com/watch?v=TVSFlB5-ldk&quot;&gt;video update&lt;/a&gt;.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTY5MDQ5NjM_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--871782b71aa9639d525d2c027127dc00c01ca445&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY5MDQ5NjMsInB1ciI6ImJsb2JfaWQifX0=--e75e94298c78b2288a20d9f90d48226ddd589d1f/trmnl-x-now-shipping-video-update.jpg&quot; filename=&quot;trmnl-x-now-shipping-video-update.jpg&quot; filesize=&quot;184157&quot; width=&quot;1280&quot; height=&quot;720&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTY5MDQ5NjMsInB1ciI6ImJsb2JfaWQifX0=--e75e94298c78b2288a20d9f90d48226ddd589d1f/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--d5e667c0137ab726f37f5f3b8ccaf980246e425b/trmnl-x-now-shipping-video-update.jpg&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;If you prefer not to watch the video, in summary we&#39;re shipping single-battery devices only from our USA warehouse because our magnet supplier ripped us off and sent thousands of weak magnets, following multiple sample shipments with the correct (strong) magnets.&lt;/p&gt;&lt;p&gt;As of Wednesday, March 18:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Berlin warehouse has all 3 types of PCBs&lt;/li&gt;&lt;li&gt;Berlin warehouse should receive device enclosures in 1-2 weeks&lt;/li&gt;&lt;li&gt;USA warehouse has everything and has begun assembly + fulfillment&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;To check your place in the queue go here:&lt;br&gt;&lt;a href=&quot;https://trmnl.com/order-tracker&quot;&gt;https://trmnl.com/order-tracker&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If you already have a TRMNL, install the Order Tracker plugin to stay up to date:&lt;br&gt;&lt;a href=&quot;https://trmnl.com/recipes/260817&quot;&gt;https://trmnl.com/recipes/260817&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;How can I estimate the time it will take to receive mine?&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Devices will be shipped in the order they were purchased and we intend to scale to 100s of fulfillments per day, as we have done for past releases and back-in-stock periods.&lt;/p&gt;&lt;p&gt;Our 2x warehouses have trained 15+ individuals to flash, assemble, and ship devices. We do not outsource to 3rd party logistics companies. You can learn more about our end to end philosophy and technology &lt;a href=&quot;https://trmnl.com/blog/in-house-fulfillment&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;https://trmnl.com/blog/logistics-tech&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;April 2026&lt;/h3&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTcwMzQ3NzA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--67bc3d1334c8268ecdb70e1f782f074bf1d264b6&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTcwMzQ3NzAsInB1ciI6ImJsb2JfaWQifX0=--4cfe457627cf9aeecbf3fd623d1ecbe4ccb149ab/trmnl-x-magnet-performance.jpeg&quot; filename=&quot;trmnl-x-magnet-performance.jpeg&quot; filesize=&quot;122001&quot; width=&quot;1280&quot; height=&quot;720&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTcwMzQ3NzAsInB1ciI6ImJsb2JfaWQifX0=--4cfe457627cf9aeecbf3fd623d1ecbe4ccb149ab/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/trmnl-x-magnet-performance.jpeg&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;See a live demonstration of strong, N52 grade magnets on various refrigerator surfaces in &lt;a href=&quot;https://youtu.be/_0_XQ63_Hf0&quot;&gt;this video update&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;On April 26, &lt;a href=&quot;https://www.reddit.com/r/trmnl/s/niT6hBdSUT&quot;&gt;N52 magnets arrived&lt;/a&gt; at our USA warehouse and assembly/fulfillment pace will increase dramatically beginning Monday, April 27.&lt;/p&gt;&lt;p&gt;On April 27, white + gray cases arrived at our Berlin warehouse and they are building half-assemblies (docks, kickstands) as they await N52 magnets.&lt;/p&gt;&lt;h3&gt;May 2026&lt;/h3&gt;&lt;p&gt;Between May 2-6th the USA warehouse was out of stock of charging docks for several colors due to a supplier mistake. To mitigate we assembled devices of all colors, but only fulfilled in-stock (charging dock) orders, some of which may sequentially be &lt;a href=&quot;https://trmnl.com/order-tracker&quot;&gt;behind yours&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;May 7 - black and sage charging docks arrived, allowing us to mostly ship in sequential order. This ensures the highest throughput overall, as punishing later orders with in-stock colors does not increase the speed of out-of-stock colors arriving&lt;b&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;May 19 - USA warehouse is still awaiting white + gray docks and cannot ship those colors, despite having the other parts. They were lost in transit and a new batch is on the way.&lt;/p&gt;&lt;p&gt;May 21 - Berlin, Germany warehouse received a batch of N52 magnets. They are now shipping black, sage, clear.&lt;/p&gt;&lt;p&gt;May 27 - Berlin, Germany warehouse received white u-mounts and is now able to ship white devices.&lt;/p&gt;&lt;p&gt;May 29 - USA warehouse received missing white charging docks and is finally shipping white devices.&lt;/p&gt;&lt;p&gt;May 31 - USA warehouse ran out of Clear enclosures and sage wall mounts. Black running very low. New shipment (full refresh) expected within a week.&lt;/p&gt;&lt;h3&gt;June 2026&lt;/h3&gt;&lt;p&gt;June 1 - USA warehouse received missing gray charging docks (sent/lost by UPS on April 7).&lt;/p&gt;&lt;p&gt;June 4 - Berlin, Germany warehouse received gray enclosures.&lt;/p&gt;&lt;p&gt;June 5 - Berlin, Germany warehouse received wood enclosures. Berlin is now able to ship all colors.&lt;/p&gt;&lt;p&gt;June 9 - USA warehouse only has inventory to ship white and gray X devices. More of every color arrive Thursday, June 11.&lt;/p&gt;&lt;p&gt;June 11 - USA warehouse received more inventory of every color and is fully in stock, shipping all X combinations.&lt;/p&gt;&lt;p&gt;June 21 - USA warehouse ran out of clear enclosures; affected customers have been emailed the option to change colors and not experience further delays.&lt;/p&gt;&lt;p&gt;June 24 - USA ran out of sage docks + kickstands, as FedEx lost this package (1 of 42 in our latest freight shipment) in May and is still looking for it. An extra set of components has been ordered (via air express) from our injection mold supplier.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc1NjY2NzI_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--0cf21c00b65aeebe45b9082885da76fe1e8276f3&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc1NjY2NzIsInB1ciI6ImJsb2JfaWQifX0=--99cfb40ae2d8684b799a4f3885d58d7a6499983c/trmnl-sage-freight-missing.png&quot; filename=&quot;trmnl-sage-freight-missing.png&quot; filesize=&quot;65979&quot; width=&quot;965&quot; height=&quot;665&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Sage components lost by FedEx&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc1NjY2NzIsInB1ciI6ImJsb2JfaWQifX0=--99cfb40ae2d8684b799a4f3885d58d7a6499983c/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-sage-freight-missing.png&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Sage components lost by FedEx
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;June 29 - Berlin, Germany warehouse ran out of branded packaging. A rush order is en route. The team is still assembling devices to minimize delays.&lt;/p&gt;&lt;h3&gt;July 2026&lt;/h3&gt;&lt;p&gt;July 3 - USA warehouse received missing Sage docks + kickstands, along with Clear cases. Clear kickstands + docks are still en rout, but the remaining 300+ on-hold Sage orders will be shipped by end of Monday, July 6.&lt;/p&gt;&lt;p&gt;July 7 - Berlin, Germany warehouse received X packaging. Foam should arrive within 24 hours and then shipping will resume.&lt;/p&gt;&lt;p&gt;July 13 - Berlin, Germany warehouse continues experiencing delays in receiving X packaging foam. As of today, 3 of 5 pallets have arrived at BER airport and are still processing through Customs. They have been stuck elsewhere in Europe for 7 days.&lt;/p&gt;&lt;p&gt;July 15 - Berlin, Germany warehouse finally received packaging foam and is resuming shipments of assembled devices.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc3OTQ5Nzk_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--c4138da8ab20618bcb007314237c1f5cbaad6acf&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3OTQ5NzksInB1ciI6ImJsb2JfaWQifX0=--871c7a31096c3960ab3564ae7ccce941766e5f90/TRMNL-berlin-packing-foam-arrival-july-2026.jpeg&quot; filename=&quot;TRMNL-berlin-packing-foam-arrival-july-2026.jpeg&quot; filesize=&quot;98753&quot; width=&quot;640&quot; height=&quot;625&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Die-cut packing foam&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3OTQ5NzksInB1ciI6ImJsb2JfaWQifX0=--871c7a31096c3960ab3564ae7ccce941766e5f90/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/TRMNL-berlin-packing-foam-arrival-july-2026.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Die-cut packing foam
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;July 23 - Berlin, Germany is down to their last ~150 devices and awaiting a new shipment of PCBs, ordered on May 6 but with long lead times. USA warehouse is expecting missing Clear kickstands / docks / u-mounts next Monday, then its queue will be zero&#39;d out.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTgwNzE3MDA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--78ae814f91e21aeabbabe4a8192081aef07ddd87&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgwNzE3MDAsInB1ciI6ImJsb2JfaWQifX0=--405e415d7e8367f5a2206e96f788c6fdec4b866a/TRMNL-Berlin-X-packaging-v2-arrival.jpeg&quot; filename=&quot;TRMNL-Berlin-X-packaging-v2-arrival.jpeg&quot; filesize=&quot;322704&quot; width=&quot;1280&quot; height=&quot;762&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgwNzE3MDAsInB1ciI6ImJsb2JfaWQifX0=--405e415d7e8367f5a2206e96f788c6fdec4b866a/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/TRMNL-Berlin-X-packaging-v2-arrival.jpeg&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;July 27 - Berlin, Germany received new packaging and is expecting more PCBs tomorrow.&lt;/p&gt;&lt;p&gt;July 30 - Berlin, Germany PCBA are stuck in-country but stuck at Customs. A new batch of PCBA were shipped to USA warehouse and should arrive on August 5th.&lt;/p&gt;&lt;h3&gt;August 2026&lt;/h3&gt;&lt;p&gt;August 3 - Berlin, Germany received a new batch of PCBA following a week of being stuck in Customs. Shipping resumed today. Incoming USA batch of PCBA cleared Customs last night and arrive on Wednesday.&lt;/p&gt;&lt;p&gt;August 12 - USA warehouse PCBA have cleared Customs, then put on hold, back and forth a few times. We got in touch with courier (DHL) and they don&#39;t have more information. As of this morning the freight has again &quot;cleared&quot; Customs.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTgzOTU1ODQ_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--84615f38db5fe17922ef3f6edab4e5e0c28091a8&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgzOTU1ODQsInB1ciI6ImJsb2JfaWQifX0=--ce71038797465459c480006263c20937cd69f10c/TRMNL-X-PCBA-clearance-august-2026.png&quot; filename=&quot;TRMNL-X-PCBA-clearance-august-2026.png&quot; filesize=&quot;14660&quot; width=&quot;374&quot; height=&quot;185&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTgzOTU1ODQsInB1ciI6ImJsb2JfaWQifX0=--ce71038797465459c480006263c20937cd69f10c/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/TRMNL-X-PCBA-clearance-august-2026.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;August 18 - I (Ryan) visited the ATL airport cargo facilities to check on our PCBA freight, which continues to post &quot;Clearance&quot; events, followed by &quot;On Hold&quot; notifications, multiple times per day since early August.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTg2MTc5NjI_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--b69631d2968b3ab060a2bf500283d5fed88a58d6&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg2MTc5NjIsInB1ciI6ImJsb2JfaWQifX0=--559eb331e3fafefaf006f271588211c4a39c601c/ATL-DHL-visit-August-18-2026.jpeg&quot; filename=&quot;ATL-DHL-visit-August-18-2026.jpeg&quot; filesize=&quot;191352&quot; width=&quot;1280&quot; height=&quot;666&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Visiting DHL &lt;&gt; Customs&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTg2MTc5NjIsInB1ciI6ImJsb2JfaWQifX0=--559eb331e3fafefaf006f271588211c4a39c601c/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/ATL-DHL-visit-August-18-2026.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Visiting DHL &amp;lt;&amp;gt; Customs
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;Unfortunately the assigned CBP agent was not in office, so we left our information with a request to expedite clearance. The DHL team claims we will receive a phone call update within 24 hours.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/model-x-progress</id>
    <link href="https://trmnl.com/blog/model-x-progress"/>
    <published>2026-08-12T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Model X Progress Report</title>
    <updated>2026-08-12T00:00:00+00:00</updated>
    <dc:date>2026-08-12T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Mario Lurig</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;blockquote&gt;This post is part of a series, featuring the incredible work of plugin authors who grow the TRMNL plugin ecosystem with every contribution. The TRMNL team has individually selected these plugins and authors to be featured.&lt;/blockquote&gt;&lt;h2&gt;&lt;a href=&quot;https://trmnl.com/recipes/336671&quot;&gt;Jenkins CI/CD&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Community member Stephen Yeargin (Discord: &lt;code&gt;stephenyeargin&lt;/code&gt;) created the &lt;a href=&quot;https://trmnl.com/recipes/336671&quot;&gt;Jenkins CI/CD&lt;/a&gt; plugin; here are their words on how it was created.&lt;/p&gt;&lt;h3&gt;Why did you want this plugin to exist?&lt;/h3&gt;&lt;p&gt;I&#39;ve used Jenkins at various jobs for a rather long time, and decided a few years ago to start using it to orchestrate personal projects. I had a scheduled build fail and didn&#39;t get the notification, so I thought it would be nice to keep up with it on the TRMNL near my desk.&lt;/p&gt;&lt;h3&gt;Were you inspired by any other recipes or plugin creators?&lt;/h3&gt;&lt;p&gt;There are a handful of great plugins that monitor GitHub Actions workflows. I looked through those to understand the different ways to present the data.&lt;/p&gt;&lt;h3&gt;How did you balance look vs functionality?&lt;/h3&gt;&lt;p&gt;I lean into the Framework components to make most of the harder UI decisions for me so that I can focus more on making sure the data is timely and accurate. I tend to lean into function first, and improve the design through iteration.&lt;/p&gt;&lt;h3&gt;What was your process for creating the plugin?&lt;/h3&gt;&lt;p&gt;I have a GitHub &lt;a href=&quot;https://github.com/stephenyeargin/template-trmnl-plugin/&quot;&gt;repository template&lt;/a&gt; that I used as the base of it. From there, I read through the REST documentation for Jenkins and tested a few of the calls with Postman. I stuck to the general Job list in Jenkins to decide what was important. The &lt;a href=&quot;https://github.com/usetrmnl/trmnlp&quot;&gt;TRMNLP&lt;/a&gt; application is indispensable for developing plugins.&lt;/p&gt;&lt;h3&gt;What, if any, challenges did you face while creating it?&lt;/h3&gt;&lt;p&gt;Jenkins uses weather icons to quickly identify the health of your builds. I needed to find SVG icons for each, and to make sure the logic picked the right one. From there, the next challenge was getting the JSON payload under the limit with the sandbox runtime. I also knew I wanted to let the user see either all jobs, or builds from a specific job, so I needed to work out the logic for that.&lt;/p&gt;&lt;h3&gt;Did you learn anything that you want to apply to future or past recipes?&lt;/h3&gt;&lt;p&gt;Using conditionals and assignments in the &lt;code&gt;polling_url&lt;/code&gt; setting. It makes managing the data flow a bit easier and prevents unnecessary requests.&lt;/p&gt;&lt;pre&gt;polling_url: |&lt;br&gt;  {%- if my_setting_value -%}&lt;br&gt;  https://example.org/api/endpoint_1?q={ my_setting_value }&lt;br&gt;  {%- else %}&lt;br&gt;  https://example.org/api/endpoint_2&lt;br&gt;  {%- endif %}&lt;/pre&gt;&lt;h3&gt;Is there a tip you would give to a new plugin developer?&lt;/h3&gt;&lt;p&gt;Follow the blog for new features and join the Discord server. Also, &lt;code&gt;shared.liquid&lt;/code&gt; is your friend for not repeating a ton of markup for all four views.&lt;/p&gt;&lt;h3&gt;What part of the TRMNL Framework, Liquid filters, or other documentation was most helpful?&lt;/h3&gt;&lt;p&gt;Table Overflow is really useful to ensure the data fills the screen, but doesn&#39;t break the layout.&lt;/p&gt;&lt;h3&gt;What is your favorite plugin that someone else created and why?&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;https://trmnl.com/recipes/152705&quot;&gt;Paperboy&lt;/a&gt; is solid. It immediately reminded me of Freedom Forum&#39;s &quot;&lt;a href=&quot;https://frontpages.freedomforum.org/gallery&quot;&gt;Today&#39;s Front Pages&lt;/a&gt;&quot; site, which I had bookmarked from when I worked for a newspaper.&lt;/p&gt;&lt;h3&gt;What might you improve about the plugin in the future?&lt;/h3&gt;&lt;p&gt;Not everyone has a dozen Jenkins Jobs, so I probably would come up with another view that showed them as cards in a grid.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/featured-plugin-jenkins-ci-cd</id>
    <link href="https://trmnl.com/blog/featured-plugin-jenkins-ci-cd"/>
    <published>2026-08-11T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Featured Community Plugin - Jenkins CI/CD</title>
    <updated>2026-08-11T00:00:00+00:00</updated>
    <dc:date>2026-08-11T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Ryan Kulp</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;for more context see the &lt;a href=&quot;https://trmnl.com/blog/creator-fund&quot;&gt;Creator Fund announcement&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;our 10th payout recognizes community contributions between July 6, 2026 and August 6, 2026.&lt;/p&gt;&lt;h2&gt;source of funds&lt;/h2&gt;&lt;p&gt;each payout period, a portion of developer-specific revenue goes directly to creators.&lt;/p&gt;&lt;figure class=&quot;lexxy-content__table-wrapper&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;source&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;revenue&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;share&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;amount&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;Stripe&lt;/p&gt;&lt;p&gt;Developer Edition&lt;br&gt;BYOD&lt;br&gt;TRMNL+&lt;/p&gt;&lt;p&gt;Shopify&lt;/p&gt;&lt;p&gt;Developer Edition&lt;br&gt;Clarity Kit (X)&lt;br&gt;Clarity Kit (OG)&lt;br&gt;BYOD&lt;/p&gt;&lt;/th&gt;&lt;td&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;$4,660&lt;br&gt;$2,900&lt;br&gt;$535&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;$398.73&lt;br&gt;$12,664.41&lt;br&gt;$16,977.77&lt;br&gt;$8,818.39&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;15%&lt;br&gt;15%&lt;br&gt;80%&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;15%&lt;br&gt;10%&lt;br&gt;10%&lt;br&gt;15%&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;$699&lt;br&gt;$435&lt;br&gt;$428&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;$59.81&lt;br&gt;$1,266.44&lt;br&gt;$1,697.78&lt;br&gt;$1,322.76&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th class=&quot;lexxy-content__table-cell--header&quot;&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/th&gt;&lt;td&gt;&lt;p&gt;$46,954.30&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;mark&gt;$5,908.79&lt;/mark&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/figure&gt;&lt;h2&gt;by the numbers&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;total payout: $5,908.79&lt;/li&gt;&lt;li&gt;plugin author share: $4,136.15 (70% of base total)&lt;/li&gt;&lt;li&gt;strategic contributors share: $1,772.64 (30% of base total)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;plugin author&lt;/strong&gt;&lt;/b&gt;&amp;nbsp;earnouts are calculated automatically by a collection of factors including a plugin&#39;s age (on live playlists), presence (by % dominance on playlists), and impressions (times displayed on device), relative to all other community plugins. there is a minimum threshold of 50 total connections (installs + forks) to qualify for monthly payouts.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;strategic contributors&lt;/strong&gt;&lt;/b&gt;&amp;nbsp;are those who contribute to&amp;nbsp;&lt;a href=&quot;https://github.com/usetrmnl&quot;&gt;TRMNL open source projects&lt;/a&gt;. these earnouts are calculated with a mix of automation + human touch. relative to the funding available, below are allocations by category:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Firmware, 25%&lt;/li&gt;&lt;li&gt;3D Models, 0%&lt;/li&gt;&lt;li&gt;BYOS, 66%&lt;/li&gt;&lt;li&gt;Localizations, 2%&lt;/li&gt;&lt;li&gt;BYOD, 5%&lt;/li&gt;&lt;li&gt;Documentation/Resources, 0%&lt;/li&gt;&lt;li&gt;Tooling, 2%&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;note: these allocations change monthly based on contributions by category.&lt;/p&gt;&lt;h2&gt;algorithm?&lt;/h2&gt;&lt;p&gt;see the algorithm in action &lt;a href=&quot;https://www.youtube.com/watch?v=FJA_tOYcMbI&quot;&gt;here&lt;/a&gt;. over time the above weights, revenue share percentages, and minimum thresholds may change.&lt;/p&gt;&lt;p&gt;candid feedback is welcome, email&amp;nbsp;&lt;a href=&quot;mailto:team@trmnl.com&quot;&gt;team@trmnl.com&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/creator-fund-07-2026</id>
    <link href="https://trmnl.com/blog/creator-fund-07-2026"/>
    <published>2026-08-07T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Creator Fund - July 2026</title>
    <updated>2026-08-07T00:00:00+00:00</updated>
    <dc:date>2026-08-07T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Mario Lurig</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;blockquote&gt;This post is part of a series, featuring the incredible work of plugin authors who grow the TRMNL plugin ecosystem with every contribution. The TRMNL team has individually selected these plugins and authors to be featured.&lt;/blockquote&gt;&lt;h2&gt;&lt;a href=&quot;https://trmnl.com/recipes/324600&quot;&gt;Ham Radio Solar Weather&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Community member Leo Herzog (Discord: &lt;code&gt;leoherzog&lt;/code&gt;) created the &lt;a href=&quot;https://trmnl.com/recipes/324600&quot;&gt;Ham Radio Solar Weather&lt;/a&gt; plugin; here are their words on how it was created.&lt;/p&gt;&lt;h3&gt;Why did you want this plugin to exist?&lt;/h3&gt;&lt;p&gt;Ham radio (amateur radio) is a hobby where licensed operators talk to each other over the airwaves — sometimes across town, sometimes across the planet — without any internet or cell network involved. Because the Earth is curved, to make the long-distance part work, radio signals must be bounced off the ionosphere and come back down. The ionosphere&#39;s &quot;bounciness&quot; changes constantly based on what the sun is doing: solar flares, sunspots, and streams of charged particles can make worldwide contacts easy one day and impossible the next. Hams check &quot;space weather&quot; the way surfers check the surf report. Hams loooooove themselves an old looking, information dense, hard-to-parse web design. I saw TRMNL as a nice opportunity to make the current solar weather conditions pretty and parse-able.&lt;/p&gt;&lt;h3&gt;Why were you the person to make it?&lt;/h3&gt;&lt;p&gt;I&#39;m a licensed ham (&lt;b&gt;&lt;strong&gt;K9ZOG&lt;/strong&gt;&lt;/b&gt;). I don&#39;t do a lot of &quot;contesting&quot; (long-range radio contact)... I mostly use my local radio net for severe weather spotting, but it&#39;s a hobby I keep an eye on. I&#39;m also a web developer and have already built several TRMNL plugins, including one for &lt;a href=&quot;https://trmnl.com/recipes/46722&quot;&gt;National Weather Service severe weather alerts&lt;/a&gt;, so I had the muscle memory for how the platform fetches data and renders it. Space weather turned out to be a natural sequel to regular weather: same idea, different layer of the atmosphere. There&#39;s a wonderful free current conditions data feed maintained by a fellow ham (&lt;i&gt;&lt;b&gt;&lt;strong&gt;N0NBH&lt;/strong&gt;&lt;/b&gt;&lt;/i&gt;) that condenses all the solar readings and band-by-band forecasts into a simple XML format, so it was a natural fit.&lt;/p&gt;&lt;h3&gt;Were you inspired by any other recipes or plugin creators?&lt;/h3&gt;&lt;p&gt;I&#39;ve kept up with TRMNL since the Kickstarter. I&#39;m an eInk enthusiast, and TRMNL is doing everything right; BYOD, BYOS, open-sourcing everything, their approach to server-side rendering and client polling... I had two other homegrown dashboard projects that used similar approaches, but way clunkier implementations, that I&#39;ve now discontinued in favor of TRMNL. I&#39;m inspired by that. As far as the design of this plugin specifically, I was inspired by other information-dense-yet-readable-and-pretty dashboards such as &lt;a href=&quot;https://trmnl.com/recipes/214872&quot;&gt;Extended Weather Dashboard&lt;/a&gt; by Bastronautik.&lt;/p&gt;&lt;h3&gt;How did you balance look vs functionality?&lt;/h3&gt;&lt;p&gt;I prioritized look for this one. The raw data is a wall of cryptic numbers—solar flux, A-index, K-index, proton flux—and the whole point was to make conditions legible in a half-second glance from across the room. The band conditions table won the prime real estate, because &quot;is 20m open right now?&quot; is the question a ham actually asks; The raw solar numbers became supporting detail for people who want to know why.&lt;/p&gt;&lt;h3&gt;What was your process for creating the plugin?&lt;/h3&gt;&lt;p&gt;Right before I started making this plugin, TRMNL released their &lt;a href=&quot;https://trmnl.com/news/1222&quot;&gt;Agent Skill for AI Agents&lt;/a&gt;. I threw away my homegrown skill and installed theirs. I described the layout I was imagining, curl&#39;d a local copy of the data XML, described the look layout I wanted and file structure I preferred (minimal template files in the four layouts + everything possible contained in &lt;code&gt;shared.liquid&lt;/code&gt;), and within a few back-and-forth prompts in Claude Code, the plugin was done.&lt;/p&gt;&lt;h3&gt;Did you learn anything that you want to apply to future or past recipes?&lt;/h3&gt;&lt;p&gt;When laying out a TRMNL plugin, remember the root &lt;code&gt;.layout&lt;/code&gt; clips instead of scrolling — and crops the top when content overflows — so design to fit the fixed screen rather than forcing height with &lt;code&gt;h--full&lt;/code&gt;. Use the real &lt;code&gt;stretch&lt;/code&gt; class (not a Tailwind-style &lt;code&gt;min-h--0&lt;/code&gt;) when you need an element to grow and shrink into leftover space. Keep &lt;code&gt;grid grid--cols-N&lt;/code&gt; as a direct child of &lt;code&gt;.layout&lt;/code&gt;; nesting it inside a &lt;code&gt;col--span&lt;/code&gt; cell collapses it, so build sub-columns from side-by-side &lt;code&gt;flex flex--col&lt;/code&gt; stacks instead — which also align cleaner, since &lt;code&gt;flex--row&lt;/code&gt; items with &lt;code&gt;grow&lt;/code&gt; center their contents and visually zig-zag. &lt;/p&gt;&lt;p&gt;Make sure your &lt;code&gt;col--span&lt;/code&gt; values add up to 12, and know that &lt;code&gt;flex--center-x&lt;/code&gt;/&lt;code&gt;flex--center-y&lt;/code&gt; are direction-aware (they resolve to justify vs align based on a sibling &lt;code&gt;flex--row&lt;/code&gt;/&lt;code&gt;flex--col&lt;/code&gt;), so pair them accordingly or centering lands on the wrong axis. Above all, verify that all class names against the actual framework CSS rather than assuming a familiar Tailwind name exists — the design guide shows intent, but the compiled CSS is ground truth.&lt;/p&gt;&lt;h3&gt;Is there a tip you would give to a new plugin developer?&lt;/h3&gt;&lt;p&gt;Think about things that you glance at often on another device: Smartphone homescreen widget, persistent notification, pinned desktop browser tab, etc. Then, consider if that app/site/data has an API. If you create something you&#39;re interested in and fills an actual need, it&#39;ll be more fun to make and more useful when complete!&lt;/p&gt;&lt;h3&gt;What part of the TRMNL Framework, Liquid filters, or other documentation was most helpful?&lt;/h3&gt;&lt;p&gt;The new TRMNL agent skill and published Framework v3.1.1 CSS files, for sure.&lt;/p&gt;&lt;h3&gt;What is your favorite plugin that someone else created and why?&lt;/h3&gt;&lt;p&gt;I have had a Weatherflow &lt;a href=&quot;https://trmnl.com/integrations/tempest-weather-station&quot;&gt;Tempest weather station&lt;/a&gt; for a few years, and I love that TRMNL selected them as their main weather provider. I was going to have to build something custom if they hadn&#39;t!&lt;/p&gt;&lt;h3&gt;How could TRMNL plugin sharing be improved?&lt;/h3&gt;&lt;p&gt;The recipe system is already one of TRMNL&#39;s best ideas, but right now the catalog is the only path to distribution, which makes the TRMNL team the bottleneck for every niche idea that wants an audience. I&#39;d love to see a model closer to what Home Assistant has with HACS: let a recipe live in any public git repo with a small manifest, and let users install it by pasting a URL. The official catalog stays as the curated, quality-reviewed storefront, but the long tail of weird, wonderful, six-user plugins gets a frictionless path that doesn&#39;t require anyone&#39;s time or approval.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/featured-plugin-ham-radio-solar-weather</id>
    <link href="https://trmnl.com/blog/featured-plugin-ham-radio-solar-weather"/>
    <published>2026-07-28T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Featured Community Plugin - Ham Radio Solar Weather</title>
    <updated>2026-07-28T00:00:00+00:00</updated>
    <dc:date>2026-07-28T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Ryan Kulp</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;faster refresh &lt;/strong&gt;&lt;/b&gt;has been a top feature request since Day 1.&lt;/p&gt;&lt;p&gt;because we don&#39;t require a subscription, we have to be careful with infrastructure costs. this ensures your devices can use our cloud service forever without paying a penny.&lt;/p&gt;&lt;p&gt;so we drew a line in the sand: a max speed of 15 minutes per plugin. and for most of you this is fine. unless of course you need transit times and meeting room availability... &lt;i&gt;&lt;em&gt;more on this in an upcoming announcement&lt;/em&gt;&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;anyway, the current fast refresh solution is &lt;a href=&quot;https://help.trmnl.com/en/articles/11861887-trmnl-faq&quot;&gt;TRMNL+&lt;/a&gt;, a $5 /month subscription launched &lt;a href=&quot;https://trmnl.com/blog/creator-fund&quot;&gt;exactly&lt;/a&gt; one year ago. but let&#39;s face it, nobody wants to subscribe to anything, ever.&lt;/p&gt;&lt;p&gt;which is why today i&#39;m thrilled to offer a new approach.&lt;/p&gt;&lt;h3&gt;introducing TRMNL+ for $0&lt;/h3&gt;&lt;p&gt;note i didn&#39;t say &quot;free.&quot; it&#39;s not free. just instead of spending your hard earned cash, how about a little bit of social capital instead?&lt;/p&gt;&lt;p&gt;in exchange for sharing honest feedback, publicly, you can unlock 5 minute refresh rates forever.&lt;/p&gt;&lt;p&gt;get started here:&lt;br&gt;&lt;a href=&quot;https://trmnl.com/plus/earn&quot;&gt;https://trmnl.com/plus/earn&lt;/a&gt; (requires login)&lt;/p&gt;&lt;p&gt;and yes, the $5 /month option is still available.&lt;/p&gt;&lt;h3&gt;how it works&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;share TRMNL&lt;/li&gt;&lt;li&gt;our team confirms&lt;/li&gt;&lt;li&gt;TRMNL+ is activated on your account&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;no payment method is necessary, you&#39;ll never be auto billed, and we can optionally send you a reminder to participate again in the future when your credit expires.&lt;/p&gt;&lt;h3&gt;everyone has influence&lt;/h3&gt;&lt;p&gt;we don&#39;t advertise on Google or Facebook or TikTok or anything like that. sometimes we gift devices to creators, but mostly we exist thanks to word of mouth.&lt;/p&gt;&lt;p&gt;if this deal isn&#39;t your jam, no sweat. if we never earn another referral we&#39;ll &lt;a href=&quot;https://trmnl.com/blog/the-unbrickable-pledge&quot;&gt;open source our platform&lt;/a&gt;. but i hope you&#39;ll help us hack on it together for a long, long time to come.&lt;/p&gt;&lt;p&gt;consider sharing TRMNL today.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/fast-refresh</id>
    <link href="https://trmnl.com/blog/fast-refresh"/>
    <published>2026-07-22T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Fast refresh for $0</title>
    <updated>2026-07-22T00:00:00+00:00</updated>
    <dc:date>2026-07-22T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Mario Lurig</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;blockquote&gt;This post is part of a series, featuring the incredible work of plugin authors who grow the TRMNL plugin ecosystem with every contribution. The TRMNL team has individually selected these plugins and authors to be featured.&lt;/blockquote&gt;&lt;h2&gt;&lt;a href=&quot;https://trmnl.com/recipes/306354&quot;&gt;RetroWall&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Community member JetSharkLambo (Discord: &lt;code&gt;jetsharklambo&lt;/code&gt;) created the &lt;a href=&quot;https://trmnl.com/recipes/306354&quot;&gt;RetroWall&lt;/a&gt; plugin; here are their words on how it was created.&lt;/p&gt;&lt;h3&gt;Why did you want this plugin to exist?&lt;/h3&gt;&lt;p&gt;My wife likes to get me surprises every now and then, but was always tipping it off by asking me what I was playing. I made Retrowall to share with folks what I&#39;m playing without them having to ask! Now you can just take a look at my TRMNL and see a collage my most recently played games.&lt;/p&gt;&lt;h3&gt;Why were you the person to make it?&lt;/h3&gt;&lt;p&gt;I&#39;m a huge retro gamer and retroachievements has motivated me to play and replay a lot of classics just for these incentives. Likewise, this plugin has me playing a lot of my faves just so the collage looks perfect around gift-giving season!&lt;/p&gt;&lt;h3&gt;Were you inspired by any other recipes or plugin creators?&lt;/h3&gt;&lt;p&gt;Big fan of jvdmeij&#39;s &lt;a href=&quot;https://trmnl.com/recipes/152705?ref=search&quot;&gt;Paperboy&lt;/a&gt;, it really shows you that art is the relevant info that people want sometimes so you need to put it front and center.&lt;/p&gt;&lt;h3&gt;How did you balance look vs functionality?&lt;/h3&gt;&lt;p&gt;The look was certainly more important for this plugin. We have so many options to alter the look for this reason. For functionality, we just had to make sure the number 1 game rendered somewhere near the center of the grid so that each look you designed was functional.&lt;/p&gt;&lt;h3&gt;What was your process for creating the plugin?&lt;/h3&gt;&lt;p&gt;It&#39;s actually a very simple plugin. Claude code made the first draft in minutes and then we added a ton of customization features on top of that so that each user could have a unique view even if they played the same games. Did some testing to remove some options that were more likely to break your view than enhance it and it was done!&lt;/p&gt;&lt;h3&gt;Did you learn anything that you want to apply to future or past recipes?&lt;/h3&gt;&lt;p&gt;Design wise: don&#39;t waste words on stories that can be told entirely with images. Not every story can be told with images only, but if it can, that&#39;s the most efficient way to tell the story.&lt;/p&gt;&lt;h3&gt;Is there a tip you would give to a new plugin developer?&lt;/h3&gt;&lt;p&gt;Use the &lt;a href=&quot;https://help.trmnl.com/en/articles/14726819-visual-editor-ide&quot;&gt;visual editor&lt;/a&gt;! It shows you all views at the same time so you can diagnose issues that are persisting across multiple views, its great!&lt;/p&gt;&lt;h3&gt;What is your favorite plugin that someone else created and why?&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;https://trmnl.com/recipes/79118/&quot;&gt;Advanced RSS&lt;/a&gt; is the first plugin that brought the promise of TRMNL to life. It has dramatically reduced the amount of times I pull out my phone and scroll. I simply walk past my TRMNL when I&#39;m in the kitchen, glance at the latest pull from the RSS&#39;s I follow, and rest easy knowing that nothing new has happened since I last checked!&lt;/p&gt;&lt;h3&gt;&lt;br&gt;&lt;/h3&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/featured-plugin-retrowall</id>
    <link href="https://trmnl.com/blog/featured-plugin-retrowall"/>
    <published>2026-07-15T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Featured Community Plugin - RetroWall</title>
    <updated>2026-07-15T00:00:00+00:00</updated>
    <dc:date>2026-07-15T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Ryan Kulp</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;our &lt;a href=&quot;https://trmnl.com/byod&quot;&gt;BYOD&lt;/a&gt; (build your own device) effort is working. over 4,000 licenses now power 100s of hardware combinations.&lt;/p&gt;&lt;p&gt;the first bottleneck in making this possible was embedded software. Raspberry Pis and Android tablets can&#39;t run our &lt;a href=&quot;https://github.com/usetrmnl/trmnl-firmware&quot;&gt;firmware&lt;/a&gt;, and Kindles need their own jailbreak. with the community&#39;s help and &lt;a href=&quot;https://docs.trmnl.com/go/private-api/screens&quot;&gt;simple APIs&lt;/a&gt; this has since been &lt;a href=&quot;https://github.com/usetrmnl/#alternative-screens-and-clients&quot;&gt;resolved&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;which exposed the 2nd bottleneck: &lt;b&gt;&lt;strong&gt;device model specs&lt;/strong&gt;&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;to support a piece of hardware, someone from our team had to look up its screen capabilities, size, and other technical factors, then add it to our database and re-deploy the &lt;a href=&quot;https://trmnl.com/api/models&quot;&gt;Models API&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;TRMNL engineer Ikraam made this process a lot nicer with a CLI tool:&lt;/p&gt;&lt;pre&gt;============================================================&lt;br&gt;TRMNL Device Model Addition Script&lt;br&gt;============================================================&lt;br&gt;&lt;br&gt;Enter device specifications:&lt;br&gt;&amp;nbsp; The keyname is a unique snake_case identifier used internally.&lt;br&gt;&amp;nbsp; Convention: manufacturer_model &lt;br&gt;&lt;br&gt;Keyname: &amp;lt;insert&amp;gt;&amp;nbsp;&lt;/pre&gt;&lt;p&gt;but still, it&#39;s 2026. who wants to deploy a server to deploy a new feature?&lt;/p&gt;&lt;h3&gt;introducing Custom Devices&lt;/h3&gt;&lt;p&gt;starting today, anyone with a BYOD license may visit the &lt;a href=&quot;https://trmnl.com/devices/current/model/edit&quot;&gt;Device settings &amp;gt; Model picker&lt;/a&gt;, set their model to Custom Device, then provide the same details which previously required a server deployment.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc3Nzg3MTg_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--d86a5c4b3636ae02a7fdb9fbedd1c999079f6cd7&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3Nzg3MTgsInB1ciI6ImJsb2JfaWQifX0=--e11446e7b35d0c1c006e2eff67bf2da56fa186b2/trmnl-custom-device-builder-ui.png&quot; filename=&quot;trmnl-custom-device-builder-ui.png&quot; filesize=&quot;62948&quot; width=&quot;1177&quot; height=&quot;451&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;DIY model specifications&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3Nzg3MTgsInB1ciI6ImJsb2JfaWQifX0=--e11446e7b35d0c1c006e2eff67bf2da56fa186b2/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-custom-device-builder-ui.png&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          DIY model specifications
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;you also gain access to device agnostic Presentation features including color palettes, font families, image rotation, and screen orientation.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc3Nzg3NTE_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--1d03905cb46ef36d8231573381aeccd9e6d2400d&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3Nzg3NTEsInB1ciI6ImJsb2JfaWQifX0=--b98ace6262a536ec5cd61c25c14c82511da78fff/trmnl-custom-device-presentation-settings.png&quot; filename=&quot;trmnl-custom-device-presentation-settings.png&quot; filesize=&quot;51408&quot; width=&quot;1096&quot; height=&quot;451&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Presentation settings&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3Nzg3NTEsInB1ciI6ImJsb2JfaWQifX0=--b98ace6262a536ec5cd61c25c14c82511da78fff/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-custom-device-presentation-settings.png&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Presentation settings
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;h3&gt;next steps&lt;/h3&gt;&lt;p&gt;we hope this deploy-free option makes it easier + faster to try new hardware, without our permission.&lt;/p&gt;&lt;p&gt;for more information about Device Models generally, read &lt;a href=&quot;https://help.trmnl.com/en/articles/11547008-device-models&quot;&gt;the docs&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/device-model-builder</id>
    <link href="https://trmnl.com/blog/device-model-builder"/>
    <published>2026-07-14T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Introducing the Model Builder</title>
    <updated>2026-07-14T00:00:00+00:00</updated>
    <dc:date>2026-07-14T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Ryan Kulp</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;one of my hobbies is announcing features requested &lt;i&gt;&lt;em&gt;before&lt;/em&gt;&lt;/i&gt; we launched the company.&lt;/p&gt;&lt;p&gt;the year was Summer 2024. Claude was just your crazy uncle and Kickstarter still had clout. &lt;a href=&quot;https://www.kickstarter.com/projects/usetrmnl/trmnl-the-e-ink-display-for-your-favorite-apps-and-news&quot;&gt;our campaign&lt;/a&gt; attracted 1,000+ early adopters with compelling questions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;what if i want to &lt;a href=&quot;https://trmnl.com/recipes&quot;&gt;share my work&lt;/a&gt;?&lt;/li&gt;&lt;li&gt;is it possible to &lt;a href=&quot;https://trmnl.com/blog/no-more-flicker&quot;&gt;remove the screen flicker&lt;/a&gt;?&lt;/li&gt;&lt;li&gt;can i see fun stuff &lt;a href=&quot;https://help.trmnl.com/en/articles/11663305-playlist-scheduler&quot;&gt;only after&lt;/a&gt; work hours?&lt;/li&gt;&lt;li&gt;what if i want to &lt;a href=&quot;https://help.trmnl.com/en/articles/10168132-mashups&quot;&gt;split screen&lt;/a&gt; the display?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;the final boss battle -- dynamic screen-splitting -- required flexible and responsive design elements. so we spent the last 3 years building a &lt;a href=&quot;https://trmnl.com/framework&quot;&gt;design system&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;and these 8 static layouts have been good to us.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc3NTM0Mzc_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--3f19ded344b17ad2a8a045993a50ffb9e5fb5a89&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3NTM0MzcsInB1ciI6ImJsb2JfaWQifX0=--3002bbb772d0575c64835b90b6cd9ac81496c573/trmnl-mashups-regular-layouts.png&quot; filename=&quot;trmnl-mashups-regular-layouts.png&quot; filesize=&quot;10281&quot; width=&quot;425&quot; height=&quot;183&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3NTM0MzcsInB1ciI6ImJsb2JfaWQifX0=--3002bbb772d0575c64835b90b6cd9ac81496c573/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-mashups-regular-layouts.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;but it&#39;s time for something new: say hello to &lt;b&gt;&lt;strong&gt;fluid mashups&lt;/strong&gt;&lt;/b&gt;.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc3NTMzOTY_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--0d5f13a040d98bcd1f46388fc1d294ed62bd0114&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3NTMzOTYsInB1ciI6ImJsb2JfaWQifX0=--307997e66fc147e59a277fb0c13313aeb837bd7c/trmnl-fluid-mashup-9-slot-layout.png&quot; filename=&quot;trmnl-fluid-mashup-9-slot-layout.png&quot; filesize=&quot;8488&quot; width=&quot;425&quot; height=&quot;314&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3NTMzOTYsInB1ciI6ImJsb2JfaWQifX0=--307997e66fc147e59a277fb0c13313aeb837bd7c/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-fluid-mashup-9-slot-layout.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;h3&gt;what are fluid mashups?&lt;/h3&gt;&lt;p&gt;rather than conform plugins to Procrustean, 25-50% sections of your screen, you may now combine up to 322 different layouts on a 9-slot grid.&lt;/p&gt;&lt;p&gt;want a dashboard that&#39;s 2⁄3 weather, 1⁄3 upcoming appointments? no problem.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc3NTMzOTQ_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--e5d49998660a22fc292e7388c14d483433bf682d&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3NTMzOTQsInB1ciI6ImJsb2JfaWQifX0=--77bffde24c758dde4f8490a53410ee6393b7e461/trmnl-fluid-mashup-2-third-layout.png&quot; filename=&quot;trmnl-fluid-mashup-2-third-layout.png&quot; filesize=&quot;3307&quot; width=&quot;425&quot; height=&quot;314&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3NTMzOTQsInB1ciI6ImJsb2JfaWQifX0=--77bffde24c758dde4f8490a53410ee6393b7e461/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-fluid-mashup-2-third-layout.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;how about a central calendar, surrounded by photos and dates?&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc3NTMzODk_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--6a98d6dc61a17783ea7e2ac899eb562c736f5ae3&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3NTMzODksInB1ciI6ImJsb2JfaWQifX0=--9069f1f4dd4c5d6bb29522f50dfa3cbb23e5a2a7/trmnl-fluid-mashup-central-layout.png&quot; filename=&quot;trmnl-fluid-mashup-central-layout.png&quot; filesize=&quot;6316&quot; width=&quot;425&quot; height=&quot;314&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3NTMzODksInB1ciI6ImJsb2JfaWQifX0=--9069f1f4dd4c5d6bb29522f50dfa3cbb23e5a2a7/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-fluid-mashup-central-layout.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;anything is possible with the new fluid mashup builder, &lt;b&gt;&lt;strong&gt;available exclusively on TRMNL X&lt;/strong&gt;&lt;/b&gt; and X-sized devices like reMarkable, Kobo Aura One, Boox Nova Air C, and Seeed E1003.&lt;/p&gt;&lt;h3&gt;learn more&lt;/h3&gt;&lt;p&gt;to see this in action, check out our latest &lt;a href=&quot;https://www.youtube.com/watch?v=sWAzO8d4Xek&quot;&gt;Behind the Screens&lt;/a&gt; video where we build this:&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc3NTMzNTU_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--ee05f33935f35f2110b6e29622c333351f48fc83&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3NTMzNTUsInB1ciI6ImJsb2JfaWQifX0=--38d7984413f6b7cf29addd73c41192c02e0ac9a3/trmnl-x-fluid-mashup-example.png&quot; filename=&quot;trmnl-x-fluid-mashup-example.png&quot; filesize=&quot;365436&quot; width=&quot;2856&quot; height=&quot;1244&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc3NTMzNTUsInB1ciI6ImJsb2JfaWQifX0=--38d7984413f6b7cf29addd73c41192c02e0ac9a3/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/trmnl-x-fluid-mashup-example.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;to play with an early demo (no account required), &lt;a href=&quot;https://trmnl.com/m2&quot;&gt;go here&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/fluid-mashups</id>
    <link href="https://trmnl.com/blog/fluid-mashups"/>
    <published>2026-07-13T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Introducing Fluid Mashups</title>
    <updated>2026-07-13T00:00:00+00:00</updated>
    <dc:date>2026-07-13T00:00:00+00:00</dc:date>
  </entry>
  <entry>
    <author>
      <name>Ryan Kulp</name>
      <uri>https://trmnl.com</uri>
    </author>
    <category term="trmnl"
      label="TRMNL"/>
    <content type="html">&lt;div data-controller=&quot;blog-syntax-highlighter&quot; class=&quot;lexxy-content&quot;&gt;&lt;p&gt;Meta ended support for 1,000,000+ of their &quot;Portal&quot; devices, a modified Android tablet designed for video calls through Messenger and WhatsApp.&lt;/p&gt;&lt;p&gt;thankfully they announced support for &lt;a href=&quot;https://developers.meta.com/horizon/documentation/android-apps/portal-development/&quot;&gt;Android Debug Bridge&lt;/a&gt;, which lets owners build and share apps, unlocking value from the underlying hardware.&lt;/p&gt;&lt;p&gt;in TRMNL tradition we picked up a &lt;a href=&quot;https://www.ebay.com/sch/i.html?_nkw=meta+portal&quot;&gt;used Portal&lt;/a&gt; for just $19 (+ shipping) on eBay and made it a personal dashboard. shout out to community member JackR for the suggestion and assistance.&lt;/p&gt;&lt;h3&gt;how it works&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Meta Portals run Android&lt;/li&gt;&lt;li&gt;the TRMNL community, specifically Hossain Khan, maintains a TRMNL Android app&lt;/li&gt;&lt;li&gt;you can install these apps on a Meta Portal with a USB-C cable, no coding required&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;get started&lt;/h3&gt;&lt;p&gt;the guide below should take no more than 10 minutes.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;step 1 - buy a Portal&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;any model / generation will work, in this post we&#39;ll showcase a Gen2, 10&quot; display. if you get something else we may need to adjust the available &lt;a href=&quot;https://help.trmnl.com/en/articles/11547008-device-models&quot;&gt;device models&lt;/a&gt;, just send us a live chat or email support@trmnl.com.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;step 2 - set up the Portal&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;go through the normal onboarding, connecting WiFi and logging into either a Facebook or WhatsApp account. you cannot access Settings unless you log into a social network (&lt;i&gt;&lt;em&gt;i know, i know...&lt;/em&gt;&lt;/i&gt;).&lt;/p&gt;&lt;p&gt;if your device does not arrive in &quot;setup mode,&quot; it&#39;s easy to perform a &lt;a href=&quot;https://www.meta.com/help/portal/494550162041940/&quot;&gt;factory reset&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;step 3 - enable Android Debug Bridge&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;from your Portal&#39;s home screen, navigate to the Apps tab, then tap the Settings icon, scroll to the Debug section, and tap again to Enable ADB.&lt;/p&gt;&lt;p&gt;you will likely be asked to provide your 4-digit pin from Step 1.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;step 4 - connect the Portal to your computer&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;plug a USB-C cable into your Meta Portal. i spent 10 minutes finding my port on the Gen2 -- it&#39;s behind the speaker. &lt;a href=&quot;https://developers.meta.com/horizon/documentation/android-apps/portal-setup/&quot;&gt;each Portal is different&lt;/a&gt;.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc2ODQ2ODg_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--72b7ac7e2ce46c53855294d42fdd4a9a89547fec&quot; content-type=&quot;image/webp&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ2ODgsInB1ciI6ImJsb2JfaWQifX0=--910a177a9590f32cec6bec64f622b6be17468d54/meta-portal-gen2-usb-c-port.png&quot; filename=&quot;meta-portal-gen2-usb-c-port.png&quot; filesize=&quot;44934&quot; width=&quot;1080&quot; height=&quot;607&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;credit: r/FacebookPortal&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ2ODgsInB1ciI6ImJsb2JfaWQifX0=--910a177a9590f32cec6bec64f622b6be17468d54/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--eb4e00cd72d6ab8b05a60b73c250c555943fb735/meta-portal-gen2-usb-c-port.png&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          credit: r/FacebookPortal
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;you should see a prompt on your Portal, asking you to &quot;Allow USB debugging.&quot; tap to allow. if you don&#39;t see this prompt, or it disappears, or you accidentally hit cancel, just turn off your Meta Portal (disconnect power), remove the USB-C cable, and plug it back in + try again from Step 3.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc2ODQ2OTE_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--8429cb0ead4cce06f1a8672ff1a3bc12b6c31c69&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ2OTEsInB1ciI6ImJsb2JfaWQifX0=--79e3e1cad9d84b67d47fd910d693d70dad87a1a3/meta-portal-allow-usb-debugging-prompt.png&quot; filename=&quot;meta-portal-allow-usb-debugging-prompt.png&quot; filesize=&quot;1130742&quot; width=&quot;1280&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ2OTEsInB1ciI6ImJsb2JfaWQifX0=--79e3e1cad9d84b67d47fd910d693d70dad87a1a3/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/meta-portal-allow-usb-debugging-prompt.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;step 5 - install Android Platform Tools&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;if you&#39;re on a Mac and you regularly write code, you may have Homebrew installed, in which case you can &lt;code&gt;brew install --cask android-platform-tools&lt;/code&gt; .&lt;/p&gt;&lt;p&gt;if you&#39;re not on Mac, or you do not use Homebrew, download the dev tools here under Downloads:&lt;br&gt;&lt;a href=&quot;https://developer.android.com/tools/releases/platform-tools&quot;&gt;https://developer.android.com/tools/releases/platform-tools&lt;/a&gt;&lt;/p&gt;&lt;p&gt;this is a relatively small (16mb) zip file. double click to expand it on your computer and you should see a short list of executable files inside:&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc2ODQ3MzA_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--1a977064abf611876eee47bbe05938dc2afc179f&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ3MzAsInB1ciI6ImJsb2JfaWQifX0=--a37fd68f25833d31a822f6cf0b2dffcc7f20ba9b/android-platform-tools-zip.png&quot; filename=&quot;android-platform-tools-zip.png&quot; filesize=&quot;32363&quot; width=&quot;460&quot; height=&quot;313&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ3MzAsInB1ciI6ImJsb2JfaWQifX0=--a37fd68f25833d31a822f6cf0b2dffcc7f20ba9b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/android-platform-tools-zip.png&quot;&gt;

  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;step 6 - download the TRMNL android app&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;TRMNL has a &lt;a href=&quot;https://help.trmnl.com/en/articles/11647499-trmnl-for-android&quot;&gt;couple Android apps&lt;/a&gt; developed by community member Hossain Khan. one is for turning a tablet into a device, the other is for managing multiple devices. we want the first app called TRMNL Display.&lt;/p&gt;&lt;p&gt;download the latest release&#39;s &quot;APK&quot; file, which is a bundle of the TRMNL Display application, here:&lt;br&gt;&lt;a href=&quot;https://github.com/usetrmnl/trmnl-android/releases&quot;&gt;https://github.com/usetrmnl/trmnl-android/releases&lt;/a&gt;&lt;/p&gt;&lt;p&gt;at the time of writing i&#39;m downloading the file called &quot;trmnl-v2.11.0.apk&quot; from the &lt;a href=&quot;https://github.com/usetrmnl/trmnl-android/releases/tag/v2.11.0&quot;&gt;v2.11.0 release&lt;/a&gt;.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc2ODQ3NzY_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--c7c91e1d76c2c89729ae10c6058f788e35646ef7&quot; content-type=&quot;image/png&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ3NzYsInB1ciI6ImJsb2JfaWQifX0=--1c10c5fe972f902ffa074b147a1c4599b4be3ab6/image.png&quot; filename=&quot;image.png&quot; filesize=&quot;8907&quot; width=&quot;216&quot; height=&quot;146&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;TRMNL Display - APK file&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--png&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ3NzYsInB1ciI6ImJsb2JfaWQifX0=--1c10c5fe972f902ffa074b147a1c4599b4be3ab6/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlsxMDI0LDc2OF19LCJwdXIiOiJ2YXJpYXRpb24ifX0=--a1b29f018116e3f4abd0440beb02228a54f47dd1/image.png&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          TRMNL Display - APK file
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;step 7 - install TRMNL on Meta Portal&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;it&#39;s time to open up a terminal (console) on your computer. if you&#39;re on Mac, hit &lt;code&gt;cmd+space&lt;/code&gt; and search for &quot;terminal,&quot; then hit enter.&lt;/p&gt;&lt;p&gt;if you installed the Android Platform Tools via Homebrew...&lt;/p&gt;&lt;ol&gt;&lt;li&gt;navigate to wherever you downloaded the APK file (e.g. &lt;code&gt;cd ~/Downloads&lt;/code&gt;)&lt;/li&gt;&lt;li&gt;run &lt;code&gt;adb install trmnl-v2.11.0.apk&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;if you installed the Android Platform Tools by downloading the zip file...&lt;/p&gt;&lt;ol&gt;&lt;li&gt;navigate to wherever you un-zipped the &quot;platform-tools&quot; folder (see picture in Step 5)&lt;/li&gt;&lt;li&gt;copy or move the &lt;code&gt;trmnl-v2.11.0.apk&lt;/code&gt; file you downloaded to the same folder&lt;/li&gt;&lt;li&gt;open your terminal/console and navigate to that folder (containing APK + executable files)&lt;/li&gt;&lt;li&gt;run &lt;code&gt;./adb install trmnl-v2.11.0.apk&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;you should see output like this:&lt;/p&gt;&lt;pre&gt;Ryans-Mac-mini:Downloads ryanckulp$ adb install trmnl-v2.11.0.apk&amp;nbsp;&lt;br&gt;Performing Streamed Install&lt;br&gt;Success&lt;/pre&gt;&lt;p&gt;see Troubleshooting below if you don&#39;t get a success message.&lt;/p&gt;&lt;p&gt;when the installation succeeds, your Meta Portal will go black for a brief moment, then blink back on. from the Apps tab you should see TRMNL installed.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc2ODQ4ODQ_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--a254ecbe9c1285959db4f92c953067eb188acbf2&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ4ODQsInB1ciI6ImJsb2JfaWQifX0=--0b0264f1cdac662c7df404e9e994a881042c00fb/meta-portal-trmnl-app-installed.jpeg&quot; filename=&quot;meta-portal-trmnl-app-installed.jpeg&quot; filesize=&quot;194539&quot; width=&quot;1280&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;TRMNL display on Meta Portal&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ4ODQsInB1ciI6ImJsb2JfaWQifX0=--0b0264f1cdac662c7df404e9e994a881042c00fb/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/meta-portal-trmnl-app-installed.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          TRMNL display on Meta Portal
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;tap to open the app, then set it up as a regular TRMNL or &lt;a href=&quot;https://trmnl.com/byod&quot;&gt;BYOD device&lt;/a&gt; (free trial, then $50 lifetime license), pending your preferences.&lt;/p&gt;&lt;p&gt;you may also point your Meta Portal to a &lt;a href=&quot;https://docs.trmnl.com/go/diy/byos#implementations&quot;&gt;self-hosted server&lt;/a&gt; for a completely free experience. simply select BYOS from the TRMNL app home screen and follow along &lt;a href=&quot;https://github.com/usetrmnl/trmnl-android&quot;&gt;the instructions&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;step 8 - enjoy&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;there&#39;s no reason 1 million Meta Portals need to visit a landfill. for $0-50 you can bring it back to life with TRMNL.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc2ODQ4OTg_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--740cb00bcf65da9a3d68efed79305aea802b67e5&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ4OTgsInB1ciI6ImJsb2JfaWQifX0=--d30ba0354f74576b52b040abd270d47961f37d9e/meta-portal-art-frame.jpeg&quot; filename=&quot;meta-portal-art-frame.jpeg&quot; filesize=&quot;327459&quot; width=&quot;1280&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Art of the Day + Meta Portal&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ4OTgsInB1ciI6ImJsb2JfaWQifX0=--d30ba0354f74576b52b040abd270d47961f37d9e/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/meta-portal-art-frame.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Art of the Day + Meta Portal
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;&lt;p&gt;(&lt;i&gt;&lt;em&gt;full color also supported, just change your Presentation from the device settings tab&lt;/em&gt;&lt;/i&gt;)&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;strong&gt;troubleshooting&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;while installing the TRMNL Display Android app, if you get a failure message, it&#39;s possible you didn&#39;t yet enable the Debug tools. additionally, any time you restart a Portal the ADB debugger is disabled. repeat Step 4 to be sure.&lt;/p&gt;&lt;p&gt;to confirm your device is detected by your computer, run &lt;code&gt;adb devices&lt;/code&gt; (or &lt;code&gt;./adb devices&lt;/code&gt; if using the zip folder contents) to confirm it appears:&lt;/p&gt;&lt;pre&gt;Ryans-Mac-mini:Downloads ryanckulp$ adb devices&lt;br&gt;List of devices attached&lt;br&gt;819LCM01Z0944N04 device&lt;/pre&gt;&lt;p&gt;to go back to your Meta Portal&#39;s home screen or use other apps, swipe &quot;up&quot; from the bottom, then tap the power off button. this will not actually turn off your Portal, it will just shut down the TRMNL Display app.&lt;/p&gt;&lt;action-text-attachment sgid=&quot;eyJfcmFpbHMiOnsiZGF0YSI6ImdpZDovL3RybW5sL0FjdGl2ZVN0b3JhZ2U6OkJsb2IvMTc2ODQ5NDQ_ZXhwaXJlc19pbiIsInB1ciI6ImF0dGFjaGFibGUifX0=--cd13c4d5bba0000b8dc0b245522a2896d3327a0b&quot; content-type=&quot;image/jpeg&quot; url=&quot;https://trmnl.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ5NDQsInB1ciI6ImJsb2JfaWQifX0=--c674603740f56846c82d1f01980616bcd4eb717b/meta-portal-turn-off-trmnl-display-app.jpeg&quot; filename=&quot;meta-portal-turn-off-trmnl-display-app.jpeg&quot; filesize=&quot;289569&quot; width=&quot;1280&quot; height=&quot;960&quot; previewable=&quot;true&quot; presentation=&quot;gallery&quot; caption=&quot;Turn off TRMNL Display&quot;&gt;  &lt;figure class=&quot;attachment attachment--preview attachment--jpeg&quot;&gt;
      &lt;img src=&quot;https://trmnl.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTc2ODQ5NDQsInB1ciI6ImJsb2JfaWQifX0=--c674603740f56846c82d1f01980616bcd4eb717b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbMTAyNCw3NjhdfSwicHVyIjoidmFyaWF0aW9uIn19--b5fc5af83c336b0fe3eb199eed01a2c85b3a702d/meta-portal-turn-off-trmnl-display-app.jpeg&quot;&gt;

      &lt;figcaption class=&quot;attachment__caption&quot;&gt;
          Turn off TRMNL Display
      &lt;/figcaption&gt;
  &lt;/figure&gt;&lt;/action-text-attachment&gt;
&lt;/div&gt;
</content>
    <id>https://trmnl.com/blog/meta-portal</id>
    <link href="https://trmnl.com/blog/meta-portal"/>
    <published>2026-07-09T00:00:00+00:00</published>
    <rights>Copyright 2026</rights>
    <title>Meta Portal is now TRMNL</title>
    <updated>2026-07-09T00:00:00+00:00</updated>
    <dc:date>2026-07-09T00:00:00+00:00</dc:date>
  </entry>
  <dc:date>2026-08-13T00:00:00+00:00</dc:date>
</feed>