Skip to content

Releases: MicroPythonOS/MicroPythonOS

0.9.0

25 Mar 20:42

Choose a tag to compare

Builtin Apps:

  • About: show netmask separately, make labels focusable
  • AppStore: update BadgeHub.eu URL
  • HowTo: new onboarding app with auto-start handling to explain controls
  • Settings: add sub-groups of setings as separate apps, including WiFi app
  • Settings: add Hotspot sub-group (SSID, password, security)
  • Settings: add WebServer sub-group (autostart, port, password)
  • Launcher: ignore launchers and MPOS settings (except WiFi)

Frameworks:

  • Audio streams: WAV playback/recording improvements (duration/progress, hardware volume control)
  • AudioManager: registry/session model, multi-speaker/mic routing, ADC-based mic (adc_mic)
  • DownloadManager: explicit certificate handling
  • InputManager: pointer detection helpers and board registrations
  • SensorManager: refactor to IMU drivers with magnetometer support and desktop IIO fallback
  • SharedPreferences: fix None handling
  • WebServer: new framework with Linux/macOS fixes and no background thread
  • WifiService: hotspot support, IP address helpers, simplified connect/auto-connect
  • Websocket library: renamed to uaiowebsocket to avoid conflicts

OS:

  • ESP32 boards: bundle WebREPL (not started by default) to offer remote MicroPython shell over the network, accessible through webbrowser - see video demo
  • New board support: LilyGo T-Display-S3 (physical and emulated by QEMU)
  • New board support: LilyGo T-Watch S3 Plus
  • New board support: M5Stack Fire
  • New board support: ODroid Go
  • New board support: unPhone 9
  • Fri3d 2024/2026 updates: display reset support using CH32 microcontroller, communicator/expander drivers
  • ADC microphone C module and tests
  • Build system: switch to static builds for desktop systems to bundle LIBC and fix LIBC version issue
  • Build system: add linux-arm64 and macos-intel GitHub workflows to support more precompiled binaries
  • Add FreeRTOS module for low-level ESP32 functions
  • Add --optimize-size build flag to reduce internal flash storage usage

What to do:

  • To update, open the OSUpdate app and click "Update OS"
  • To do a fresh install, use the webinstaller at install.MicroPythonOS.com
  • As the API isn't frozen yet, if an app has an issue after the upgrade, then just update it using the AppStore

Autogenerated release notes

New Contributors

Full diff: 0.8.0...0.9.0

0.8.0

12 Feb 05:50

Choose a tag to compare

Builtin Apps:

  • About: use logger framework
  • AppStore: mark BadgeHub backend as 'beta'
  • Launcher: improve layout on different screen width sizes
  • OSUpdate: remove 'force update' checkbox not in favor of varying button labels

Frameworks:

  • SDCard: add support for SDIO/SD/MMC mode
  • CameraManager and CameraActivity: work fully camera-agnostic

OS:

What to do:

  • To update, open the OSUpdate app and click "Update OS"
  • To do a fresh install, use the webinstaller at install.MicroPythonOS.com

0.7.1

27 Jan 15:34

Choose a tag to compare

Builtin Apps:

  • Update icons for AppStore, Settings, and Wifi apps

Frameworks:

  • Fix issue with multiple DownloadManager.download_url's on ESP32 due to SSL session sharing/corruption

What to do:

  • To update, open the OSUpdate app and click "Update OS"
  • To do a fresh install, use the webinstaller at install.MicroPythonOS.com
  • As many frameworks changed, it's recommended to also update your apps using the AppStore, for compatibility

0.7.0

26 Jan 20:53

Choose a tag to compare

Builtin Apps:

  • Redesign all app icons from scratch for a more consistent style
  • About app: show MicroPythonOS logo at the top
  • AppStore app: fix BadgeHub backend handling
  • OSUpdate app: eliminate requests library
  • Settings app: make 'Cancel' button more 'ghost-y' to discourage accidental misclicks

Frameworks:

  • Harmonize frameworks to use same coding patterns
  • Rename AudioFlinger to AudioManager framework
  • Rename PackageManager to AppManager framework
  • Add new AppearanceManager framework
  • Add new BatteryManager framework
  • Add new DeviceInfo framework
  • Add new DisplayMetrics framework
  • Add new InputManager framework
  • Add new TimeZone framework
  • Add new VersionInfo framework
  • ActivityNavigator: support pre-instantiated activities so an activity can close a child activity
  • SensorManager: add support for LSM6DSO

OS:

  • Show new MicroPythonOS logo at boot
  • Replace all compiled binary .mpy files by source copies for transparency (they get compiled during the build, so performance won't suffer)
  • Remove dependency on micropython-esp32-ota library
  • Remove dependency on traceback library
  • Additional board support: Fri3d Camp 2026 (untested)

What to do:

  • To update, open the OSUpdate app and click "Update OS"
  • To do a fresh install, use the webinstaller at install.MicroPythonOS.com
  • As many frameworks changed, it's recommended to also update your apps using the AppStore, for compatibility

0.6.0

15 Jan 09:54
17ffa33

Choose a tag to compare

Builtin Apps:

  • About app: make more beautiful
  • AppStore app: add Settings screen to choose backend
  • WiFi app: check 'hidden' in EditNetwork
  • Wifi app: add support for scanning wifi QR codes to 'Add Network'

Frameworks:

  • Camera and QR scanning: fix aspect ratio for higher resolutions
  • Create new SettingsActivity and SettingActivity framework so apps can easily add settings screens with just a few lines of code
  • Create CameraManager framework so apps can easily check whether there is a camera available etc.
  • Simplify and unify most frameworks to make developing apps easier (apps may require an update)

OS:

  • Improve robustness by catching unhandled app exceptions
  • Improve robustness with custom exception that does not deinit() the TaskHandler
  • Improve robustness by disabling default TaskHandler exception hook that throws uncaught exception
  • Don't rate-limit update_ui_threadsafe_if_foreground (no need)
  • Make 'Power Off' button on desktop exit completely

What to do:

  • To update, open the OSUpdate app and click "Update OS"
  • To do a fresh install, use the webinstaller at install.MicroPythonOS.com

0.5.2

24 Dec 16:07

Choose a tag to compare

  • Fri3d Camp 2024 Board: add I2S microphone as found on the communicator add-on
  • API: add TaskManager that wraps asyncio
  • API: add DownloadManager that uses TaskManager
  • API: use aiorepl to eliminate another thread
  • AudioFlinger API: add support for I2S microphone recording to WAV
  • AudioFlinger API: optimize WAV volume scaling for speed and immediately set volume
  • Rearrange automated testing facilities
  • About app: add mpy format info
  • AppStore app: eliminate all threads by using TaskManager
  • AppStore app: add experimental support for BadgeHub backend (not enabled)
  • MusicPlayer app: faster volume slider action
  • OSUpdate app: show download speed
  • SoundRecorder app: created to test AudioFlinger's new recording feature!
  • WiFi app: new 'Add network' functionality for out-of-range networks
  • WiFi app: add support for hidden networks (fixes #14)
  • WiFi app: add 'Forget' button to delete networks

0.5.1

08 Dec 19:21

Choose a tag to compare

  • Fri3d Camp 2024 Board: add startup light and sound
  • Fri3d Camp 2024 Board: workaround ADC2+WiFi conflict by temporarily disable WiFi to measure battery level
  • Fri3d Camp 2024 Board: improve battery monitor calibration to fix 0.1V delta
  • Fri3d Camp 2024 Board: add WSEN-ISDS 6-Axis Inertial Measurement Unit (IMU) support (including temperature)
  • API: improve and cleanup animations
  • API: SharedPreferences: add erase_all() function
  • API: add defaults handling to SharedPreferences and only save non-defaults
  • API: restore sys.path after starting app
  • API: add AudioFlinger for audio playback (i2s DAC and buzzer)
  • API: add LightsManager for multicolor LEDs
  • API: add SensorManager for generic handling of IMUs and temperature sensors
  • UI: back swipe gesture closes topmenu when open (thanks, @Mark19000 !)
  • About app: add free, used and total storage space info
  • AppStore app: remove unnecessary scrollbar over publisher's name
  • Camera app: massive overhaul!
    • Lots of settings (basic, advanced, expert)
    • Enable decoding of high density QR codes (like Nostr Wallet Connect) from small sizes (like mobile phone screens)
    • Even dotted, logo-ridden and scratched pictures of QR codes are now decoded properly!
  • ImageView app: add delete functionality
  • ImageView app: add support for grayscale images
  • OSUpdate app: pause download when wifi is lost, resume when reconnected
  • Settings app: fix un-checking of radio button
  • Settings app: add IMU calibration
  • Wifi app: simplify on-screen keyboard handling, fix cancel button handling

0.5.0

24 Nov 10:28

Choose a tag to compare

  • ESP32: one build to rule them all; instead of 2 builds per supported board, there is now one single build that identifies and initializes the board at runtime!
  • MposKeyboard: fix q, Q, 1 and ~ button unclickable bug
  • MposKeyboard: increase font size from 16 to 20
  • MposKeyboard: use checkbox instead of newline symbol for 'OK, Ready'
  • MposKeyboard: bigger space bar
  • OSUpdate app: simplify by using ConnectivityManager
  • OSUpdate app: adapt to new device IDs
  • ImageView app: improve error handling
  • Settings app: tweak font size
  • Settings app: add 'format internal data partition' option
  • Settings app: fix checkbox handling with buttons
  • UI: pass clicks on invisible 'gesture swipe start' are to underlying widget
  • UI: only show back and down gesture icons on swipe, not on tap
  • UI: double size of back and down swipe gesture starting areas for easier gestures
  • UI: increase navigation gesture sensitivity
  • UI: prevent visual glitches in animations
  • API: add facilities for instrumentation (screengrabs, mouse clicks)
  • API: move WifiService to mpos.net
  • API: remove fonts to reduce size
  • API: replace font_montserrat_28 with font_montserrat_28_compressed to reduce size
  • API: improve SD card error handling
  • WifiService: connect to strongest networks first

0.4.0

17 Nov 21:38

Choose a tag to compare

  • Add custom MposKeyboard with more than 50% bigger buttons, great for tiny touch screens!
  • Apply theme changes (dark mode, color) immediately after saving
  • About app: add a bit more info
  • Camera app: fix one-in-two "camera image stays blank" issue
  • OSUpdate app: enable scrolling with joystick/arrow keys
  • OSUpdate app: Major rework with improved reliability and user experience
    • add WiFi monitoring - shows "Waiting for WiFi..." instead of error when no connection
    • add automatic pause/resume on WiFi loss during downloads using HTTP Range headers
    • add user-friendly error messages with specific guidance for each error type
    • add "Check Again" button for easy retry after errors
    • add state machine for better app state management
    • add comprehensive test coverage (42 tests: 31 unit tests + 11 graphical tests)
    • refactor code into testable components (NetworkMonitor, UpdateChecker, UpdateDownloader)
    • improve download error recovery with progress preservation
    • improve timeout handling (5-minute wait for WiFi with clear messaging)
  • Tests: add test infrastructure with mock classes for network, HTTP, and partition operations
  • Tests: add graphical test helper utilities for UI verification and screenshot capture
  • API: change "display" to mpos.ui.main_display
  • API: change mpos.ui.th to mpos.ui.task_handler
  • waveshare-esp32-s3-touch-lcd-2: power off camera at boot to conserve power
  • waveshare-esp32-s3-touch-lcd-2: increase touch screen input clock frequency from 100kHz to 400kHz

0.3.2

12 Nov 14:23

Choose a tag to compare

  • Settings app: add 'Auto Start App' setting
  • Tweak gesture navigation to trigger back and top menu more easily
  • Rollback OTA update if launcher fails to start
  • Rename 'Home' to 'Launch' in top menu drawer
  • Fri3d-2024 Badge: use same SPI freq as Waveshare 2 inch for uniformity
  • ESP32: reduce drawing frequency by increasing task_handler duration from 1ms to 5ms
  • Rework MicroPython WebSocketApp websocket-client library using uasyncio
  • Rework MicroPython python-nostr library using uasyncio
  • Update aiohttp_ws library to 0.0.6
  • Add fragmentation support for aiohttp_ws library

Known issues:

  • Camera app: one in two times, camera image stays blank (workaround: close and re-open it)
  • OSUpdate app: long changelog can't be scrolled without touchscreen (workaround: read the changelog here)
  • Fri3d-2024 Badge: joystick arrow up ticks a radio button (workaround: un-tick the radio button)