Releases: DevMicroCore/fOS
Bugfix -V2.2.1
fOS v2.2.0 Release Notes
Release date: 2026-05-24
Highlights
fOS 2.2.0 introduces a full SD-staged OTA and dedicated recovery architecture:
- main system in
app0 - minimal recovery system in
app1 - update staging in
/system/update/ - automatic boot fallback logic for failed update boots
Added
- Full OTA + recovery pipeline for CrowPanel ESP32-S3:
- OTA list fetch from GitHub
- selected OTA image download to
/system/update/update.bin - recovery image download to
/system/update/recovery.bin - flash recovery into
app1 - set boot partition to
app1and reboot
- Recovery runtime:
- validates staged update image
- flashes staged update to
app0 - switches boot partition back to
app0 - restarts device
- Boot protection and self-healing state:
pending_updateboot_attempt_counter- automatic fallback to recovery after repeated failed boots
- Display settings persistence:
- brightness saved via display settings page
- minimum brightness clamped to
5% - value stored in
/system/display/brightness.txt - value restored at boot
- System update folder management:
- auto-create
/system/updateduring SD initialization
- auto-create
Changed
- OTA file lookup is now asynchronous:
- moved from blocking UI path into a background FreeRTOS task
- update screen remains responsive while OTA file list is loading
- OTA/Recovery staging paths moved from root SD to:
/system/update/update.bin/system/update/recovery.bin
- Update install flow now keeps stronger error traces in serial logs (
[OTA] ERROR: ...) for every failing step.
Fixed
- Fixed UI freeze during OTA file search after Wi-Fi connection.
- Improved OTA listing/download robustness with retries, longer timeouts, and recovery RAW fallback names when GitHub API listing fails.
Compatibility Notes
- Existing SD app format remains supported:
type=ui|text|button|calculator|radio|clock|weather
- This release uses the dedicated
app0/app1partition model (seepartitions.csv). - SD card format recommendation remains FAT32 (MBR preferred).
Known Limitations
- Recovery uses a minimal display output path and can still show visible RGB artifacts on some panels while flash operations are running.
- Internet-dependent features (OTA listing/download, weather, web radio) still depend on network quality and remote endpoint availability.
Ota and Display Update - V2.2.0
fOS v2.2.0 Release Notes
Release date: 2026-05-24
Highlights
fOS 2.2.0 introduces a full SD-staged OTA and dedicated recovery architecture:
- main system in
app0 - minimal recovery system in
app1 - update staging in
/system/update/ - automatic boot fallback logic for failed update boots
Added
- Full OTA + recovery pipeline for CrowPanel ESP32-S3:
- OTA list fetch from GitHub
- selected OTA image download to
/system/update/update.bin - recovery image download to
/system/update/recovery.bin - flash recovery into
app1 - set boot partition to
app1and reboot
- Recovery runtime:
- validates staged update image
- flashes staged update to
app0 - switches boot partition back to
app0 - restarts device
- Boot protection and self-healing state:
pending_updateboot_attempt_counter- automatic fallback to recovery after repeated failed boots
- Display settings persistence:
- brightness saved via display settings page
- minimum brightness clamped to
5% - value stored in
/system/display/brightness.txt - value restored at boot
- System update folder management:
- auto-create
/system/updateduring SD initialization
- auto-create
Changed
- OTA file lookup is now asynchronous:
- moved from blocking UI path into a background FreeRTOS task
- update screen remains responsive while OTA file list is loading
- OTA/Recovery staging paths moved from root SD to:
/system/update/update.bin/system/update/recovery.bin
- Update install flow now keeps stronger error traces in serial logs (
[OTA] ERROR: ...) for every failing step.
Fixed
- Fixed UI freeze during OTA file search after Wi-Fi connection.
- Improved OTA listing/download robustness with retries, longer timeouts, and recovery RAW fallback names when GitHub API listing fails.
Compatibility Notes
- Existing SD app format remains supported:
type=ui|text|button|calculator|radio|clock|weather
- This release uses the dedicated
app0/app1partition model (seepartitions.csv). - SD card format recommendation remains FAT32 (MBR preferred).
Known Limitations
- Recovery uses a minimal display output path and can still show visible RGB artifacts on some panels while flash operations are running.
- Internet-dependent features (OTA listing/download, weather, web radio) still depend on network quality and remote endpoint availability.
Support for the Text, Clock and Weather app - V2.1.0
fOS v2.1.0 Release Notes
Release date: 2026-05-17
Highlights
fOS 2.1.0 extends the SD app runtime with new app types and major runtime decoupling:
- new
clockandweatherSD app types inAppContent - SD text editor app no longer depends on legacy
ui_ScreenTextruntime - upgraded radio, clock, and weather app UX in the shared app runtime
Added
- New app type:
clockCurrent TimeandStopwatchtabs- calendar view with current day highlight
- current month opened by default
- stopwatch controls (
Reset,Start/Pause)
- New app type:
weather- weather UI rendered in
AppContent - IP-based location detection
- current temperature and humidity
- current weather phenomenon and detected location
- 7-day weather forecast in roller
- weather UI rendered in
- New weather data pipeline:
- geolocation via
ip-api.com - weather data via
open-meteo.com
- geolocation via
- New SD example app entries:
clock_demoweather_demotext(AppContent-based text editor app)
Changed
type=textapp in folder/apps/textnow opens as the full editor UI insideAppContent(independent runtime path).- Radio runtime UI redesigned to match the new visual system:
- tabs:
File PlayerandWeb Radio - centered play/pause control (
>/||) - updated dark panel/roller styling
- tabs:
- Clock runtime behavior updates:
- stopwatch does not auto-start on app open
- auto-sync to current calendar month once system time becomes valid
UnloadApp()now also clears clock/weather runtime state.
Fixed
- Clock app startup stability improved (reduced object pressure and guarded UI creation paths).
- Weather app data-fetch reliability improved by replacing unstable provider path that returned server/client errors in field testing.
SD App Metadata (Current)
Supported app.cfg keys in 2.1.0:
nameicontype=ui|text|button|calculator|radio|clock|weatherscrollablelayout(fortype=ui)content(fortype=text)button_text,button_message(fortype=button)
Compatibility Notes
- Existing SD app formats remain supported.
- For web radio, station lines must be
Sender|URLin/music/webradio/webradio.txt. - Weather app requires active internet connectivity for
ip-api.comandapi.open-meteo.com. - Recommended Arduino board options:
Partition Scheme: Huge APPPSRAM: OPI PSRAM
- Recommended SD format remains FAT32 (MBR preferred).
Known Limitations
- App launcher renders up to 6 app directories from
/apps(first 6 discovered). - Internet-dependent apps (radio streams, weather) depend on network quality and endpoint availability.
A major update to the app system - V2.0.0
fOS v2.0.0 Release Notes
Release date: 2026-05-08
Highlights
fOS 2.0.0 is a major app-system upgrade:
- dynamic SD apps on 6 launcher tiles
- unloadable app runtime to reduce memory pressure
- new built-in app types: calculator and radio
- root-based storage navigation with parent-folder support
Added
- SD App Launcher capacity increased to 6 apps (
AppL1toAppL6). - New app type:
calculator+,-,*,/- decimal comma input
Math Erroron division by zero
- New app type:
radio- local file playback from
/music/files/ - web radio playback from
/music/webradio/webradio.txt - Start/Stop toggle button
- local file playback from
- New filesystem navigation flow in Storage Manager:
- starts at
/ - folder enter via
StorageManagerSelect() ..to go to parent folder
- starts at
- New and updated example app package entries:
hello_fosbutton_demoebook_demoui_democalculator_demoradio_demo
Changed
- App content now runs as a dedicated runtime scene in
uic_AppContentArea. UnloadApp()now actively clears app runtime objects and reloads launcher state.- SD app default type is now
ui(withlayout.uisupport). - Launcher tiles now support optional
icon=metadata inapp.cfg. - SD init now ensures
/music/webradioexists.
Removed / Reworked
- Legacy fixed UI handlers tied to old calculator/weather/radio screens were removed or replaced by app-runtime implementations.
- App rendering is now centered around SD app metadata and app type dispatch.
SD App Metadata (Current)
Supported app.cfg keys in 2.0.0:
nameicontype=ui|text|button|calculator|radioscrollablelayout(fortype=ui)content(fortype=text)button_text,button_message(fortype=button)
Compatibility Notes
- Existing
type=textandtype=buttonSD apps remain supported. - For web radio, station lines must be
Sender|URLin/music/webradio/webradio.txt. - Recommended SD format remains FAT32 (MBR preferred).
Known Limitations
- App launcher renders up to 6 app directories from
/apps(first 6 discovered). - Stream reliability depends on station format/codec and network quality.
- No in-app persisted calculator history in this release.
1.5.0
fOS v1.5.0 Release Notes
Release date: 2026-05-02
Highlights
fOS 1.5.0 introduces an SD-based App Launcher workflow with dedicated app content rendering, plus stability work for long-running UI usage.
Added
- SD App Launcher support via
/apps(max 4 apps loaded). AppContentscreen workflow for opening selected SD apps.- Configurable SD app metadata via
app.cfg:nametype=text|buttoncontent(text app)button_text,button_message(button app)
- Example app bundle in
example app/:create_example_app.shhello_fosbutton_demoebook_demo
Changed
- App Launcher now refreshes app entries only when
StartAppLauncher()is opened. - Launcher tiles now show app names (icon-less SD app list style).
- App content text rendering switched to static buffer usage to reduce dynamic heap churn.
- Wi-Fi reconnect changed to a persistent worker-task model (notify-driven) instead of repeated task create/delete.
Fixed
- Multiple SD directory-iteration paths now explicitly close file handles.
- AppContent view stability improved for repeated enter/exit cycles.
- Additional heap instrumentation added for debugging (
free,min,largest).
SD Card Requirements
- Required format:
FAT32(MBR recommended) - Avoid: exFAT, NTFS
Known Limitation
- Device stability can decrease as more SD apps are loaded and used over time.
- In practice: the more apps are loaded, opened, and switched repeatedly, the higher the chance of freezes on this hardware/runtime setup.
Calculator has been added - V1.4.0
fOS v1.4.0 Release Notes
Release date: 2026-05-01
Highlights
fOS 1.4.0 introduces a significantly improved calculator engine with better expression handling, precision, and UX.
Added
- New
evaluate_expression(const char * expr)parser infOS1.0.ino. - Support for multi-operator expressions with correct precedence (
*and/before+and-). - Full decimal-number support in calculator expressions.
Changed
- Calculator logic moved out of
ui_events.c/.hintofOS1.0.inodata handlers. ui_events.cnow keeps only event forwarding for calculator actions.- Calculator keyboard handling improved for
✓,⌫,<, and>behavior.
Fixed
- Division by zero now returns a clear calculator output:
Math Error. - Calculator textarea now shows a cursor immediately by auto-focusing the input field.
SD Card Requirements
- Required format:
FAT32(MBR recommended) - Avoid: exFAT, NTFS
Bugs have been fixed - V1.3.1
fOS v1.3.1 Release Notes
Release date: 2026-04-26
Highlights
fOS 1.3.1 improves weather forecasting and fixes a Wi-Fi stability issue.
Changed
- Weather forecast extended from 5 days to 7 days.
- Improved behavior when no Wi-Fi networks are found.
Fixed
- Fixed an issue where the device could freeze when no Wi-Fi network was found.
SD Card Requirements
- Required format:
FAT32(MBR recommended) - Avoid: exFAT, NTFS
Weather app update - V1.3.0
fOS v1.3.0 Release Notes
Release date: 2026-04-26
Highlights
fOS 1.3.0 focuses on turning the UI into a complete daily-use firmware with improved connectivity, weather integration, better media support, and stronger SD-based persistence.
Added
- Weather app with:
- Automatic location detection (IP geolocation)
- Current temperature + humidity display
- Multi-day forecast roller
- Weather requests now support HTTPS with HTTP fallback handling.
Improvements
- Better runtime UI state handling for unavailable data (SD, Wi-Fi, weather).
- More robust startup sequence with staged initialization feedback.
SD Card Requirements
- Ensure your SD card follows the new/expected folder layout.
- Required format:
FAT32(MBR recommended) - Unsupported/recommended to avoid: exFAT, NTFS
Stopwatch
- A stopwatch has been added.
Date and Time
- A few bugs have been fixed
- date and time have been added.