Releases: MicroPythonOS/MicroPythonOS
Releases · MicroPythonOS/MicroPythonOS
0.9.0
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
- Use a dot-whitelist by @jedie in #36
- Support ODROID-GO by @jedie in #35
- Add initial support for M5Stack-Fire board by @ancebfer in #32
- Clear battery cache in ShowBattery app by @jedie in #37
- Add simple calendar application by @pavelmachek in #38
- Enhance ShowBattery App by @jedie in #39
- Updates for ODROID-GO by @jedie in #40
- Update board/m5stack_fire.py by @jedie in #43
- WIP: New app: "Scan Bluetooth" by @jedie in #58
- Add MPU6886 driver (tested with M5Stack FIRE) by @jedie in #56
- Clean up existing install/symlink before extracting .mpk by @bitcoin3us in #55
- Fix EEXIST errors in zipfile.py during extraction by @bitcoin3us in #54
- Odroid-Go: Unmute+Mute buzzer before/after Playback by @jedie in #52
- imu: Allow access to iio on Linux by @pavelmachek in #45
- waveshare_esp32_s3_touch_lcd_2: Fix soft reset by @jedie in #68
- Fix MPU6886 X-Axis by @jedie in #67
- columns: simple falling-blocks game by @pavelmachek in #63
- weather: start simple weather application by @pavelmachek in #62
- compass: Add an application for magnetometer / accelerometer debugging by @pavelmachek in #61
- magn: Start magnetometer support by @pavelmachek in #60
- Enhance ScanBluetooth app by @jedie in #72
- scan_bluetooth: Display "last seen in sec." and fix timeout by @jedie in #73
- cellular: simple cellular-network example by @pavelmachek in #80
- floodit: simple game by @pavelmachek in #79
- navstar: Simple navigation application by @pavelmachek in #77
- gyro: add gyroscope test/display application by @pavelmachek in #76
- weather: add forecasts, switch to download manager by @pavelmachek in #75
- Add support for unPhone 9 by @jedie in #74
- add a driver for the 2024 and 2026 communicator by @bertouttier in #82
- add fri3d badge 2026 expander driver by @bertouttier in #81
New Contributors
- @jedie made their first contribution in #36
- @ancebfer made their first contribution in #32
- @bitcoin3us made their first contribution in #55
- @bertouttier made their first contribution in #82
Full diff: 0.8.0...0.9.0
0.8.0
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:
- Add board support: Makerfabs MaTouch ESP32-S3 SPI IPS 2.8' with Camera OV3660
- Scale MicroPythonOS boot logo down if necessary
- Don't show battery icon if battery is not supported
- Move logging.py to subdirectory
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
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
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
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
- 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
- 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
- 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
- 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
- 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)