Skip to content

micrOS 3.0 - Standalone

Latest

Choose a tag to compare

@BxNxM BxNxM released this 22 Mar 18:57
· 24 commits to master since this release

Release Notes

micrOS 3.0 focuses on core stability, modern communication paths, a cleaner filesystem layout, and better package/runtime maintainability.

DISCUSSIONS

Core System Improvements

1. Async SSL/TLS integration

  • Added async SSL/TLS support in the core HTTP client path.
  • urequests was redesigned for async REST client usage.
  • Requires MicroPython 1.22+.
  • Enables improved integrations such as:
    • LM_telegram notification flows
    • listener/server-side chatbot communication patterns

2. ESP-NOW integration in InterCon

  • Added ESP-NOW peer-to-peer communication support to InterCon.
  • Improved multi-command handling for the same target device with better session ID handling.
  • Provides a lower-latency fallback/alternative path for device-to-device messaging.

3. New InterCon command syntax

  • Added command-level remote execution syntax:
    • rgb toggle >>RingLight.local
  • This replaces the older verbose form:
    • intercon sendcmd host="RingLight.local" cmd="rgb toggle"
  • ESP-NOW is transparently integrated into the new >>target syntax when available on the target.

4. Multi-level project and filesystem structure

  • Introduced a structured micrOS filesystem layout with automatic directory creation at boot and over USB.
  • New runtime directories:
    • /lib
    • /logs
    • /web
    • /data
    • /config
    • /modules
  • Added automatic handling for /source and /precompiled.

Filesystem model:

  • Root /
    • core runtime files such as micrOS.py, Config.py, Tasks.py, Shell.py, Web.py, Server.py, and related system files
  • /web
    • static web assets: html, js, css, and related files
  • /data
    • runtime and persistent application data
    • *.cache
    • *.dat
  • /logs
    • *.log
    • *.sys.log
  • /config
    • node_config.json
    • offloaded config values such as *.key
  • /modules
    • LM_*
    • IO_*
    • mip-compatible layout support via /lib

5. Universal task creation response

  • Task creation now uses a unified response format:
    • {taskID: verdict}

6. Proper mip installer support

  • Added package installation support for /modules, /lib, and /web.
  • Expanded autonomous package management over Wi-Fi / GitHub:
    • pacman install <package-url>
    • pacman uninstall <package-name>
    • pacman upgrade <package-name>
    • pacman ls
    • pacman dirtree

7. Native requirements.txt handling

  • Added /config/requirements.txt support using native MicroPython requirements syntax.
  • Supported flow:
    • pacman install "requirements.txt"

8. External package ecosystem support

  • Added micrOS/packages submodule support for installable micrOS applications.
  • Application registry:
  • Added devToolKit rendering support for external package load modules:
    • sfuncman.json
    • sfuncman.html

9. MicroPython uplift to 1.27

  • Updated baseline compatibility to MicroPython 1.27.
  • Includes fixes for micrOS USB update config restore issues.
  • Includes TLS/SSL configuration fixes (sunset-sunrise API)

10. WebEngine mount and alias support

  • Added WebEngine mount aliases for /data, /modules, '/logs'.

  • Default web root remains /web/<user_data>.

  • Added absolute user input path checks in Files.py.

  • Improved file server integration:

    • custom /modules listing without .mpy files
    • mount-path write access handling
    • mount-path read and visibility handling

11. @Auth.sudo decorator

  • Added @Auth.sudo for protected operations requiring pwd="<password>".
  • Supports two modes:
    • always require password
    • require only when force=True
  • Intended for sensitive operations such as:
    • pacman rm
    • pacman rmdir
    • pacman uninstall
    • forced upgrade flows

12. WebEngine finite state machine redesign

  • Reworked WebEngine protocol parsing around a robust finite state machine.
  • Decoupled transport handling from protocol parsing.
  • Always forwards response headers to load module callback functions.
  • Added bounded memory behavior and configurable memory profiles.
  • Improved WebUI stability with better socket handling.

13. Boot flow and request-path optimization

  • Improved generic boot flow behavior.
  • Refined request handling and TLS/HTTPS behavior for better reliability.

Highlights

  • Async TLS support for modern integrations
  • Stronger InterCon with ESP-NOW support
  • Cleaner and more scalable filesystem structure
  • Better package management and mip compatibility
  • More robust WebEngine with tighter memory handling
  • Updated MicroPython baseline to 1.27