This is an alternative implementation of PixelWeatherOS in MicroPython for comparison purposes only. It will not be actively developed.
For details see the original version in Rust linked above.
You can install this using rshell
.
Assuming you're in the root of this repo, you can use rshell's rsync -m . /pyboard
command to transfer all the scripts to flash.
- CPU clock defaults to maximum 240MHz
- Not possible without a custom MP build.
- The CPU is overclocked at runtime instead.
- Detection and reporting of erros from previous runs
- Customized optimized logger
- USB serial detection
- Not possible without a custom MP build.
- Browout detector control
- ESP-IDF version detection
- Not possible without a custom MP build.
- On-board LED control
- Battery voltage measurement
- Low battery voltage detection (sBOP)
- I2C hardware support
- Runtime application configuration
- Deep sleep
- Fake sleep (for debugging sessions)
- Not possible without USB serial detection.
- WiFi support
- Communication with PWMP
- Can read runtime application configuration
- Can perform handshake
- Can send mesurement results
- Can send stats
- Can check for OTA updates
- Not possible without heavy modifications to the PWMP server.
- Can send notifications
- Type-safe
- Not possible.
- Interface for multuple environment sensors
- Detection and reporting of abnormal reset reasons
- OTA support
- Auto-rollback if the firmware is not working
- Possible, but may use a lot of flash storage.
- Auto-rollback if the firmware is not working
- Advanced error handling
- Not possible due to Python.
Firmware (debug) | Firmware (release -O3 ) |
Interpreter | |
---|---|---|---|
MicroPython | N/A | 180kB* | 1.6MB |
Rust | 1.106MB | 758kB | N/A |
*
: Optimization does not exist in this context