{"product":"anthias","releases":[{"date":"2026-08-17","entries":[{"areas":[],"breaking":false,"content_html":"\u003cp\u003eA Raspberry Pi on a weak power supply freezes, glitches and shows stray text along the edge of the screen, and nothing on the player said why. Left alone, a weak supply can also corrupt the memory card until the player stops starting up. From Anthias 2026.08.2, the web interface tells you when it\u0026#39;s happening, with a banner at the top of every page, the Schedule page included.\u003c/p\u003e\n\u003cp\u003eThe banner has 2 forms:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;This player isn\u0026#39;t getting enough power\u0026quot; while the voltage is too low right now.\u003c/li\u003e\n\u003cli\u003e\u0026quot;This player briefly lost power\u0026quot; when it dropped earlier and is steady again. It says how many times that happened since the player last restarted, and how long ago the last one was.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUnder \u0026quot;What to do\u0026quot;, the first step is the official Raspberry Pi power supply for your model, which the banner calls the fix in almost every case. Then the cable that came with it, unplugging USB drives, hubs and keyboards powered by the player, and not running the player from a TV\u0026#39;s USB socket or a phone charger.\u003c/p\u003e\n\u003cp\u003eYou can\u0026#39;t dismiss the banner, since a weak supply keeps damaging the card while it\u0026#39;s ignored. It goes away once the player restarts with a supply that holds. When a storage warning shows as well, the power banner comes first, because a bad supply is one of the main reasons cards fail.\u003c/p\u003e\n\u003cp\u003eSystem Info has a new \u0026quot;Power supply\u0026quot; card with the same verdict, how many drops there have been since the last restart, and when the first and most recent were.\u003c/p\u003e\n\u003ch2 id=\"which-players-show-it\"\u003eWhich players show it\u003c/h2\u003e\n\u003cp\u003eRaspberry Pi players: the Pi 2, Pi 3, Pi 4 and Pi 5 images, installed with the installer or through balena. Anthias reads the kernel\u0026#39;s \u003ccode\u003erpi_volt\u003c/code\u003e sensor under \u003ccode\u003e/sys/class/hwmon\u003c/code\u003e, which works from inside the containers, so it needs no host agent. On x86 and other boards that have no such sensor, the \u0026quot;Power supply\u0026quot; card says \u0026quot;Not monitored\u0026quot;, and no banner appears.\u003c/p\u003e\n\u003cp\u003eThe kernel wakes Anthias whenever the reading changes, and every page load reads the sensor again, so the banner is current when you open the page. On current Raspberry Pi kernels, \u003ccode\u003evcgencmd get_throttled\u003c/code\u003e no longer keeps a record of earlier drops, so Anthias counts them itself. The count starts over at every reboot.\u003c/p\u003e\n\u003ch2 id=\"for-developers\"\u003eFor developers\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e/api/v2/info\u003c/code\u003e has a new \u003ccode\u003eunder_voltage\u003c/code\u003e object with \u003ccode\u003esupported\u003c/code\u003e, \u003ccode\u003eactive\u003c/code\u003e, \u003ccode\u003eseen_since_boot\u003c/code\u003e, \u003ccode\u003efirst_seen\u003c/code\u003e, \u003ccode\u003elast_seen\u003c/code\u003e and \u003ccode\u003ecount\u003c/code\u003e. Check \u003ccode\u003esupported\u003c/code\u003e first: when it\u0026#39;s \u003ccode\u003efalse\u003c/code\u003e, the device has no sensor and the other fields carry no information. \u003ccode\u003ebin/collect_debug.sh\u003c/code\u003e saves the \u003ccode\u003e/api/v2/info\u003c/code\u003e response in the bundle as \u003ccode\u003eapi-info.json\u003c/code\u003e, and also reads the sensor and the kernel\u0026#39;s under-voltage messages directly, for a player too broken to answer.\u003c/p\u003e\n","description":"When a Raspberry Pi player's power supply can't hold its voltage, the web interface says so on every page and lists the fixes, before the weak supply damages the memory card.","title":"A warning on every page when a Raspberry Pi isn't getting enough power","type":"release","url":"https://www.screenly.io/releases/anthias/2026.08.2/under-voltage-warning/"},{"areas":[],"breaking":false,"content_html":"\u003cp\u003eA memory card that is going bad rarely says so. The screen keeps playing what it already has, so nothing looks wrong from the front, while uploads, schedule changes and settings quietly stop sticking. From Anthias 2026.08.2, the player checks the storage it runs from and shows a banner at the top of every page of the web interface when something is wrong. Like the power warning, you can\u0026#39;t dismiss it, and when both show, it sits under the power one.\u003c/p\u003e\n\u003cp\u003eThe banner names the problem, because each one has a different fix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;This player has run out of space\u0026quot;: the storage is full. This one isn\u0026#39;t a hardware fault, and the advice is to delete content you no longer need from the Schedule page. Videos are usually what filled it.\u003c/li\u003e\n\u003cli\u003e\u0026quot;This player has stopped saving changes\u0026quot;: the storage has switched to read-only. The screen keeps playing, but anything you change is lost at the next restart.\u003c/li\u003e\n\u003cli\u003e\u0026quot;This player can\u0026#39;t save anything\u0026quot;: Anthias couldn\u0026#39;t save a small test file, or read back something different from what it wrote.\u003c/li\u003e\n\u003cli\u003e\u0026quot;The memory card is returning errors\u0026quot;: storage errors since the player last restarted.\u003c/li\u003e\n\u003cli\u003e\u0026quot;The memory card has recorded errors\u0026quot;: errors the filesystem logged earlier, which it keeps across reboots. Saving still works.\u003c/li\u003e\n\u003cli\u003e\u0026quot;This player\u0026#39;s storage is wearing out\u0026quot;: built-in storage (eMMC) or an SSD reports that it\u0026#39;s near the end of its rated life, for example with 80 percent or more of its rated writes used. A plain SD card doesn\u0026#39;t report this.\u003c/li\u003e\n\u003cli\u003e\u0026quot;The drive is developing bad spots\u0026quot;: an SSD or hard drive reports blocks that have gone bad.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe wording follows the hardware: \u0026quot;memory card\u0026quot; for an SD card, \u0026quot;built-in storage\u0026quot; for eMMC and \u0026quot;drive\u0026quot; for an SSD or hard drive. So does the advice. Every warning except a full disk says to take a backup from Settings while the storage can still be read, and to replace the card or drive. For an SD card it adds to buy an A1 or A2 card from a brand you recognize. Built-in eMMC is soldered to the board, so there the advice is to plan to replace the player.\u003c/p\u003e\n\u003cp\u003eSystem Info has a new storage card next to the \u0026quot;Disk\u0026quot; card, with the same verdict, plus the details for a support conversation: the card\u0026#39;s maker, model and manufacture date, the filesystem\u0026#39;s error count, how much has been written to it, the result of the last write test and, on drives that report it, SMART health, bad blocks and wear.\u003c/p\u003e\n\u003ch2 id=\"how-it-checks\"\u003eHow it checks\u003c/h2\u003e\n\u003cp\u003eAn SD card has no health register, so Anthias combines what the kernel does expose: the ext4 error counters stored in the filesystem, a test file it writes and reads back, and the wear registers on eMMC. It reads the counters every minute, and on every page load, and writes the test file every 15 minutes. A full disk shows up through that test, so the \u0026quot;run out of space\u0026quot; banner can take up to 15 minutes to appear. All of this works from inside the containers, so balena installs get the warnings too.\u003c/p\u003e\n\u003cp\u003eOn the x86, arm64 and Raspberry Pi 5 images, which can run from an SSD, the viewer also reads the drive\u0026#39;s SMART data with \u003ccode\u003esmartctl\u003c/code\u003e once an hour. The viewer runs as an unprivileged user, so its image has a sudoers rule that lets that user run only \u003ccode\u003esmartctl --json -H -A -i\u003c/code\u003e on a device under \u003ccode\u003e/dev/\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn Anthias 2026.08.2, a memory card whose product name isn\u0026#39;t valid UTF-8 stopped storage monitoring from starting at all. Anthias 2026.10.0 \u003ca href=\"/releases/anthias/2026.10.0/fixes-and-improvements/\"\u003efixes that\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"for-developers\"\u003eFor developers\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e/api/v2/info\u003c/code\u003e has a new \u003ccode\u003estorage\u003c/code\u003e object. Check \u003ccode\u003esupported\u003c/code\u003e first, then branch on \u003ccode\u003estatus\u003c/code\u003e, one of \u003ccode\u003eok\u003c/code\u003e, \u003ccode\u003ewear\u003c/code\u003e, \u003ccode\u003eerrors\u003c/code\u003e, \u003ccode\u003efull\u003c/code\u003e, \u003ccode\u003efailing\u003c/code\u003e or \u003ccode\u003eunknown\u003c/code\u003e. \u003ccode\u003eerrors_count\u003c/code\u003e covers the life of the filesystem and survives reboots. \u003ccode\u003eerrors_new\u003c/code\u003e and the write test fields reset when the player reboots. \u003ccode\u003ebin/collect_debug.sh\u003c/code\u003e adds a \u003ccode\u003estorage.txt\u003c/code\u003e to the bundle with block devices, mount flags, the ext4 error counters, card identity, SMART output and the kernel\u0026#39;s storage errors.\u003c/p\u003e\n","description":"A memory card going bad rarely announces itself: the screen keeps playing while your changes stop sticking. Anthias now checks the storage it runs from and says on every page what's wrong and what to do about it.","title":"The web interface warns when a player's storage is failing or full","type":"release","url":"https://www.screenly.io/releases/anthias/2026.08.2/storage-health-warnings/"},{"areas":[],"breaking":false,"content_html":"\u003ch2 id=\"fixes\"\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNotifications in the web interface show their success, error or info icon, and the Load Average card on System Info shows its icon when the load is steady. Both spaces were empty.\u003c/li\u003e\n\u003cli\u003eIn the Edit asset dialog for a web page, the \u0026quot;Auto-refresh interval (seconds)\u0026quot; and \u0026quot;Custom HTTP headers\u0026quot; labels no longer sit on top of their example text.\u003c/li\u003e\n\u003cli\u003eIn Settings \u0026gt; Import content, each platform\u0026#39;s import button sits beside its description instead of under it.\u003c/li\u003e\n\u003cli\u003eThe \u0026quot;Try again\u0026quot; and \u0026quot;Copy ffmpeg command\u0026quot; buttons in the asset dialog have a button style. They showed without one.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"improvements\"\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen \u0026quot;Verify SSL certificates\u0026quot; is off, Settings shows a \u0026quot;Not secure\u0026quot; badge next to it, so a player that skips certificate checks is easy to spot. It appears as soon as you switch the setting off, before you save.\u003c/li\u003e\n\u003cli\u003eThe disk chart on System Info no longer shows used space in red. It uses the same colors as the memory chart, and a storage problem shows up in the new storage card instead.\u003c/li\u003e\n\u003cli\u003eThe import pages under Settings \u0026gt; Import content use the web interface\u0026#39;s own colors. Their progress bar was a blue used nowhere else.\u003c/li\u003e\n\u003cli\u003eOn a board with little memory, the \u0026quot;Low-RAM mode\u0026quot; note on System Info\u0026#39;s Memory card is in a darker amber that\u0026#39;s easier to read on white.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"for-contributors\"\u003eFor contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe web interface\u0026#39;s colors, fonts and sizes are defined once, in \u003ccode\u003esrc/anthias_server/app/static/src/tailwind.css\u003c/code\u003e, with dark values in \u003ccode\u003ecss/theme-dark.css\u003c/code\u003e next to it. The older SCSS copy, which had been overriding them, is gone, and tests fail if one comes back.\u003c/li\u003e\n\u003cli\u003eA design-system page at \u003ccode\u003e/_design/\u003c/code\u003e shows every color and component, in light and dark. It exists only in development builds and tests (\u003ccode\u003eDEBUG\u003c/code\u003e or \u003ccode\u003eIS_TEST\u003c/code\u003e), so production images don\u0026#39;t have the route.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/shoot_pages.py\u003c/code\u003e screenshots the web interface pages in both themes and at several window sizes, without the Docker stack.\u003c/li\u003e\n\u003cli\u003eThe host agent lists network addresses through the kernel\u0026#39;s rtnetlink interface with the Python standard library. The \u003ccode\u003enetifaces\u003c/code\u003e and \u003ccode\u003enetifaces2\u003c/code\u003e packages are gone, and so is \u003ccode\u003epython3-netifaces\u003c/code\u003e in the viewer image. \u003ccode\u003euv sync --group test\u003c/code\u003e works on a plain development machine, where \u003ccode\u003enetifaces\u003c/code\u003e used to fail to build.\u003c/li\u003e\n\u003cli\u003eThe release and hardware-testing guides for coding agents in \u003ccode\u003e.claude/skills\u003c/code\u003e add a burn-in run on the test boards before a release is published.\u003c/li\u003e\n\u003cli\u003eTests cover the power and storage checks, SMART parsing, the network address listing and the design-system page.\u003c/li\u003e\n\u003c/ul\u003e\n","description":"Notifications in the web interface show their icons, field labels in the Edit asset dialog no longer cover their examples, and the disk chart on System Info uses the same colors as the memory chart.","title":"Settings flags a player that skips SSL certificate checks, and other fixes","type":"roundup","url":"https://www.screenly.io/releases/anthias/2026.08.2/fixes-and-improvements/"}],"json":"https://www.screenly.io/releases/anthias/2026.08.2/v1.json","product":"anthias","product_label":"Anthias","url":"https://www.screenly.io/releases/anthias/2026.08.2/","version":"2026.08.2"}],"title":"Anthias 2026.08.2","url":"https://www.screenly.io/releases/anthias/2026.08.2/","version":1}