<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ScreenlyOS release notes | Screenly</title><description>The operating system on Screenly players. What has shipped, newest first.</description><link>https://www.screenly.io/releases/screenlyos/</link><language>en</language><atom:link href="https://www.screenly.io/releases/screenlyos/rss.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Mon, 26 Oct 2026 00:00:00 +0000</lastBuildDate><item><title>ScreenlyOS 26.10.0: Players no longer trust certificates from emSign ECC Root CA - G3</title><link>https://www.screenly.io/releases/screenlyos/26.10.0/emsign-ecc-root-distrusted/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.10.0/emsign-ecc-root-distrusted/</guid><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><category>security</category><category>security</category><description>&lt;p&gt;From ScreenlyOS 26.10.0, players no longer accept certificates issued under emSign ECC Root CA - G3. On
October 20, 2026, keys belonging to certificate authorities under that root were found to be
compromised (&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2083449" target="_blank" rel="noopener noreferrer nofollow"&gt;Mozilla bug 2083449&lt;/a&gt;). Players
stop trusting it, for the web pages they show and for their own connections.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If this affects you:&lt;/strong&gt; a web page on your screens whose certificate comes from emSign ECC Root
CA - G3 stops loading on players running 26.10.0. Ask whoever runs the site to move to a
certificate from another authority.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>ScreenlyOS 26.10.0: The Device Information page shows a player's details on the display</title><link>https://www.screenly.io/releases/screenlyos/26.10.0/device-information-on-screen/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.10.0/device-information-on-screen/</guid><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><category>improvement</category><category>device-management</category><description>&lt;p&gt;Support asks for a player&amp;rsquo;s serial number and MAC address, and you&amp;rsquo;re standing in front of it with
a keyboard. Press &lt;kbd&gt;F8&lt;/kbd&gt; and the Device Information page now lists the details on the display:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;model and serial number&lt;/li&gt;
&lt;li&gt;Ethernet and Wi-Fi IP and MAC addresses&lt;/li&gt;
&lt;li&gt;whether secure boot and disk encryption are on&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Before, the page showed only a QR code, so reading anything off it meant getting a phone out. The
QR code is still there, next to the list, for when you&amp;rsquo;d rather send the details to your phone than
copy them down.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.10.0: Apps on x86 players with a TPM always get their saved keys and passwords</title><link>https://www.screenly.io/releases/screenlyos/26.10.0/edge-app-secrets-tpm/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.10.0/edge-app-secrets-tpm/</guid><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><category>fix</category><category>apps</category><description>&lt;p&gt;On x86 players with a TPM, an app that played after any web page had loaded lost the API keys and
passwords saved in its settings, so it couldn&amp;rsquo;t fetch its data.&lt;/p&gt;
&lt;p&gt;From ScreenlyOS 26.10.0, apps on these players get them every time, whatever played before them.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.10.0: A screen keeps showing its content while a single new item loads</title><link>https://www.screenly.io/releases/screenlyos/26.10.0/single-item-playlist-keeps-content/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.10.0/single-item-playlist-keeps-content/</guid><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><category>fix</category><category>content-management</category><description>&lt;p&gt;Switching a screen to a single item that couldn&amp;rsquo;t load yet, such as an app still downloading its
files or a web page that failed to load, turned the screen black while the player tried again.&lt;/p&gt;
&lt;p&gt;The screen now keeps showing what was there, the previous content or the same item if it was
already playing, until the new item loads. Screens with more than 1 item to show already worked
this way.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.10.0: Audio plays through the right port on Raspberry Pi, and other fixes</title><link>https://www.screenly.io/releases/screenlyos/26.10.0/fixes-and-improvements/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.10.0/fixes-and-improvements/</guid><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><category>roundup</category><description>&lt;h2 id="fixes"&gt;Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;On a Raspberry Pi, audio set to HDMI could play through the HDMI port with no display on it, and
audio set to the headphone jack came out of the second HDMI port instead. HDMI audio now plays
through the port the display is connected to, and headphone jack audio plays from the jack. On a
Raspberry Pi 5, which has no headphone jack, it plays through HDMI.&lt;/li&gt;
&lt;li&gt;Pressing &lt;kbd&gt;F3&lt;/kbd&gt; for network diagnostics showed the results of the checks from when the player
started. &lt;kbd&gt;F3&lt;/kbd&gt; now runs the checks each time.&lt;/li&gt;
&lt;li&gt;The time server check, on the diagnostics screen and in support reports, always tested
ntp.ubuntu.com. It now tests the time server the player is set to use.&lt;/li&gt;
&lt;li&gt;Pressing &lt;kbd&gt;F3&lt;/kbd&gt; or &lt;kbd&gt;F8&lt;/kbd&gt; while help or a setup screen was open stopped &lt;kbd&gt;R&lt;/kbd&gt; from working until the player
restarted. &lt;kbd&gt;R&lt;/kbd&gt; now works after either key.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="improvements"&gt;Improvements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Optimizations for video playback on LED screens.&lt;/li&gt;
&lt;li&gt;A screen whose connection to Screenly drops after it&amp;rsquo;s been up for a while reconnects right
away, so commands like a reboot or a screenshot reach it sooner.&lt;/li&gt;
&lt;li&gt;The setup file on a USB drive is now called &lt;code&gt;screenlyos-config.yaml&lt;/code&gt;. Drives that still have
&lt;code&gt;network.yaml&lt;/code&gt; keep working.&lt;/li&gt;
&lt;li&gt;Dependencies and system libraries updated.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>ScreenlyOS 26.9.0: Players support a new screenshot command</title><link>https://www.screenly.io/releases/screenlyos/26.9.0/screenshots-on-request/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.9.0/screenshots-on-request/</guid><pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate><category>release</category><category>device-management</category><category>monitoring</category><description>&lt;p&gt;Remote device management is about doing from the dashboard what used to take someone standing at
the screen. A player takes commands from Screenly, like reboot and power off, and ScreenlyOS 26.9.0
adds a new one: take a screenshot.&lt;/p&gt;
&lt;p&gt;A player that gets the command captures what it&amp;rsquo;s showing at that moment and sends it straight
back. Until now, the only screenshot to look at was the one sent with the player&amp;rsquo;s regular report,
about every 15 minutes, so checking whether a change reached the lobby screen could mean a
quarter-hour wait.&lt;/p&gt;
&lt;p&gt;The dashboard sends the command from the &amp;ldquo;Take screenshot&amp;rdquo; button on a screen&amp;rsquo;s Overview, which
arrived in &lt;a href="https://www.screenly.io/releases/screenly/26.10.6/take-screenshot-on-demand/"&gt;Screenly 26.10.6&lt;/a&gt;. It works on
players running ScreenlyOS 26.9.0 or newer.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.9.0: An Edge App with nothing to show can skip its turn</title><link>https://www.screenly.io/releases/screenlyos/26.9.0/edge-apps-can-skip-their-turn/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.9.0/edge-apps-can-skip-their-turn/</guid><pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate><category>release</category><category>apps</category><category>developers</category><description>&lt;p&gt;An earthquake map on a quiet day, a flight tracker with no planes overhead, a meeting room app
between bookings: some apps have nothing worth showing some of the time. Until now, they still
took their slot in the playlist, and the screen showed an empty app for its whole duration.&lt;/p&gt;
&lt;p&gt;An Edge App can now tell the player it has nothing to show. The player skips it and moves on to the
next item in the playlist, so the screen keeps showing something useful. The app gets its turn
again the next time the playlist comes round, and can decide again then.&lt;/p&gt;
&lt;p&gt;An app can only skip before it appears. Once it&amp;rsquo;s on screen, it plays for its full duration.&lt;/p&gt;
&lt;h2 id="for-developers"&gt;For developers&lt;/h2&gt;
&lt;p&gt;Call &lt;code&gt;screenly.signalAbort()&lt;/code&gt; from your Edge App while it&amp;rsquo;s loading. If the app hasn&amp;rsquo;t been shown
yet, the player cancels it and starts the next item. A call after the app is on screen is ignored.
A skip isn&amp;rsquo;t counted as a failed play.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.9.0: Screen metrics are served over HTTPS</title><link>https://www.screenly.io/releases/screenlyos/26.9.0/screen-metrics-over-https/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.9.0/screen-metrics-over-https/</guid><pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate><category>improvement</category><category>monitoring</category><category>security</category><description>&lt;p&gt;Some customers have Prometheus metrics turned on for their players, so their own monitoring can
track CPU, memory, disk, and network use across a fleet. From ScreenlyOS 26.9.0, a player serves those
metrics over HTTPS on port 9100, and identifies itself with its own device certificate. Your
monitoring system can check it&amp;rsquo;s talking to the player it expects.&lt;/p&gt;
&lt;p&gt;Metrics collection is off unless it was turned on for your players, so most customers have nothing
to change.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If this affects you:&lt;/strong&gt; a monitoring system that collects metrics from players over plain HTTP
stops getting data once a player updates to 26.9.0. Change the scrape target to &lt;code&gt;https&lt;/code&gt; on the
same port, verify the certificate against the Screenly certificate authority, and set the
expected server name to the player&amp;rsquo;s hostname (the &lt;code&gt;srly-&lt;/code&gt; name). Our support team can send you
the Screenly CA certificate.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="for-developers"&gt;For developers&lt;/h2&gt;
&lt;p&gt;For a Prometheus scrape job, that means &lt;code&gt;scheme: https&lt;/code&gt; with a &lt;code&gt;tls_config&lt;/code&gt; whose &lt;code&gt;ca_file&lt;/code&gt; points
at the Screenly CA certificate and whose &lt;code&gt;server_name&lt;/code&gt; is the player&amp;rsquo;s hostname. The port stays
&lt;code&gt;9100&lt;/code&gt;, and the metrics themselves are unchanged.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.9.0: Players keep Bluetooth off and report its state</title><link>https://www.screenly.io/releases/screenlyos/26.9.0/bluetooth-off/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.9.0/bluetooth-off/</guid><pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate><category>improvement</category><category>security</category><description>&lt;p&gt;Nothing on a Screenly player uses Bluetooth, so from ScreenlyOS 26.9.0, players switch it off when
they start. That covers a Raspberry Pi&amp;rsquo;s built-in Bluetooth and a USB Bluetooth adapter plugged
in later. Wi-Fi isn&amp;rsquo;t affected.&lt;/p&gt;
&lt;p&gt;Each player also reports whether its Bluetooth is on or off. The dashboard doesn&amp;rsquo;t show it yet.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.9.0: Removed screens get a new PIN to pair again, and other fixes</title><link>https://www.screenly.io/releases/screenlyos/26.9.0/fixes-and-improvements/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.9.0/fixes-and-improvements/</guid><pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate><category>roundup</category><description>&lt;h2 id="fixes"&gt;Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A screen that had been removed from its workspace could sit on the pairing screen with no PIN.
It now gets a new PIN, so you can pair it again.&lt;/li&gt;
&lt;li&gt;An x86 player with a TPM now recovers on its own from a TPM fault that used to disrupt its
connection to Screenly until it was restarted.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="improvements"&gt;Improvements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;a href="https://www.screenly.io/releases/screenlyos/26.8.0/screenlyos-on-scala-players/"&gt;Scala player running ScreenlyOS&lt;/a&gt;
reports itself as a Scala Player, with the serial number from its hardware.&lt;/li&gt;
&lt;li&gt;Dependencies and system libraries updated.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>ScreenlyOS 26.8.0: Each display runs at its own resolution, whenever it was connected</title><link>https://www.screenly.io/releases/screenlyos/26.8.0/display-config-follows-the-screen/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.8.0/display-config-follows-the-screen/</guid><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><category>fix</category><category>device-management</category><description>&lt;p&gt;A player worked out its display setup once and then kept it. Whatever was plugged in the first time
set the resolution: a 4K display installed this month could run at 1600x900 because a 1600x900
display had been on the end of that cable 6 months ago. A second display added after that first
look was never set up, so it didn&amp;rsquo;t mirror the first one.&lt;/p&gt;
&lt;p&gt;Players now read the displays that are actually connected. Each one gets its own preferred
resolution, and a second display mirrors the first, whichever order they were plugged in. 2
displays with different resolutions now both show the whole picture, instead of 1 of them showing
it cropped.&lt;/p&gt;
&lt;p&gt;If a display at one of your sites has looked soft, or a second display hasn&amp;rsquo;t shown the same
picture as the first, this release fixes it.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.8.0: ScreenlyOS runs on Scala players</title><link>https://www.screenly.io/releases/screenlyos/26.8.0/screenlyos-on-scala-players/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.8.0/screenlyos-on-scala-players/</guid><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><category>release</category><category>device-management</category><description>&lt;p&gt;ScreenlyOS is now built as a disk image for Scala players, alongside the Raspberry Pi and x86
images. A Scala player already mounted behind a screen can be reimaged and connected to a Screenly
workspace instead of replaced.&lt;/p&gt;
&lt;p&gt;That matters most where the hardware is already in place. In a store or a cinema lobby running
Scala players, the expensive part of a deployment was done years ago: the players are mounted,
cabled, and powered, often somewhere awkward. Reimaging changes what runs on them, and everything
after that is the usual Screenly setup. The screen shows a PIN, and you connect it from Screens &amp;gt;
Connect screen.&lt;/p&gt;
&lt;p&gt;A Scala player gets each ScreenlyOS release at the same time as the rest of your fleet.&lt;/p&gt;
&lt;p&gt;The image isn&amp;rsquo;t on the downloads page yet. Ask support or sales, and they&amp;rsquo;ll send it to you.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.8.0: Changing a screen's timezone applies to scheduled content right away</title><link>https://www.screenly.io/releases/screenlyos/26.8.0/timezone-changes-reach-scheduled-content/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.8.0/timezone-changes-reach-scheduled-content/</guid><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><category>fix</category><category>content-management</category><description>&lt;p&gt;Correcting a screen&amp;rsquo;s timezone had no effect on what it played. Scheduled content kept following
the old timezone until the player happened to restart, so a screen set up in the wrong timezone
could run a breakfast menu at lunchtime with nothing on the screen to explain why.&lt;/p&gt;
&lt;p&gt;A timezone change now applies within about half a second. Set the timezone on a screen that has
been running for weeks, and the next scheduled item is the right one.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.8.0: Content changes reach screens sooner</title><link>https://www.screenly.io/releases/screenlyos/26.8.0/content-downloads-in-a-useful-order/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.8.0/content-downloads-in-a-useful-order/</guid><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><category>improvement</category><category>content-management</category><description>&lt;p&gt;A player can handle a change to what a screen shows in 2 ways. It can keep the old content on
screen until the whole update has downloaded and then switch over in one go, or it can switch as
soon as it has something new to show and fill in the rest behind it. Screenly does the second,
because what you usually want most is to see the change.&lt;/p&gt;
&lt;p&gt;That matters most on the day something is wrong on a screen. Pull the item and publish the
replacement, and it reaches the screen in the time it takes to fetch 1 item, not everything you
touched.&lt;/p&gt;
&lt;p&gt;In ScreenlyOS 26.8.0, the player downloads in an order that makes the most of that. It fetches 1 item it
can play right now before it switches over, so there&amp;rsquo;s something to show the moment it does. Then
it works through the rest smallest first, leaving anything not scheduled to play until later for
last.&lt;/p&gt;
&lt;p&gt;The order used to be arbitrary. A single large video could sit at the front of the queue with a
dozen small images behind it, so a change stayed off the screen far longer than its size called
for. You&amp;rsquo;ll notice the difference most on a screen setting itself up for the first time, which has
everything to download, and at sites with a slow connection, where a screen now fills in as it goes.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.8.0: Proof of play comes to ScreenlyOS</title><link>https://www.screenly.io/releases/screenlyos/26.8.0/proof-of-play-recording/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.8.0/proof-of-play-recording/</guid><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><category>release</category><category>monitoring</category><description>&lt;p&gt;A schedule only says what a screen was meant to show. What actually played is a different
question, and a lot rides on the answer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An advertiser or a landlord paying for a slot on your screens wants evidence it ran.&lt;/li&gt;
&lt;li&gt;In a regulated environment, a record of what was shown on each screen, and when, can be what an
audit asks for.&lt;/li&gt;
&lt;li&gt;Anyone running a large fleet wants to know their content plays without failures, and that the
schedules they set up put the right thing on the right screen at the right time.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From ScreenlyOS 26.8.0, players can record what they actually play. Each item that goes on screen
produces a record of what it was and how long it was up, kept on the player and uploaded to Screenly
every few minutes. A screen that was offline for an hour, or an item that failed to load, shows up
as a gap instead of hiding behind the schedule. If the network is down, the records wait on the
player for up to 31 days and go up when it&amp;rsquo;s back.&lt;/p&gt;
&lt;p&gt;Proof of play is off by default, and we turn it on by request: talk to us if you want it on your
screens. The dashboard doesn&amp;rsquo;t show the records yet.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.8.0: Videos keep playing after one fails to load, and other fixes</title><link>https://www.screenly.io/releases/screenlyos/26.8.0/fixes-and-improvements/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.8.0/fixes-and-improvements/</guid><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><category>roundup</category><description>&lt;h2 id="fixes"&gt;Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A player no longer crashes when its screen&amp;rsquo;s location comes without coordinates.&lt;/li&gt;
&lt;li&gt;USB capture devices that send uncompressed video now play.&lt;/li&gt;
&lt;li&gt;A scheduling rule that fails while it&amp;rsquo;s being checked no longer restarts the player in a loop.&lt;/li&gt;
&lt;li&gt;After 1 video fails to load, the rest of the videos still play.&lt;/li&gt;
&lt;li&gt;A player no longer hangs while closing a video, or restarts onto a video it has already
dropped.&lt;/li&gt;
&lt;li&gt;A web page that&amp;rsquo;s still on screen is no longer dropped from the player&amp;rsquo;s memory.&lt;/li&gt;
&lt;li&gt;Scheduled content no longer builds up in the player&amp;rsquo;s memory with each content update.&lt;/li&gt;
&lt;li&gt;1 diagnostics check timing out now reports 1 failure instead of up to 3.&lt;/li&gt;
&lt;li&gt;Repeated Wi-Fi scans in the Wi-Fi settings no longer pile up and time out early.&lt;/li&gt;
&lt;li&gt;A stalled connection to Screenly no longer holds up every request behind it.&lt;/li&gt;
&lt;li&gt;1 unreadable USB device no longer stops the player listing the others.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="improvements"&gt;Improvements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A new power-off command, which the dashboard sends from &amp;ldquo;Power off&amp;rdquo; on a screen&amp;rsquo;s Actions tab
since &lt;a href="https://www.screenly.io/releases/screenly/26.10.4/screen-power-off/"&gt;Screenly 26.10.4&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The disk image and the Raspberry Pi Imager entry are called ScreenlyOS, so what you flash has the
same name as what runs. The fixed download address follows the new name:
&lt;a href="https://disk-images.screenlyapp.com/screenlyos-latest-pi64-stable.img.zip" target="_blank" rel="noopener noreferrer nofollow"&gt;screenlyos-latest-pi64-stable.img.zip&lt;/a&gt;
for Raspberry Pi and
&lt;a href="https://disk-images.screenlyapp.com/screenlyos-latest-x86-stable.img.zip" target="_blank" rel="noopener noreferrer nofollow"&gt;screenlyos-latest-x86-stable.img.zip&lt;/a&gt;
for x86. The old &lt;code&gt;screenly-latest&lt;/code&gt; address no longer updates, so a bookmark or script that uses it
needs the new one.&lt;/li&gt;
&lt;li&gt;Dependencies and system libraries updated.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>ScreenlyOS 26.7.0: Players showing web pages keep running instead of going black</title><link>https://www.screenly.io/releases/screenlyos/26.7.0/web-content-memory-growth/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.7.0/web-content-memory-growth/</guid><pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate><category>fix</category><category>content-management</category><description>&lt;p&gt;A screen showing web pages, such as several Google Slides decks rotating through the day, used a
little more memory every time it moved from one web page to the next. Left alone, the player ran
out. A screen that had been fine all morning went black or restarted by itself in the afternoon,
then ran normally once it came back.&lt;/p&gt;
&lt;p&gt;Memory now stays flat however long the loop runs, so a screen on web content keeps going through
the day and the night after it.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.7.0: New playlist content reaches the screen without a restart</title><link>https://www.screenly.io/releases/screenlyos/26.7.0/playlist-content-appears-without-a-restart/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.7.0/playlist-content-appears-without-a-restart/</guid><pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate><category>fix</category><category>content-management</category><description>&lt;p&gt;When you added or replaced content in a playlist, a player could download the new items and then
go on showing the old ones until it was restarted.&lt;/p&gt;
&lt;p&gt;The screen now switches to the new content once it has downloaded, on every player showing that
playlist.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.7.0: The Diagnostics screen on the player is easier to read</title><link>https://www.screenly.io/releases/screenlyos/26.7.0/diagnostics-screen-refresh/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.7.0/diagnostics-screen-refresh/</guid><pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate><category>improvement</category><category>monitoring</category><description>&lt;p&gt;The Diagnostics screen is what you read when you&amp;rsquo;re standing in front of a screen that isn&amp;rsquo;t doing
what it should. Its System, Disk, and Network cards have a new design: larger card titles, load and
temperature on 1 line each, and clearer progress bars.&lt;/p&gt;
&lt;p&gt;Press &lt;kbd&gt;F4&lt;/kbd&gt; on a player to open it.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.7.0: Players report more about their hardware health, and other improvements</title><link>https://www.screenly.io/releases/screenlyos/26.7.0/fixes-and-improvements/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.7.0/fixes-and-improvements/</guid><pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate><category>roundup</category><description>&lt;ul&gt;
&lt;li&gt;Players report more about the health of their hardware, including SD card errors on Raspberry
Pi and power and heat throttling on Raspberry Pi 5. From
&lt;a href="https://www.screenly.io/releases/screenly/26.10.3/screen-reports-api-fields/"&gt;Screenly 26.10.3&lt;/a&gt;, SD card health is in a
screen&amp;rsquo;s reports on API v4.1, as &lt;code&gt;sd_card_health&lt;/code&gt;. The dashboard doesn&amp;rsquo;t show these readings
yet.&lt;/li&gt;
&lt;li&gt;Improvements to how players connect to Screenly when the service is busy.&lt;/li&gt;
&lt;li&gt;Dependencies and system libraries updated.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>ScreenlyOS 26.6.0: Players can keep a resolution and rotation for each display</title><link>https://www.screenly.io/releases/screenlyos/26.6.0/per-display-resolution-and-rotation/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.6.0/per-display-resolution-and-rotation/</guid><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><category>release</category><category>device-management</category><description>&lt;p&gt;A player can now hold a resolution and a rotation for a particular display, instead of for a port
on the player. A resolution set this way also overrides the 1080p limit that Raspberry Pi 4
players otherwise apply.&lt;/p&gt;
&lt;p&gt;Because the setting belongs to the display, it moves with it. Someone who unplugs a display during
maintenance and puts the cable back in a different port gets the same picture, and a port that
takes a different display each time, on an expo stand or in a demo room, gives each one the setup
it had last time.&lt;/p&gt;
&lt;p&gt;This release is the player side. You can&amp;rsquo;t set it from the dashboard yet, so there&amp;rsquo;s nothing to
switch on today.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.6.0: Switching the audio output takes effect without a reboot</title><link>https://www.screenly.io/releases/screenlyos/26.6.0/audio-output-applies-immediately/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.6.0/audio-output-applies-immediately/</guid><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><category>improvement</category><category>device-management</category><description>&lt;p&gt;Change &amp;ldquo;Audio output&amp;rdquo; under Screens &amp;gt; a screen &amp;gt; Settings, between HDMI and the 3.5mm jack, and the
sound follows right away.&lt;/p&gt;
&lt;p&gt;Before, the setting saved but the sound stayed where it was until the player restarted. A lobby
screen that needs its sound sent to the room&amp;rsquo;s amplifier instead of the display is now a setting
you change and walk away from.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.6.0: The 3.5mm jack on Screenly Player Max plays sound</title><link>https://www.screenly.io/releases/screenlyos/26.6.0/player-max-analog-audio/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.6.0/player-max-analog-audio/</guid><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><category>fix</category><category>device-management</category><description>&lt;p&gt;Setting &amp;ldquo;Audio output&amp;rdquo; to the 3.5mm jack under Screens &amp;gt; a screen &amp;gt; Settings did nothing on a
Screenly Player Max. The sound kept going out over HDMI, and anything plugged into the jack stayed
silent.&lt;/p&gt;
&lt;p&gt;It works now. A Player Max wired into ceiling speakers or a soundbar sends its sound there.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.6.0: The setup screen shows wired as connected only when the cable is</title><link>https://www.screenly.io/releases/screenlyos/26.6.0/wired-status-on-the-setup-screen/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.6.0/wired-status-on-the-setup-screen/</guid><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><category>fix</category><category>device-management</category><description>&lt;p&gt;The setup screen showed a player&amp;rsquo;s wired connection as connected whenever the player had any way
onto the network. A player running over Wi-Fi with nothing in its ethernet port read as wired and
connected, which is no help when you&amp;rsquo;re standing in front of it trying to work out what&amp;rsquo;s wrong.&lt;/p&gt;
&lt;p&gt;Wired status now follows the cable and the link. An unplugged cable says so, and a cable that&amp;rsquo;s
plugged in without an address says that instead.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.6.0: Screens keep playing even when a settings screen is left open</title><link>https://www.screenly.io/releases/screenlyos/26.6.0/overlays-return-to-playback/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.6.0/overlays-return-to-playback/</guid><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><category>improvement</category><category>device-management</category><description>&lt;p&gt;A screen should always be showing what you scheduled for it. That&amp;rsquo;s the whole point of it being
there, and it matters most on screens your customers and visitors see.&lt;/p&gt;
&lt;p&gt;Until now, one moment at a player could break that. Someone checks the network settings or the
help screen, gets called away, and the screen stays on it: everyone in the room sees a settings
page where your content should be, until someone comes back with a keyboard.&lt;/p&gt;
&lt;p&gt;From ScreenlyOS 26.6.0, the network settings, help, diagnostics, and device information screens
close by themselves after 3 minutes without a keypress, and the screen goes straight back to its
content. Nobody has to remember, and nobody has to go back to the screen to fix it.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.6.0: Editing content on a live screen no longer crashes the player</title><link>https://www.screenly.io/releases/screenlyos/26.6.0/content-updates-during-playback/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.6.0/content-updates-during-playback/</guid><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><category>fix</category><category>content-management</category><description>&lt;p&gt;Changing a playlist or a schedule while screens were showing it usually went through cleanly, and
occasionally didn&amp;rsquo;t. When it didn&amp;rsquo;t, the player crashed and restarted, or, when 2 changes arrived
close together, the screen played an item from the earlier change for its full duration before the
latest one took over.&lt;/p&gt;
&lt;p&gt;Which of those happened, and whether anything happened at all, depended on what the player was in
the middle of at that moment. That&amp;rsquo;s why the same edit could be fine on 1 screen and go wrong on the
one next to it.&lt;/p&gt;
&lt;p&gt;Neither happens now, whatever the player is doing when your change arrives.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.6.0: Players pick only resolutions they can run</title><link>https://www.screenly.io/releases/screenlyos/26.6.0/display-modes-the-player-can-drive/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.6.0/display-modes-the-player-can-drive/</guid><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><category>fix</category><category>device-management</category><description>&lt;p&gt;A display tells the player which resolutions and refresh rates it accepts, and the player used to
take that list at its word. Sometimes the player&amp;rsquo;s own graphics chip couldn&amp;rsquo;t run one of them, so
the player asked for a mode that could never work, the request was rejected, and the screen fell
back to a default mode instead of the one the player meant to set. It showed up most on a Raspberry
Pi 4 over HDMI, with a display offering 1080p at 120Hz.&lt;/p&gt;
&lt;p&gt;A player now picks only from resolutions that both the display and the player can run.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.6.0: Network changes no longer leave old connections behind, and other improvements</title><link>https://www.screenly.io/releases/screenlyos/26.6.0/fixes-and-improvements/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.6.0/fixes-and-improvements/</guid><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><category>roundup</category><description>&lt;h2 id="fixes"&gt;Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Changing network settings on the player no longer leaves the old connection behind. On a player
set up over ethernet more than once, a new one piled up
with every change.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="improvements"&gt;Improvements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The latest disk image has a download address that stays the same from release to release, so a
bookmark or a build script doesn&amp;rsquo;t need updating every time we ship. The current address is in
the guide to &lt;a href="https://www.screenly.io/docs/screenlyos/hardware/raspberry-pi/guides/write-the-image/"&gt;writing the image&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Dependencies and system libraries updated.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>ScreenlyOS 26.5.1: Edge Apps can read their encrypted settings from injected JavaScript</title><link>https://www.screenly.io/releases/screenlyos/26.5.1/edge-app-secrets-in-injected-javascript/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.5.1/edge-app-secrets-in-injected-javascript/</guid><pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate><category>release</category><category>apps</category><category>developers</category><description>&lt;p&gt;An Edge App that points at a remote page and injects JavaScript into it can now read its own
encrypted settings from that script, as &lt;code&gt;screenly_settings.&amp;lt;key&amp;gt;&lt;/code&gt;. The player decrypts the values
when the page loads and passes them to your script.&lt;/p&gt;
&lt;p&gt;Use it wherever a script on a remote page needs a secret to do its job: an internal dashboard that
needs an API key, an order screen calling a kitchen system, or a logistics board pulling from an
API that authenticates every request. Store the key as an encrypted setting of the Edge App and
read it from &lt;code&gt;screenly_settings&lt;/code&gt; instead of writing it into the script.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.5.1: Players can show web pages that require a client certificate</title><link>https://www.screenly.io/releases/screenlyos/26.5.1/web-asset-client-certificates/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.5.1/web-asset-client-certificates/</guid><pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate><category>release</category><category>content-management</category><category>security</category><description>&lt;p&gt;Some internal systems never go near the open web: a plant&amp;rsquo;s process dashboard, an internal
operations board, anything an organization has put behind mutual TLS. Until now, a player couldn&amp;rsquo;t
load those pages.&lt;/p&gt;
&lt;p&gt;Now you can show them directly. Turn on &amp;ldquo;Allow sending client certificate&amp;rdquo; in a web page&amp;rsquo;s settings,
and the player presents its own device certificate when it loads the page. The server can then
decide whether to talk to that player, the same way it decides for any other client it trusts.&lt;/p&gt;
&lt;p&gt;On Screenly Player Max and other x86 players, the certificate is held in the device&amp;rsquo;s secure
hardware.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.5.1: Players report which hardware they run on</title><link>https://www.screenly.io/releases/screenlyos/26.5.1/fixes-and-improvements/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.5.1/fixes-and-improvements/</guid><pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate><category>roundup</category><description>&lt;ul&gt;
&lt;li&gt;Players report the model and revision of the hardware they run on, so the dashboard can show
which player a screen is.&lt;/li&gt;
&lt;li&gt;Dependencies and system libraries updated.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>ScreenlyOS 26.2.0: Players can join 802.1X enterprise networks, wired or Wi-Fi</title><link>https://www.screenly.io/releases/screenlyos/26.2.0/enterprise-network-authentication/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.2.0/enterprise-network-authentication/</guid><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><category>release</category><category>security</category><category>device-management</category><description>&lt;p&gt;On most corporate networks, every device has to identify itself before a port or an access point
lets it in. Until now the network settings on a player couldn&amp;rsquo;t answer that question.&lt;/p&gt;
&lt;p&gt;A player now authenticates with 802.1X PEAP, giving an identity and a password like any laptop on
the same network.&lt;/p&gt;
&lt;h2 id="on-wi-fi"&gt;On Wi-Fi&lt;/h2&gt;
&lt;p&gt;Press &lt;kbd&gt;F2&lt;/kbd&gt; to open the Wi-Fi settings and pick the network. A network that authenticates its clients
asks for an identity and a password instead of a passphrase. For a network that doesn&amp;rsquo;t broadcast
its name, type it in under &amp;ldquo;Other Network&amp;rdquo; and choose 802.1X PEAP as the security.&lt;/p&gt;
&lt;h2 id="on-ethernet"&gt;On ethernet&lt;/h2&gt;
&lt;p&gt;Press &lt;kbd&gt;F5&lt;/kbd&gt; for the new wired network settings, and set &amp;ldquo;Authentication&amp;rdquo; to 802.1X PEAP.
The same screen takes a static IP address, with its subnet mask, gateway, and DNS server, for
a site that assigns addresses by hand instead of over DHCP.&lt;/p&gt;
&lt;p&gt;For a batch of players going to the same site, a &lt;code&gt;network.yaml&lt;/code&gt; on a USB drive applies the same
settings without anyone standing at a screen with a keyboard.&lt;/p&gt;
&lt;p&gt;An open or passphrase network over DHCP is still the default, and it&amp;rsquo;s still what most players
use. The rest is for the factory floor and the hospital, where every port and every access point
authenticates before it passes traffic.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.2.0: Players can join your Tailscale network</title><link>https://www.screenly.io/releases/screenlyos/26.2.0/tailscale-on-a-player/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.2.0/tailscale-on-a-player/</guid><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><category>release</category><category>content-management</category><category>security</category><description>&lt;p&gt;Some of what you&amp;rsquo;d want on a screen was never going to be on the open internet: an operations
dashboard on an internal server, a page on the intranet, the API for your app. A screen can show
those now.&lt;/p&gt;
&lt;p&gt;Connect Tailscale to your workspace in the dashboard and turn it on for your screens, and your
players join your tailnet, stay on it, and report whether they&amp;rsquo;re connected, which you see on a
screen&amp;rsquo;s Details tab. Once a player is on your tailnet, it reaches your internal web pages and APIs
the way any other machine of yours does, and nothing has to be published to get them onto a wall.&lt;/p&gt;
&lt;p&gt;Tailscale is only for web resources. Videos, images, and other files still go to screens through
the Screenly dashboard, and so does managing players, the same as for every other screen.&lt;/p&gt;
&lt;p&gt;All of it happens from the dashboard. There&amp;rsquo;s no key to type in on the screen and nothing to set up
on the player, so you connect a whole fleet from where you already are.&lt;/p&gt;
&lt;p&gt;When you replace the key, players pick up the new one and reconnect on their own.&lt;/p&gt;</description></item><item><title>ScreenlyOS 26.2.0: Raspberry Pi 4 players run at 1080p on a 4K display</title><link>https://www.screenly.io/releases/screenlyos/26.2.0/raspberry-pi-4-1080p/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.2.0/raspberry-pi-4-1080p/</guid><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><category>improvement</category><category>device-management</category><description>&lt;p&gt;Video plays smoothly on a Raspberry Pi 4 connected to a 4K display. Until now the player would try
to run at 4K, which is more than that board can handle, so video stuttered and the player looked
slow when the real problem was a resolution too big for it.&lt;/p&gt;
&lt;p&gt;These players now run at the highest resolution the display offers up to 1080p, at the fastest
refresh rate available at that resolution, with nothing to set on the device.&lt;/p&gt;
&lt;p&gt;This covers the Raspberry Pi 4 Model B, the Pi 400, and the Compute Module 4, which share the same
graphics chip. Raspberry Pi 5 and x86 players, such as Screenly Player Max, keep running at 4K.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If this affects you:&lt;/strong&gt; a Raspberry Pi 4 on a 4K display drops to 1080p when it takes this
release. There&amp;rsquo;s nothing to change on your side.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>ScreenlyOS 26.2.0: Improvements to how players connect to Screenly</title><link>https://www.screenly.io/releases/screenlyos/26.2.0/fixes-and-improvements/</link><guid isPermaLink="true">https://www.screenly.io/releases/screenlyos/26.2.0/fixes-and-improvements/</guid><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><category>roundup</category><description>&lt;ul&gt;
&lt;li&gt;Improvements to how players connect to Screenly.&lt;/li&gt;
&lt;li&gt;Dependencies and system libraries updated.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>