Releases: PixelWeatherProject/pwos
v2.0.4
Summary
This release further improves speed of connecting to WiFi networks. One of these improvements however, come at a cost of disabling MFP. See details below.
Details
- Updated README.
- Implemented
flush()
forOsLogger
. - Improved speed of connecting to APs.
- Disabled
IEEE 802.11w-2009 - Management Frame Protection
to speed up WiFi connection process. - Minor refactoring.
- Updated dependencies.
Full Changelog: v2.0.3...v2.0.4
v2.0.3
Summary
This release has minor size improvements. Release builds have been reduced by ~3kB (~0.07%). Debug builds also got a similar improvement. WiFi scanning as well as connecting to APs is noticeably faster.
Details
- Updated README.
OsLogger
now avoids most runtime formatting operations, or all when possible.- WiFi scans now use active scans with defaults from ESP-IDF.
- WiFi interface will now be configured to use "fast scan" when connecting to APs.
- Fixed a bug that caused sBOP to activate even when
battery_ignore
was set totrue
. battery_ignore
will now be forcibly enabled when a USB serial connection is active.
Full Changelog: v2.0.2...v2.0.3
v2.0.2
Summary
This release has major size improvements. Release builds have been reduced by ~109kB (~2.7%). Debug builds also got a similar improvement. WiFi APs with an RSSI worse than -85dBm will no longer be considered usable, and so they'll be filtered out.
Also, board-specific GPIO configuration is now handled using Cargo features. Note that if no board-specific feature is enabled, the firmware will default to the LILYGO T7S3 development board's configuration. See the details below.
Details
- Updated README.
- Added a safe wrapper for
esp_idf_svc::sys::esp_get_idf_version()
. - Disabled AP mode support.
- Disabled IPv6 support.
- Disabled some VFS features.
- Minor refactoring.
- Minor code safety improvements.
- Updated dependencies.
- Implemented Cargo-features based board support.
- Added board feature
lilygo-t7s3
for LILYGO T7S3 development boards. - Added board feature
xiao-s3
for Seed Studio XIAO S3 development boards. - Added board feature
arduino-nano-esp32
for Arduino Nano ESP32 development boards.
- Added board feature
- APs with RSSI lower than -85dBm will be filtered out.
- Removed support for setting WiFi power saving mode, since this makes very little to no difference.
- Simplified
OsError
enum.
Full Changelog: v2.0.1...v2.0.2
v2.0.1
Summary
Improved battery voltage measurement speed and accuracy.
Details
- Added list of recommended batteries to README.
- Lowered critical battery voltage to 3.20V.
- Lowered ADC sampling delay to 1ms from 10ms in the battery measurement module.
- Increased ADC sample count to 64 from 16 when measuring battery voltage.
- Updated default R1/R2 resistor values.
- Updated ADC attenuation in the battery measurement module, according to the new R1/R2 values.
- Removed support for R1/R2 swap detection due to unreliable behavior with the new R1/R2 values.
- If the two resistors are wired in reverse order, it's advised to fix it anyway. This feature is not necessary.
- Updated dependencies.
Full Changelog: v2.0.0...v2.0.1
v2.0.0
⚠️ Notable compatibility changes
ESP32 support has been removed in favor of the newer ESP32S3 series. Additionally, the firmware now requires at least 8MB of flash and any amount of PSRAM due to build configuration.
📜 Summary
- 🌟 Added support for Over-the-Air updates with automatic rollback in case of failures.
- Improved partition table layout.
- Implemented custom minimal logger.
- Added support for WPA3 networks.
- Added support for reporting non-fatal errors.
- Added support for reporting abnormal reset reasons.
- Added support for inverted on-board LEDs.
- 🌟 Added support for detecting swapped R1/R2 resistors in the battery voltage measurement driver.
- 🌟 Added support for static IP configuration.
- Added support for setting WiFi country code.
- Added support for setting GPIO pins in sysconfig.
- Added support for USB connection detection.
- Added documentation for many system component modules.
- Added error handling to ADC initialization.
- Huge firmware size reduction.
- Removed access to NVS for WiFi driver.
- Updated to ESP-IDF v5.3.2.
- Updated to newer PWMP v2.
- Updated the battery voltage measurement module to use the new one-shot ADC API.
- Enabled brownout detector in release builds.
- Enabled WDT in release builds.
- Enabled support for
SO_LINGER
socket option. - Enabled lwIP IRAM optimizations.
- Improved (faster) WiFi scanning.
- Improved error and
Option::None
handling. - HTU* driver now uses
Decimal
s internally, instead of floats. - Bumped minimum Rust version to
1.84
- Removed all calls to
unwrap()
. - Lots of refactoring.
- Too many to list here.
- Various performance improvements.
- Too many to list here.
- Other minor QoL improvements.
🌟 - Highlighted features
❌ Unimplemented/Skipped features
- 🔐 Flash encryption
- This would also permanently enable read-only protection the flash, which would effectively brick the MCU, as only OTA updates would work. Therefore this feature was dropped and will not be implemented.
- 🔌 USB connection detection (without serial port being open)
- This is not yet supported by ESP-IDF, therefore it cannot be implemented as of now.
v2.0.0-rc6
- Lot of code refactoring.
- Improved error handling.
- Changed WiFi scanning mode to active.
- Fixed incorrect hostname generator in WiFi driver.
- Improved detection for swapped R1/R2 resistors for battery measurement.
- Changed log level of some messages.
- Removed support for panic detection and reporting due to buggy behavior.
- Removed NVS initialization and the WiFi driver's access to it.
- Removed unnecessary custom
ResetReason
. - Bumped critical battery voltage to 3.20V, since the ESP32S3 needs at least 3.0V to work.
- Enabled LWIP optimizations.
- Updated to newer PWMP library.
- Per channel scan time (for WiFi) has been doubled due to a bug, which causes the nodes to not find any networks.
- When getting an IP address from DHCP servers, the firmware will now try to reuse the last IP, potentially reducing wait times.
- Enabled support for the
SO_LINGER
option.
Full Changelog: v2.0.0-rc5...v2.0.0-rc6
v2.0.0-rc5
- Fixed several clippy lints.
- Removed several unnecessary calls to
unwrap()
. - Added documentation for:
- HTU* driver,
AnySensor
andMeasurementResults
,- battery driver,
- brownout manager driver,
error
module,gpio
module.
- Invalid values of the FFI enum
esp_reset_reason_t
will be converted toResetReason::Unknown
instead of callingunreachable!()
. - Fixed typos in README and comments.
- Removed unnecessary conversions between integer/Decimal/etc. types in the battery driver.
- Made
ResetReason::is_abnormal()
aconst fn
. - Enabled clippy warnings for using
unwrap()
. - Fixed handling of missing partition metadata.
- Added error handling to ADC initialization.
- Default to WPA2 if an AP does not have an authentication method defined.
- Replaced
PartialOrd
withOrd
in network filter #2. - Updated
pwmp-client
to2.0.3
. - Added custom panic handler with error reporting.
- Added
PartialEq
andEq
implementations forResetReason
. - Added more debug messages.
Full Changelog: v2.0.0-rc4...v2.0.0-rc5
v2.0.0-rc4
- WiFi storage is now forced to be in RAM. (cdd08ad)
- Updated partition table (e8e1620)
- The layout is now similar to that which is in the ESP-IDF documentation.
- The minimum required flash size is now 8MB.
- Battery voltage measurement can now detect if the R1 and R2 resistors are swapped and will automatically re-calculate the voltage. (eca7559)
- Fixed incorrect version parsing from boot slot metadata. (e7108b2)
- Debug builds will now display both the currently running firmware version as well as the previous one if it's present. (83611ba)
- OTA updates will now be properly aborted if there's a failure. Previously this caused the firmware to panic, because it was trying to finalize an update with a corrupt firmware binary. (59ffdaa)
- Fixed typos in README.
- Updated
Caveats
section in README.
Known issues
- The issue related to sockets being randomly broken was caused by the PWMP server. Commits PixelWeatherProject/pwmp-server@596b47a and PixelWeatherProject/pwmp-server@087dfa1 have fixed this.
Full Changelog: v2.0.0-rc3...v2.0.0-rc4
v2.0.0-rc3
Summary
Massively reduced release build size by up to 10%. Debug builds are only affected by less than 2%.
Details
- Enhanced build configuration for a small performance improvement (d0a1cb1)
- Enabled LTO, for size and (possibly) performance improvements (cb98343)
- Replaced
build-time
with custom solution (ceeecde) - Simplified build script (a6e4ec0)
- Enabled features in
log
crate for setting a static log level (f15c7f2) - Replaced
simple_logger
with a custom logger (0e64a62) - Removed NVS-related WIP features as they are no longer considered due to complexity reasons (0e22734, a273a72)
- Reasons explained in cda8c8d
Known issues
See the previous release.
Full Changelog: v2.0.0-rc2...v2.0.0-rc3
v2.0.0-rc2
- Added more information to the
Caveats
section inREADME
. (e40de70, f991d75, 42c0d75) - Removed manual TX power setting due to buggy socket behavior. (43d82ec)
- WiFi power saving will be disabled due to buggy socket behavior. (43d82ec)
- Added support for detecting and reporting abnormal reset reasons. (2498386)
- Renamed
sleep
module topower
. (70a03f6) - The firmware should now reboot on Watchdog resets in release builds. (a885e6f)
- The firmware should now reboot if a panic is called in FreeRTOS (a885e6f)
- Updated dependencies. (92c87df, c7887cd, 9313425, 7d3c0cf)
- Updated minimum Rust version to
1.84
. (c7887cd) - Updated to ESP-IDF version
5.3.2
. (92c87df) - Minor bug fixes and code improvements. (2088f56)
- Improved ESP-IDF SDK configuration for better performance in release builds. (9f61779)
- Added support for static IP configurations. (7223d5d)
- Increased debug logging verbosity in debug builds. (ec3a5a4, a7ca725, 200e819, 805d796, 3191fc4)
- Added support for storing and reporting unsuccessful runs. (ebd66de)
- Battery voltage will no longer be measured when a USB serial console connection is active. This skews results due to USB power. (b02a278)
- Updated copyright year. (58bb676)
- Debug builds will now display ESP-IDF version. (a7ca725)
- Removed override for WPA2/WPA3 networks. Nodes should now be able to use WPA3. (df08276)
- Added WiFi RSSI to
Connecting to...
messages. (ec3a5a4) - Truncated battery voltage value to 2 decimals after calculations. (e48d7c8)
Known issues
- Socket connections seem to randomly break with multiple APs on the XIAO S3 board (esp-rs/esp-idf-svc#564). This issue may affect other boards as well. The reason is as of now, unknown.
- Sometimes the firmware panics for an unknown reason. This issue may affect other boards as well.
Full Changelog: v2.0.0-rc1...v2.0.0-rc2