Releases: FalconChristmas/fpp
Release list
FPP Nightly (2026-08-17)
Automated nightly build (unreleased development snapshot).
Build date: 2026-08-17 UTC
Commit: ac141d6
Static download URLs (always point at the most recent nightly):
releases/download/nightly/FPP-vnightly-Pi.img.zipreleases/download/nightly/FPP-vnightly-Pi64.img.zipreleases/download/nightly/FPP-vnightly-BB64.img.zipreleases/download/nightly/FPP-vnightly-BBB.img.zip
⚠️ Nightly builds are unreleased development snapshots.
Latest production release can be found at https://github.com/FalconChristmas/fpp/releases/latest
FPP 10.0-beta5
FPP 10.0 (Beta 5) - Release Highlights
NOTE: This is a BETA release, continuing on from FPP 10.0-beta4. Coming from FPP 9.5? See the previous FPP release notes for the full list of changes first. This post covers only what's changed since 10.0-beta4.
Thanks again to everyone testing and filing issues - keep it coming.
New in Beta 5 - At a Glance
- More reliable flashing to SD/eMMC/USB for Pi, BeagleBone and BeagleBone 64 - a failed or incomplete flash is no longer reported as "complete," so you shouldn't end up with a board that looks flashed but won't boot
- Send images straight to a pixel overlay model - a new fast way for other tools (like xLights) to push a full frame or picture to an overlay model at once, instead of updating it pixel by pixel
- Overlay Model Effect can now draw and scroll images on a model, not just solid colors/patterns
- Fixed a nasty Pi 5 issue where an update could leave it unable to boot properly, with the web UI down and boot times way up - both the cause and any leftover damage from it are now cleaned up automatically
- Fixed rebuilding fppd from source crashing on a 64-bit Pi Zero 2 W
- Smaller, faster-to-flash images - stripped out hundreds of megabytes of stuff nothing on a player ever uses (translations, docs, unused wifi firmware)
- Beagle boards no longer reset their SSH identity or admin password after an OS upgrade
- Fixed the web UI refusing to load on some boards that don't have IPv6, and a stuck "Abnormal Conditions" warning that wouldn't clear on its own
- Fixed setting a UI password sometimes locking you out or reporting a failure when it actually saved
- Formatting a drive now refuses to format one that's currently in use, and network/hotspot changes that need a reboot to take effect now actually reboot
- Fixed a crash that could be triggered by certain malformed requests to run a command
- Settings that fail to save now tell you, instead of quietly reverting later and leaving you guessing why
See below for details.
New in Beta 5 - Full Details
(everything below is new since 10.0-beta4 - not a restatement of the earlier betas)
Flashing
- New shared flashing engine for Pi, BeagleBone and BeagleBone 64 - a failed flash is no longer reported as "complete," so a bad flash can't be mistaken for a good one
- Fixed flashing silently skipping the boot partition on Pi if it wasn't mounted, while still reporting success
- Fixed PocketBeagle2's activity LEDs and board detection during flashing, which previously only worked correctly on BeagleBone Black
- BeagleBone btrfs images move to a single-partition layout, fixing corrupted boot data under u-boot
Images & Boot
- Images are ~725MB and 22,000 files smaller - stripped unused translations, wifi firmware for hardware these boards don't have, and other build leftovers nothing on a player reads
- Fixed a Pi 5 issue where a routine update could leave it booting a kernel with no drivers at all, killing the web UI and adding ~90 seconds to boot
- Fixed OS upgrades never actually cleaning up old boot files, which is what allowed the Pi 5 issue above to happen in the first place
- Fixed Beagle boards resetting their SSH host identity and the admin password back to defaults after an OS upgrade
- Removed a memory-allocation setting on Pi that hasn't been needed since FPP moved off the old video pipeline; frees up RAM, most noticeably on 512MB and 1GB boards
- Fixed rebuilding fppd from source crashing on 512MB boards (e.g. 64-bit Pi Zero 2 W) - the firmware graphics memory pool was left at 256MB, half the board's total RAM, leaving too little free for the compiler; now capped at 128MB on any board under 1GB (#2679)
- Fixed swap size calculations being thrown off by zram
- BeagleBone kernel updated to 7.1.6-fpp17
Pixel Overlays
- New bulk pixel data API - push a whole frame or picture to an overlay model in one request instead of one call per pixel, much faster for animation
- Overlay Model Effect can now draw and scroll images on a model, not just solid colors/patterns
- Fixed a rare deadlock where an overlay model could freeze all overlay/model API requests while the rest of FPP kept running normally, making it hard to notice anything was wrong
- Fixed large overlay/model API requests being silently rejected or truncated
Networking
- Fixed the web UI failing to start on boards without IPv6 enabled
- Fixed the "Abnormal Conditions" mDNS warning getting stuck on screen permanently, including after a normal shutdown
- Network/hotspot changes that require a reboot to apply now actually reboot (#2825)
Settings & UI
- Fixed setting a UI password sometimes locking you out or reporting a failure when it had actually saved (#2829)
- Settings that fail to save now report the failure instead of silently reverting later
- Storage format now refuses to format a drive that's currently mounted/in use (#2830)
Stability
- Fixed a crash reachable by sending certain FPP Commands without their required arguments
Upgrading to FPP 10 Beta 5
(carried over from the 10.0-beta announcement for convenience - unchanged in beta5)
- Brand new arm64 images recommended for all 64-bit capable Pi's (Pi 3, Pi 4, Pi 5, Pi Zero 2W, Compute Module 4/5) and PocketBeagle2
- The original 32-bit images remain available for older/32-bit-only boards (Pi B, B+, Zero, Zero W) & other Beagles
- Moving from 32-bit to 64-bit requires re-imaging - an in-place OS upgrade cannot switch architectures. Back up your config, flash the new image, restore config.
Option A - Fresh install (required if moving 32-bit → 64-bit)
- Back up your FPP config
- Flash the FPP10 image
- Restore your config
Option B - In-place upgrade (only if staying on the same architecture)
- Make sure you're fully updated on FPP 9.x (or 8.x) first, or already on 10.0-beta/beta2/beta3/beta4
- About → Upgrade OS → pick the 10.0 image for your board
- Let it download, install, and reboot
- Delete the
fpposfile from File Manager → Uploads - If it fails to boot, power-cycle it (some devices need this due to library changes)
Which image do I need?
| Board | Image |
|---|---|
| 64-bit capable Pi (3/4/5, Zero 2W, CM4/CM5) | FPP-v10.0-beta5-Pi64.img.zip |
| Older/32-bit-only Pi | FPP-v10.0-beta5-Pi.img.zip |
| BeagleBone Black/Green/PocketBeagle/Green Gateway | FPP-v10.0-beta5-BBB.img.zip |
| PocketBeagle2 / PocketBeagle2 Industrial | FPP-v10.0-beta5-BB64.img.zip |
Backwards Compatibility Notes
- Only in-kernel WiFi drivers are included - some older USB WiFi adapters may no longer work post-upgrade
- VLC and SDL media backends removed - replaced by GStreamer/PipeWire
rpi_ws281xdriver dropped - Pi string outputs now use DPIPixels- "Remote XXXX" FPP commands removed (deprecated since 9.0) - use normal FPP commands with MultiSync checkbox and target set
- "FPD" dongle / PixelNet output removed (deprecated since 9.0)
- Debian 12 → 13 library upgrades mean most plugins will need updating/reinstalling
Back up your config before upgrading, and please continue reporting issues.
FPP 10.0-beta4
FPP 10.0 (Beta 4) - Release Highlights
NOTE: This is a BETA release, continuing on from FPP 10.0-beta3. Coming from FPP 9.5? See the FPP 10.0-beta release notes for the full list of changes first. This post covers only what's changed since 10.0-beta3.
Thanks again to everyone testing and filing issues - keep it coming.
New in Beta 4 - At a Glance
- Per-port pixel protocols - TM18xx, 16-bit and 400kHz parts can now be driven, and the WS2811-compatible parts (SK6812, WS2812B, WS2815, ...) are listed by name instead of hiding behind "ws2811"
- 128 pixel strings from a single PRU - capes can declare a 16-deep shift chain on PocketBeagle2/AM62x
- Four more self-PWM panel chips - DP3364S, ICND1065L, SM16380SH and ICND2153, plus 1/64 scan and full-height panel layouts
- Boot is substantially faster on single-core boards - roughly 30s of a 90s BeagleBone boot removed, and a duplicate audio sink that could hang boot outright is fixed
- Cape audio fixed - audio capes no longer lose out to a Dummy sound card, and PipeWire no longer restart-loops with no audio at all
- USB WiFi wedge fixed - Realtek adapters on BeagleBones no longer come up alive-but-unreachable
- Output crash fixed - uploading a config while outputting could free channel outputs out from under the output thread
- Ports stay on across a config reload - a config upload while running no longer leaves every port powered off
- Backups now restore Pixel Overlay Models and the Virtual Display Map - previously dropped silently
- Pixel string "Reverse" is saved again, and OS upgrades check for free disk space before starting
- New BBB kernel, effects/command improvements, and a long list of UI fixes
See below for details.
New in Beta 4 - Full Details
(everything below is new since 10.0-beta3 - not a restatement of the earlier betas)
Pixel Strings
- Per-port pixel protocols now actually apply. The setting was saved by the UI but never read. Selecting a protocol per port works, including inverted-output parts
- TM18xx support - inverted protocols select the correct idle level, and TM1814's constant-current preamble is sent ahead of the pixel data (without it the part sits at its 6.5mA floor)
- 400kHz and longer-bit-cell parts (TM1803, TM1804, UCS1903 and friends) can now be driven - the bit cell is supplied to the PRU at runtime rather than compiled in, so a separate firmware image per timing isn't needed
- WS2811-compatible parts are listed by name - SK6812, WS2812B, WS2815 and the rest of the 800kHz family, grouped to match xLights' pixel table, so you no longer have to know your part is "a WS2811 in disguise". Parts that would be driven wrong rather than merely differently are deliberately left off the list
- 16 strings per data pin on AM62x - a cape can declare
"stringsPerPin": 16to drive 128 strings from one PRU's eight data pins. Existing 8-deep capes are unchanged byte for byte - Falcon smart receivers are refused on chains that can't support them, rather than failing obscurely
- Fixed the pixel string "Reverse" direction never being saved (a class-name typo meant the dropdown was never read, and cloning a row lost it too)
- Fixed BBShiftString rendering frames at the wrong offset on AM62x
- Fixed the port status page reporting status and current readings it has no way to measure
LED Panels
- New self-PWM panel chips supported: DP3364S, ICND1065L, SM16380SH and ICND2153
- 1/64 scan panels - register tables can now carry scan-specific variants, and the FM6373 gains a proper 1/64 table instead of having its 1/32 table stretched. If no table matches your scan rate, the log now says so explicitly
- Full-height panel layout - panels that scan every row (scan == height) can now use both RGB lanes for halves of the same row. A new Panel Data Layout setting selects it, and 128x64 and 64x64 1/64 sizes are now offered
- Fixed the PWM panel firmware overflowing the PRU's 12KB instruction memory, which prevented it from loading
- Fixed a crash on the first frame when an interleave setting maps outside the panel's frame (notably "Off" on a panel that scans fewer than half its rows)
- Vendor panel settings are now version-gated, so new panel options published to fpp-data can't break FPP 9 players
- The FM6353 option no longer claims ICN2153 compatibility - use the new ICND2153 type
Audio
- Cape audio no longer loses to a Dummy sound card. Three separate causes fixed: cape EEPROMs naming kernel modules that have since been renamed,
snd-dummybeing loaded while a real card was still binding, and the CPU DAI and machine driver not being loaded at all - Fixed PipeWire restart-looping with no audio (#2811) - a stale ALSA config in
/etcsurvived upgrades forever and was never re-validated against what the hardware actually accepts - Fixed picking a PCM format the card can't sustain at the target rate - on a fixed-bit-clock I2S cape, a wider sample size halves the achievable rate, so "S32_LE exists" and "44100 exists" did not mean both at once
- Format probing now judges success by the player's exit status rather than by its banner text
- Fixed audio-only playback losing the first ~250ms of the file, from both the status page and playlists
Boot Time & Resource Use
Mostly aimed at single-core BeagleBone-class boards, where these land on the critical path to fppd and the web UI:
- Fixed a duplicate WirePlumber ALSA sink that could hang boot entirely - a second, monitor-created node for a card FPP already owns would win the default-sink election and then block forever, holding boot open with no timeout. Also cuts ~11s off postNetwork
- DHCP no longer drags in
systemd-hostnamedandpolkitjust to set a hostname FPP already wrote itself (~21s of a 90s boot on AM335x) - rsyslog is deferred off the boot path, and
atd/ufwno longer ship enabled - The spoken IP announcement now yields to fppd, apache and php-fpm instead of competing with them for the core
- Twelve unused PHP extensions are no longer loaded - ~1.6MB per worker, and it takes the Foreign Function Interface out of a web-facing PHP
- Removed a leftover
/procscan for a legacy AES67 implementation that no longer exists
Networking & WiFi
- Fixed Realtek USB WiFi adapters coming up alive but unreachable -
rtw88_usbtries to switch the chip into USB 3 mode during probe, which no BeagleBone USB host can do, and the attempt intermittently wedged the adapter (the netdev appears and reports Link UP, but the radio never associates). Now disabled, with the option actually applying - A wedged adapter that still slips through is now recovered by rebooting, which is the only recovery that reliably works, with a guard so recovery can't feed itself into a reset loop
- Only one
wpa_supplicantruns now instead of two disableWLANPowerManagement()is actually called- The network status page reports the live connection rather than pending config changes, and tethering/wifi status messages are clearer, with tethering changes live-applied via Restart Network
- Fixed the Manual DNS fields not appearing on load on slower devices
Stability & Crash Fixes
- Fixed channel outputs being destroyed while the output thread was still walking them - a config upload during output could free an output mid-cycle. The 100ms sleep it relied on was never a barrier
- Fixed ports being left powered off after a config reload - a controller that had its config uploaded while outputting kept receiving data with every port disabled until output was stopped and started again. This also restores eFuse trip reporting on reloaded ports
- Fixed an unbounded walk in the compressed FSEQ frame lookup - a sync packet or playlist start position past the end of a shorter local copy of the sequence could run off the offset table
- Fixed fppd aborting when an FSEQ read-ahead thread can't be created (effects triggered several times a second could accumulate dozens of open readers)
- Fixed a FileMonitor deadlock caused by holding its lock while running callbacks
- Fixed
CopyFileContentsreporting failure for every successful copy on Linux - Fixed installing PRU programs clobbering the PRU sleep firmware
- Pin control survives an unmappable
/dev/mem, and the missing P8_26 pin was added - Fixed the i2c1 EEPROM cape probe stranding the pins it borrows
Commands, Effects & Overlays
- FSEQ Effect Start gains an ifNotRunning option, and an option to restart an effect in place instead of starting a duplicate
- Running effects now composite in trigger-recency order rather than array-index order
- Command execution args are logged at Info, sources at Debug and payloads at Excessive
%VAR:name%is now resolved on the/api/command/{cmd}routes too- A playlist, preset or API call referencing a missing command now warns instead of failing quietly
- Routine MQTT command-run publishes are no longer logged as warnings
- Empty
SetSettingvalues are preserved instead of being dropped - Overlay model Text effect supports multi-line text (#2823), handles escaped backslashes, and no longer collapses on empty text
- GPIO command display now shows multisync information and command arg labels alongside values
- Fixed GPIO pull-up/down bias being skipped when a pin's resetMode defaults to a0/a3
Backups & Config
- Pixel Overlay Models and the Virtual Display Map are now restored from backups - they were previously dropped silently
- Uploading a config file that doesn't change anything no longer rewrites it
- Fixed the reset-fpp-config checkbox grid layout and grouping
OS Upgrade & Web UI
- **OS ...
FPP 10.0-beta3
FPP 10.0 (Beta 3) - Release Highlights
NOTE: This is a BETA release, continuing on from FPP 10.0-beta2. Coming from FPP 9.5? See the FPP 10.0-beta release notes for the full list of changes first. This post covers only what's changed since 10.0-beta2.
Thanks again to everyone testing and filing issues - keep it coming.
New in Beta 3 - At a Glance
- Security fixes - command injection in the web UI and crash reports, buffer overflows in MultiSync and DDP handling, and a config backup password leak, all patched
- Crash fixes - fppd no longer crashes on an empty command or a malformed sequence file
- Plugins can now load and unload at runtime - no more fppd restart to install/remove a plugin (Plugin API 6)
- Video output regions - a single video can now span two displays
- HDMI audio fixed - Pi Zero 2 W and Pi 3 (single-HDMI boards) get sound again over HDMI
- BBBSerial (DMX) fixed on 64-bit - serial/DMX output no longer hangs indefinitely on 64-bit builds
- BBShiftPanel image drift fixed - self-PWM panels (e.g. FM6363C) no longer show a vertically sliding/corrupted image
- Command source logging - see what triggered an FPP Command (UI, MQTT, schedule, plugin, etc.)
- Networking, backup/restore, and other hardware stability fixes
See below for details.
New in Beta 3 - Full Details
(everything below is new since 10.0-beta2 - not a restatement of the original beta or beta2)
Security
- Fixed command injection vulnerabilities in the web UI (PHP)
- Fixed a crash-report handling bug that could be used to run unintended commands
- Fixed buffer overflows in MultiSync ping packet handling and the
SetSettingcommand - Fixed a heap buffer overflow and out-of-bounds read in DDP input channel bridging
- Fixed protected JSON config backups leaking the encryption password in plaintext
- Fixed certain characters in a setting value being able to break/inject into the settings page's JavaScript
Stability & Crash Fixes
- Fixed fppd crashing on an empty command
- Fixed fppd crashing on a malformed sequence (FSEQ) file
- Fixed password loss in protected JSON config backup/restore
Plugins
- Plugins can now be loaded and unloaded at runtime - installing, updating, or removing a plugin no longer requires restarting fppd
- Plugins can now register their own HTTP routes and shut down cleanly (new Plugin API version 6)
- Plugin HTTP routes are now documented on the API help page, and the API docs correctly cover plugin routes
- Fixed a bug where a broken plugin's API code could crash or take over FPP's core API instead of just itself
- Plugin health checks are more reliable, and plugin icon/info loading is more robust against bad data from a plugin source
- Plugin update checks now run in the background so the "Updates" count is accurate
- Official/community/unknown plugin history is now tracked and surfaced in the health check
- Incompatible Plugins section now shows URL-load errors and supports search filtering
- Fixed plugin commands sticking around after a plugin is unloaded, plugin images disappearing, and plugins not being fully unloaded from memory when removed
- Fixed packages, plugins, and services not being correctly restored after a config restore following an OS upgrade
Hardware & Outputs
- Video outputs can now be assigned a region, so a single video can span two displays
- Refreshed BeagleBoard and Pi Zero logos, including new PocketBeagle 2 Industrial artwork
- Fixed HDMI (vc4-hdmi) audio output not working at all on single-HDMI boards (Pi Zero 2 W / Pi 3)
- Fixed BBBSerial (DMX) output hanging indefinitely on 64-bit builds
- Fixed self-PWM BBShiftPanel-driven panels (e.g. FM6363C) showing a vertically drifting/corrupted image
Networking
- Fixed Restart Network hanging indefinitely if the wifi hotspot service didn't stop cleanly
- FPP now keeps DHCP leases through reboots (a Debian networking change in FPP 10), with sane lease times and a "clear leases" option added in FPP Reset Config
- Fixed misleading wifi error messages when configuring wifi while tethered
- Fixed Raspberry Pi EEPROM upgrades failing during an FPPOS upgrade
Commands & Logging
- FPP Commands can now log their source (UI, MQTT, schedule, plugin, etc.) for troubleshooting
- ControlChannelOutput now passes the channel's value as a parameter the command can act on
- More fppd startup/shutdown activity is now logged, and a misleading log entry on stop/restart is fixed
Backups
- Fixed the Backups checkbox not appearing when it should
Upgrading to FPP 10 Beta 3
(carried over from the 10.0-beta announcement for convenience - unchanged in beta3)
- Brand new arm64 images recommended for all 64-bit capable Pi's (Pi 3, Pi 4, Pi 5, Pi Zero 2W, Compute Module 4/5) and PocketBeagle2
- The original 32-bit images remain available for older/32-bit-only boards (Pi B, B+, Zero, Zero W) & other Beagles
- Moving from 32-bit to 64-bit requires re-imaging - an in-place OS upgrade cannot switch architectures. Back up your config, flash the new image, restore config.
Option A - Fresh install (required if moving 32-bit → 64-bit)
- Back up your FPP config
- Flash the FPP10 image
- Restore your config
Option B - In-place upgrade (only if staying on the same architecture)
- Make sure you're fully updated on FPP 9.x (or 8.x) first, or already on 10.0-beta/beta2
- About → Upgrade OS → pick the 10.0 image for your board
- Let it download, install, and reboot
- Delete the
fpposfile from File Manager → Uploads - If it fails to boot, power-cycle it (some devices need this due to library changes)
Which image do I need?
| Board | Image |
|---|---|
| 64-bit capable Pi (3/4/5, Zero 2W, CM4/CM5) | FPP-v10.0-beta3-Pi64.img.zip |
| Older/32-bit-only Pi | FPP-v10.0-beta3-Pi.img.zip |
| BeagleBone Black/Green/PocketBeagle/Green Gateway | FPP-v10.0-beta3-BBB.img.zip |
| PocketBeagle2 / PocketBeagle2 Industrial | FPP-v10.0-beta3-BB64.img.zip |
Backwards Compatibility Notes
- Only in-kernel WiFi drivers are included - some older USB WiFi adapters may no longer work post-upgrade
- VLC and SDL media backends removed - replaced by GStreamer/PipeWire
rpi_ws281xdriver dropped - Pi string outputs now use DPIPixels- "Remote XXXX" FPP commands removed (deprecated since 9.0) - use normal FPP commands with MultiSync checkbox and target set
- "FPD" dongle / PixelNet output removed (deprecated since 9.0)
- Debian 12 → 13 library upgrades mean most plugins will need updating/reinstalling
Back up your config before upgrading, and please continue reporting issues.
fpp@FPPmaster:/opt$ fg
claude
Upgrading to FPP 10 Beta 3
(carried over from the 10.0-beta announcement for convenience - unchanged in beta3)
- Brand new arm64 images recommended for all 64-bit capable Pi's (Pi 3, Pi 4, Pi 5, Pi Zero 2W, Compute Module 4/5) and PocketBeagle2
- The original 32-bit images remain available for older/32-bit-only boards (Pi B, B+, Zero, Zero W) & other Beagles
- Moving from 32-bit to 64-bit requires re-imaging - an in-place OS upgrade cannot switch architectures. Back up your config, flash the new image, restore config.
Option A - Fresh install (required if moving 32-bit → 64-bit)
- Back up your FPP config
- Flash the FPP10 image
- Restore your config
Option B - In-place upgrade (only if staying on the same architecture)
- Make sure you're fully updated on FPP 9.x (or 8.x) first, or already on 10.0-beta/beta2
- About → Upgrade OS → pick the 10.0 image for your board
- Let it download, install, and reboot
- Delete the
fpposfile from File Manager → Uploads - If it fails to boot, power-cycle it (some devices need this due to library changes)
Which image do I need?
| Board | Image |
|---|---|
| 64-bit capable Pi (3/4/5, Zero 2W, CM4/CM5) | FPP-v10.0-beta3-Pi64.img.zip |
| Older/32-bit-only Pi | FPP-v10.0-beta3-Pi.img.zip |
| BeagleBone Black/Green/PocketBeagle/Green Gateway | FPP-v10.0-beta3-BBB.img.zip |
| PocketBeagle2 / PocketBeagle2 Industrial | FPP-v10.0-beta3-BB64.img.zip |
Backwards Compatibility Notes
- Only in-kernel WiFi drivers are included - some older USB WiFi adapters may no longer work post-upgrade
- VLC and SDL media backends removed - replaced by GStreamer/PipeWire
rpi_ws281xdriver dropped - Pi string outputs now use DPIPixels- "Remote XXXX" FPP commands removed (deprecated since 9.0) - use normal FPP commands with MultiSync checkbox and target set
- "FPD" dongle / PixelNet output removed (deprecated since 9.0)
- Debian 12 → 13 library upgrades mean most plugins will need updating/reinstalling
Back up your config before upgrading, and please continue reporting issues.
FPP 10.0-beta2
FPP 10.0 (Beta 2) - Release Highlights
NOTE: This is a BETA release, continuing on from FPP 10.0-beta. Coming from FPP 9.5? See the FPP 10.0-beta release notes for the full list of changes first. This post covers only what's changed since 10.0-beta.
Thanks again to everyone testing and filing issues - keep it coming.
New in Beta 2 - At a Glance
- Playlist item editor redesign - clearer sections, built-in help
- Temporary Advanced mode - enable it for 15 minutes at a time
- Multiple LED panel matrices on one BBShiftPanel cape - e.g. a two-sided display or two columns flanking a doorway, no longer one controller per matrix
- Main-loop watchdog - detects and recovers from stalls
- Extensive crash-hardening - dozens of fixes across config loading, GPIO drivers, corrupt sequence files, and audio/plugin race conditions to stop fppd from crashing
- Revamped Plugin Manager UX
- Audio "null" output for boards without a sound card
- Backup/restore, GPIO, networking, and playlist stability fixes
See below for details.
New in Beta 2 - Full Details
(everything below is new since 10.0-beta - not a restatement of the original beta)
UI & Workflow
- Playlist item editor redesigned with clearer sections and help tooltips
- If/Set Variable commands and the Variables/Recurring Tasks pages moved from Experimental to Advanced, with expanded help text
- Temporary Advanced UI override - enable for 15 minutes without changing your permanent setting
- More FPP variables available in the If-condition and Set Variable editors
- Reboot and Shutdown now available as commands (Advanced UI mode)
- Companion/extra media badge on playlist entries
- WLED device names in MultiSync are now clickable links
- Wording fix: "2D Virtual Display" renamed to "Virtuals" tab
Hardware & Outputs
- BBShiftPanel-based capes can now drive multiple independent LED panel matrices instead of just one - useful for a two-sided display or two columns flanking a doorway without needing a separate controller for each
- Fixed some Pi 5 GPIO pins not working
- Fixed GPIO-triggered reboot action
- Added "null" audio sink for boards without a real sound card
Stability & Reliability
- New main-loop watchdog with stall detection/recovery
- Extensive crash-hardening: malformed config/JSON no longer aborts fppd, GPIO driver exceptions are now caught, a corrupt sequence file divide-by-zero is fixed, and an AES67 audio race condition is fixed
- Crash reports now capture more useful context, resolve to file/line on the device, and stay local by default
- Fixed backup/restore: MQTT broker not restarting, stale version info, settings not re-read post-restore, USB/remote storage dropdown issues
- Backups now resolve FPP user/group dynamically, fixing restores after OS upgrades
- Fixed Timezone/GeoLocation buttons (were CORS-blocked)
- Fixed playlist issues: empty sections after mid-play reload, stale status between items, zero-arg command editing, Command Preset references
Plugins
- "Open" button for installed plugins
- Per-plugin reinstall (not just all at once)
- Fixed Update button not always showing
- Incompatible plugins grouped into a collapsed section
- Plugin cards show open issue/PR counts from GitHub
- Plugins without a declared API version are now rejected cleanly
- Fixed rendering/detection issues on some plugin pages
Removed / Deprecated
- In-app Script Repository Browser deprecated; suggested replacements shown in its place
Upgrading to FPP 10 Beta 2
(carried over from the 10.0-beta announcement for convenience - unchanged in beta2)
- Brand new arm64 images recommended for all 64-bit capable Pi's (Pi 3, Pi 4, Pi 5, Pi Zero 2W, Compute Module 4/5) and PocketBeagle2
- The original 32-bit images remain available for older/32-bit-only boards (Pi B, B+, Zero, Zero W) & other Beagles
- Moving from 32-bit to 64-bit requires re-imaging - an in-place OS upgrade cannot switch architectures. Back up your config, flash the new image, restore config.
Option A - Fresh install (required if moving 32-bit → 64-bit)
- Back up your FPP config
- Flash the FPP10 image
- Restore your config
Option B - In-place upgrade (only if staying on the same architecture)
- Make sure you're fully updated on FPP 9.x (or 8.x) first, or already on 10.0-beta
- About → Upgrade OS → pick the 10.0 image for your board
- Let it download, install, and reboot
- Delete the
fpposfile from File Manager → Uploads - If it fails to boot, power-cycle it (some devices need this due to library changes)
Which image do I need?
| Board | Image |
|---|---|
| 64-bit capable Pi (3/4/5, Zero 2W, CM4/CM5) | FPP-v10.0-beta2-Pi64.img.zip |
| Older/32-bit-only Pi | FPP-v10.0-beta2-Pi.img.zip |
| BeagleBone Black/Green/PocketBeagle/Green Gateway | FPP-v10.0-beta2-BBB.img.zip |
| PocketBeagle2 | FPP-v10.0-beta2-BB64.img.zip |
Backwards Compatibility Notes
- Only in-kernel WiFi drivers are included - some older USB WiFi adapters may no longer work post-upgrade
- VLC and SDL media backends removed - replaced by GStreamer/PipeWire
rpi_ws281xdriver dropped - Pi string outputs now use DPIPixels- "Remote XXXX" FPP commands removed (deprecated since 9.0) - use normal FPP commands with MultiSync checkbox and target set
- "FPD" dongle / PixelNet output removed (deprecated since 9.0)
- Debian 12 → 13 library upgrades mean most plugins will need updating/reinstalling
Back up your config before upgrading, and please continue reporting issues.
FPP 10.0-beta
FPP 10.0 (Beta) — Release Highlights
NOTE: This is a BETA release built on a new OS foundation (Debian 13 "Trixie") with 1000+ changes since 9.5. Back up your config before upgrading, and please report issues.
Thanks to all those who contributed through the FPP 10.0 development process in 2026. Without those of you contributing to the development and testing this release would not be possible.
At a Glance
- New 64-bit Raspberry Pi images — better performance and more headroom for large shows on Pi 3/4/5, Zero 2W, and CM4/CM5
- Faster, re-worked boot process — your FPP comes online and starts playing sooner after power-up
- New PipeWire + GStreamer media engine — smoother, more reliable audio/video playback, with multi-room/multi-zone audio support
- Revamped System Upgrade page — clearer guidance on which upgrade type or image to pick and what to expect during the upgrade
- Revamped Network Settings page — easier network setup and fewer connectivity surprises
- Revamped Plugin Manager — find, install and upgrade relevant plugins faster
- Revamped GPIO input page — new features to unleash the interactivity in your display
- And much, much more - RGBW features, Channel tester, 3D Virtual Display, Improved System Health Check
- New Calendar view of Schedule - easier to understand display of your schedules
See below for further details
Upgrading to FPP 10
- Brand new arm64 images recommended for all 64-bit capable Pi's (Pi 3, Pi 4, Pi 5, Pi Zero 2W, Compute Module 4/5) and PocketBagle2
- The original 32-bit images remains available for older/32-bit-only boards (Pi B, B+, Zero, Zero W) & other Beagles
- Moving from 32-bit to 64-bit requires re-imaging — an in-place OS upgrade cannot switch architectures. Back up your config, flash the new image, restore config.
Option A — Fresh install (required if moving 32-bit → 64-bit)
- Back up your FPP config
- Flash the FPP10 image
- Restore your config
Option B — In-place upgrade (only if staying on the same architecture)
- Make sure you're fully updated on FPP 9.x (or 8.x) first
- About → Upgrade OS → pick the 10.0 image for your board
- Let it download, install, and reboot
- Delete the
fpposfile from File Manager → Uploads - If it fails to boot, power-cycle it (some devices need this due to library changes)
Which image do I need?
| Board | Image |
|---|---|
| 64-bit capable Pi (3/4/5, Zero 2W, CM4/CM5) | FPP-v10.0-beta-Pi64.img.zip |
| Older/32-bit-only Pi | FPP-v10.0-beta-Pi.img.zip |
| BeagleBone Black/Green/PocketBeagle/Green Gateway | FPP-v10.0-beta-BBB.img.zip |
| PocketBeagle2 | FPP-v10.0-beta-BB64.img.zip |
Backwards Compatibility Notes
- Only in-kernel WiFi drivers are included now — some older USB WiFi adapters may no longer work post-upgrade
- VLC and SDL media backends removed — replaced by GStreamer/PipeWire
rpi_ws281xdriver dropped — Pi string outputs now use DPIPixels- Only in-kernel WiFi drivers included; some older USB adapters may stop working
- "Remote XXXX" FPP commands removed (deprecated since 9.0) — use normal FPP commands with MultiSync checkbox and target set
- "FPD" dongle / PixelNet output removed (deprecated since 9.0)
- Debian 12 → 13 library upgrades mean most plugins will need updating/reinstalling
FPP 10 Beta 1 Release details:
Faster, Re-worked Boot Process
- Debian 12 → Debian 13 "Trixie" brings a newer kernel, newer libraries, and a reworked boot sequence that's faster end-to-end
New PipeWire + GStreamer Media Engine
FPP's audio/video pipeline has been rebuilt from the ground up. The legacy VLC and SDL backends are gone.
- New PipeWire audio backend with "Simple" and "Advanced" modes
- Multi-zone audio — define audio groups, route media to multiple outputs, with per-output real-time volume and EQ
- Routing Matrix and a live pipeline Graph Visualizer
- User-defined sound card aliases (friendly names), stable across reboots and USB changes
- AES67 audio-over-IP output (PTP-synced, standards-compliant)
- Opus RTP streaming (unicast and multicast)
- Rebuilt video playback through GStreamer/KMS — HDMI and DSI output, video-to-Pixel-Overlay
yt-dlpsupport for playing YouTube URLs- Audio card presence monitoring, USB bandwidth checks, and matching UI warnings
Other Notable Enhancements
UI
- Dark mode across the entire UI
- New 3D Virtual Display with three.js transform controls
- Redesigned Testing page — "DMX Tester" is now "Channel Fader," plus RGB/RGBW testing, color fades, DMX sine-wave generator
- New API docs (Scalar/OpenAPI), including C++ command APIs
- Support-bundle download, consolidated logging
- Improved System Health Check, fan and PipeWire/GStreamer status in system stats
- Detailed warning messages and suggestions for troubleshooting
MultiSync
- Sort and save display order of systems
- Option to send sync to all known FPP remotes via unicast
Playback & Playlists
- New Global Pause and global inter-item delay setting
- Mass-select items in playlist editor
- Missing sequence/media indicators shown inline
- Randomization indicators on playlists
Capes / Hats / Outputs
- DPIPixels: full string length on all outputs for capes with latch chips (e.g. K8-Pi), variable frame rate without reboot
- DPIPixels: Framerate improvements based on configure pixels per port
- Raspberry Pi string outputs migrated from
rpi_ws281xto DPIPixels - BBShiftPanel: new PWM panel chip support, 16-output support, higher refresh rates, shared panels+strings cape
- Falcon V4/V5 smart receiver protocol support (BBB48String)
- Performance improvements on older Beagle boards (BBBMatrix, BBShiftString)
- New panel interleave types (DoubleZ), FBMatrix horizontal-flip
- E1.31 sync universes (input/output) and priority handling on incoming bridge data
- EEPROM upgrade improvements with automatic hardware selection
Other Hardware
- Fan control: fan-on temperature, adjustable trip points, presence detection
- uDMX enhancements and a new servo API command
- GPIO Open-drain pin mode support
- Support for GPIO expanders without an INT pin
WLED Improvements
- WLED-Native discovery API and simple overlay UI
- WLED audio-reactive networking, additional ported WLED FX effects
- RGBW support in Pixel Overlay Model systems
Under the hood
- HTTP layer moved from
libhttpserverto drogon - Distributed compilation via
distcc/nocc - Playwright UI testing, Dev Container, Docker matrix (amd64/arm64) builds
asan/tsanbuild targets- Crash-reporting improvements (watchdog, optional
fpp_stats.jsoncontext) - Thread-safety cleanup: migration to
std::thread/mutex throughout - Numerous playlist teardown, locking, and nested-playlist stability fixes
chronyreplacesntpsecfor time synchronization- Frontend modernized:
bootstrap-tablereplacestablesorter, jQuery 4.x, FontAwesome 7.x, Bootstrap 5.3.8 - fppd status pushed over WebSocket instead of polled
9.5
NOTE: The OS level has not changed from 2025-11. There is no need to do a full OS level upgrade.
Enhancements
- New "Boot Delay" warning messages in UI while waiting for fppd to start
- Updates to ArtNet to allow sending on non-standard ArtNet port to avoid overflowing the buffers on that port (and dropping packets) if there are slower ArtNet receivers
- New "Check All for Updates" button in plugin manager
- Add ability to export a playlist
- Allow showing playlist entry notes in playlist display
- Bunch of updates to MQTT documentation
- Add ability to filter out sequences already in the playlist when adding new items
- Developers: new "asan" and "tsan" compile targets for using various analyzers
- Update Filesystem troubleshooting commands to show human readable sizes, add better descriptions
- Add ability to "tail" logs in file manager
- New ability for user to define their own holidays
- New confirmation dialog when deleting playlists
- Update Kiosk mode to support some rotated touch panels
- NTP will ignore DHCP provided NTP servers unless specifically enabled
- Better handling of scheduler if detected time is "old" while waiting for NTP to get the correct time
Bug Fixes (since 9.4)
- Fix a bunch of spelling mistakes throughout the UI
- Re-publish retained status messages on MQTT reconnection to ensure broker has current values
- Refactor of troubleshooting commands and improve platform specific RTC configuration
- UDP output makes sure buffers are draining before trying to send more packets (UDP can drop packets if buffers are full)
- Fix for ARP issues on Raspberry Pi Zero 2W
- Fix some issues where setting settings may not properly set the reboot/restart flags
- Better logging for MQTT publish errors when MQTT disconnects
- Log a warning if triggers Command Preset is not found
- Fix MultiSync page to make sure the Modified link in version column points to the correct settings page
- Gracefully handle some issues with some git pull failures during updates
- Fix some data races in SDL output
- Fix crashes on BBB and single core Pi's may not get full stack data due to timeouts
- Don't spam the fppinit logs while waiting for the i2c bus to appear
- Fix issues with mobile time picker wiping out holidays in scheduler
- Fix scheduler display issues if undefined command is scheduled
- Add better validation to schedule entries to avoid some invalid schedules
- Improve UI responsiveness on loading large playlists
- Fix horizontal scrolling of column headers on pixel overlays, gpio, and output processor pages
- Fix warnings about invalid fseq files if there are large variable headers in the fseq file
- Fix several rare crashes in Scheduler
- Don't do hostname lookups for UDP hosts that are set inactive
- Fix several minor memory leaks when outputs are reloaded
Installation Instructions
If you have a system running 9.x, you can go to the FPP about page (about.php) and click on the "Manual Update" button. At that point, a big green "Upgrade" bar should appear on the main status page. Click on that to start the update process. It may take a long time to upgrade. Likely 5-10 minutes. You will need to reboot after the upgrade is complete to finish the upgrade process.
For users of FPP 8.x or older, due to incompatibilities with the underlying libraries, an "OS Level" upgrade is required.
- Re-image - you can backup your 8.x configuration, create a new image, and restore the configuration.
- In-place upgrade - This requires you to have the latest FPP 7.5 or newer and all updates already running on the device. On the "About" page in FPP, there is an "Upgrade OS" choice selection where the appropriate 9.5_2025-11 image can be selected. FPP will automatically download the fppos file and install the upgrade. It will take a LONG time. When done, it should reboot into 9.5. At that point, go to the Uploads tab of the FPP File Manager and delete the fppos file.
NOTE: In SOME cases, the reboot will fail due to library replacement. In that case, a power cycle may be required to get it back up and running.
Selecting an image
For Raspberry Pi series use this image
- FPP-v9.5-Pi.img.zip
For Beaglebone Black, Beaglebone Green, PocketBeagle, and Beaglebone Green Gateway use this image
- FPP-v9.5-BBB.img.zip
For PocketBeagle2 use this image
- FPP-v9.5-BB64.img.zip
9.4
NOTE: The OS level has not changedfrom 2025-11. There is no need to do a full OS level upgrade.
Enhancements
- Support "EERPOM version" that is separate from hardware version. Display in Cape Info if available.
- Allow the vendor to provde notes for various eeprom versions
- Initial support to store assets for Virtual Display so xLights can be updated to send the assets
- Added several new "enhanced warnings" with more details
- Add GPIO event publishing to MQTT for rising and falling edge detection
- Add MQTT event publishing for command execution and preset triggers
- Add dedicated help page for MQTT
- Add generic plugin header display callback so plugins can optionally publish info to header
- Increase tail in file manager to 250 files
- If the fseq file is locked during upload (due to currently playing), keep the file with a "replace" extension and next time the sequence is used or closed, it will be be swapped in
- Add validation and warning for invalid command presets in command presets UI
- Add support for UseNTPFromDHCP setting in network configuration
- Add option for 128x64 1/16 Scan in ColorLight LED panel selection
- Update URL wrapping in multisync.php to use proxy for external links
- Update boot delay logic that allows long delays with UI feedback whilst keeping timeouts low
Bug Fixes (since 9.3)
- Fix a bunch of spelling mistakes throughout the UI
- Fix BBShiftString output if both PRU's are needed
- Fix some crashing with BB48String if PRU's get "stuck"
- Fix some issues with Cape Signing not able to reach the signing service
- Fix some javascript resources that were heading off to the internet to retrieve stuff
- Fix a Playlist Start race condition if started from API call
- Fix MEDIA_STOPPED and MEDIA_STARTED events from VLC play commands
- Fix PlayList empty flag being improperly set
- Update the base overlay to not configure the PB2's internal RTC (which is not battery backed up)
- Enhance ledPanelsSize handling to support legacy configurations and upgrade path
- Prevent stopping sequence entry if it is already finished in Process method - prevents extra notification
- Expose FPP_UUID as advanced mode setting
- Fix issues with ArtNet when re-configuring inputs and outputs which could result in the wrong socket being used
- Fix some crashes when using FPP Commands in a playlist
- Fix some crashes with PixelOverlayModel if attempting to draw beyond the size of the model
- Fix some crashes in BBShiftPanel when shutting down the output
- Ensure network interface configs persist across upgardes
Installation Instructions
If you have a system running 9.x, you can go to the FPP about page (about.php) and click on the "Manual Update" button. At that point, a big green "Upgrade" bar should appear on the main status page. Click on that to start the update process. It may take a long time to upgrade. Likely 5-10 minutes. You will need to reboot after the upgrade is complete to finish the upgrade process.
For users of FPP 8.x or older, due to incompatibilities with the underlying libraries, an "OS Level" upgrade is required.
- Re-image - you can backup your 8.x configuration, create a new image, and restore the configuration.
- In-place upgrade - This requires you to have the latest FPP 7.5 or newer and all updates already running on the device. On the "About" page in FPP, there is an "Upgrade OS" choice selection where the appropriate 9.4_2025-11 image can be selected. FPP will automatically download the fppos file and install the upgrade. It will take a LONG time. When done, it should reboot into 9.4. At that point, go to the Uploads tab of the FPP File Manager and delete the fppos file.
NOTE: In SOME cases, the reboot will fail due to library replacement. In that case, a power cycle may be required to get it back up and running.
Selecting an image
For Raspberry Pi series use this image
- FPP-v9.4-Pi.img.zip
For Beaglebone Black, Beaglebone Green, PocketBeagle, and Beaglebone Green Gateway use this image
- FPP-v9.4-BBB.img.zip
For PocketBeagle2 use this image
- FPP-v9.4-BB64.img.zip
9.3
Important Note: Github recently updated their download URL's to timeout after 5 minutes. If you are having problems downloading 9.3 due to the timeout, you can grab the files from https://fpp.kulplights.com/ . We are trying to find a better long term solution while we also hope that GitHub will reverse this change.
NOTE: The OS level has changed slightly from 2025-09. There were some security patches to the base OS that were incorporated. Updating the OS level is optional, but encouraged.
Enhancements
- Allow plugins to optionally monitor their settings for changes so they can update themselves at runtime instead of requiring fppd restart. (plugins will need updates to use this)
- Update FSEQFile to not load large variable headers into memory until needed/requested
- Developers: Use gold/mold linkers if they are installed, faster builds
Bug Fixes (since 9.2)
- Fix crash if output is recreated while a sub-overlay model is using it
- Fix ethtool information display for persistent net interface names
- Fix temperature in header to respect localization settings for F vs C
- Fix some issues with panelSize setting after upgrade from 8.x
- Prevent some configuration of GPIO pins that are being used by capes
- Fix some issues that may prevent eeprom signings
- Fix for UDP sending Ping announcements for inactive network interfaces
- Fix to prevent git development branches as showing as new releases
- Fix BBShiftString starting wrong PRU on BBB, fixes K128 issues
- Fix more issues with flashing to Beaglebone Black RevD 16GB eMMC
- Fix some issues with backups to remote FPP instances
- Fix crash if Start Playlist command is used without an index parameter or without specificing the playlist
- Fix crash with overly large custom models (limit the size)
- Fix some crashes with Panels with Pi Panel Hats with invalid configuration
- Fix crash if custom overlay models have spaces instead of numbers or blanks
- Fix crash if GPIO input pin cannot be configured as an input
- Attempt to detect if BBB PRU cannot be started and display a "Please Reboot" warning instead of crashing
- Fix crash if FPP Command json has a "null" instead of an empty string
- Fix crash if using "fpp -g" to set GPIO pin without first using -G to set it to output
- Fix crash if UDP outputs are reloaded while some slow/offline controllers had flipped to "curl" for monitoring
- Fix crash generating stats if model overlays file is too large
- Fix crash if Falcon v5 receiver status packet cannot be properly parsed/processed
- Fix crash if uploading a new fseq file if that sequence is playing (prevent the upload)
Installation Instructions
If you have a system running 9.x, you can go to the FPP about page (about.php) and click on the "Manual Update" button. At that point, a big green "Upgrade" bar should appear on the main status page. Click on that to start the update process. It may take a long time to upgrade. Likely 5-10 minutes. You will need to reboot after the upgrade is complete to finish the upgrade process.
For users of FPP 8.x or older, due to incompatibilities with the underlying libraries, an "OS Level" upgrade is required.
- Re-image - you can backup your 8.x configuration, create a new image, and restore the configuration.
- In-place upgrade - This requires you to have the latest FPP 7.5 or newer and all updates already running on the device. On the "About" page in FPP, there is an "Upgrade OS" choice selection where the appropriate 9.3_2025-11 image can be selected. FPP will automatically download the fppos file and install the upgrade. It will take a LONG time. When done, it should reboot into 9.3. At that point, go to the Uploads tab of the FPP File Manager and delete the fppos file.
NOTE: In SOME cases, the reboot will fail due to library replacement. In that case, a power cycle may be required to get it back up and running.
Selecting an image
For Raspberry Pi series use this image
- FPP-v9.3-Pi.img.zip
For Beaglebone Black, Beaglebone Green, PocketBeagle, and Beaglebone Green Gateway use this image
- FPP-v9.3-BBB.img.zip
For PocketBeagle2 use this image
- FPP-v9.3-BB64.img.zip
9.2
Important Note: Github recently updated their download URL's to timeout after 5 minutes. If you are having problems downloading 9.2 due to the timeout, you can grab the files from https://fpp.kulplights.com/ . We are trying to find a better long term solution while we also hope that GitHub will reverse this change.
NOTE: The OS level has changed slightly from 2025-08. There were some security patches to the base OS that were incorporated. Updating the OS level is optional, but encouraged.
Enhancements
- Support for flashing to eMMC on new BeagleBone Black RevD boards
- Add more information to "gpioinfo" command/troubleshooting to better show which pins are in use
- Increase number of header UI colors available
- Add advanced option to disable jgrowl alerts in the UI
- Support for PRU based serial output on PB2
- New advanced option for handling audio/sequence timing offsets that will work better with multisync/remotes.
- Add support for Subscribing to mulitple MQTT Topics
- Add ability to delete individual presetRows on Control Channel output type
- Multisync - show temp in F for Falcon if UI set to that
Bug Fixes (since 9.1)
- Fix querying of GPIO pins on PocketBeagle2 when GPIO is set for output
- Avoid warnings in log related to closed file descriptors when FPP is shutdown
- Fix problems with Current Monitoring stopping when String config is saved requiring and FPPD restart
- Fix HTTPVirtualDisplay not working with security policies
- Fix display issue where ArtNet universe 0 gets mapped to universe 1
- Fix issue with ColumnSelector widget on MultiSync page populating twice
- Fix crash closing media if media wasn't found to start off with
- Fix websocket handling in proxies
- Fix font-src CSP defaults to ensure WLED loads correctly under proxy
- Fix /git URL not working
- Clean up formatting and add buttons to control channel outputs
- If the media_duration.cache files becomes unparsable or corrupt, remove it and recreate.
- BBShiftPanel - Add an extra clock tick for the clock signal to allow it to propogate better
- Fix Command Editor - if command argument is labelled to allowBlanks, record that and when reconstructing the list from a remote, add the blank in
- Fix FileManager - Prevent cancelled uploads from deleting the uploads directory entirely
- Fix GPIO - If we fail to get a file for the GPIO edges, reconfigure back to normal so polling will work correctly
Installation Instructions
If you have a system running 9.x, you can go to the FPP about page (about.php) and click on the "Manual Update" button. At that point, a big green "Upgrade" bar should appear on the main status page. Click on that to start the update process. It may take a long time to upgrade. Likely 5-10 minutes. You will need to reboot after the upgrade is complete to finish the upgrade process.
For users of FPP 8.x or older, due to incompatibilities with the underlying libraries, an "OS Level" upgrade is required.
- Re-image - you can backup your 8.x configuration, create a new image, and restore the configuration.
- In-place upgrade - This requires you to have the latest FPP 7.5 or newer and all updates already running on the device. On the "About" page in FPP, there is an "Upgrade OS" choice selection where the appropriate 9.2_2025-09 image can be selected. FPP will automatically download the fppos file and install the upgrade. It will take a LONG time. When done, it should reboot into 9.1. At that point, go to the Uploads tab of the FPP File Manager and delete the fppos file.
NOTE: In SOME cases, the reboot will fail due to library replacement. In that case, a power cycle may be required to get it back up and running.
Selecting an image
For Raspberry Pi series use this image
- FPP-v9.2-Pi.img.zip
For Beaglebone Black, Beaglebone Green, PocketBeagle, and Beaglebone Green Gateway use this image
- FPP-v9.2-BBB.img.zip
For PocketBeagle2 use this image
- FPP-v9.2-BB64.img.zip