Skip to content

Releases: PixelWeatherProject/pwos

v2.0.4

05 Apr 16:38
18c021b
Compare
Choose a tag to compare

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

Full Changelog: v2.0.3...v2.0.4

v2.0.3

04 Apr 15:26
ec3edfe
Compare
Choose a tag to compare

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 to true.
  • 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

02 Apr 17:23
0ea462d
Compare
Choose a tag to compare

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.
  • 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

29 Mar 12:55
c1f1a1c
Compare
Choose a tag to compare

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

25 Mar 18:47
5eb5278
Compare
Choose a tag to compare

⚠️ 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 Decimals 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

21 Mar 07:40
9013468
Compare
Choose a tag to compare
v2.0.0-rc6 Pre-release
Pre-release
  • 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

14 Mar 19:37
bfd3c35
Compare
Choose a tag to compare
v2.0.0-rc5 Pre-release
Pre-release
  • Fixed several clippy lints.
  • Removed several unnecessary calls to unwrap().
  • Added documentation for:
    • HTU* driver,
    • AnySensor and MeasurementResults,
    • battery driver,
    • brownout manager driver,
    • error module,
    • gpio module.
  • Invalid values of the FFI enum esp_reset_reason_t will be converted to ResetReason::Unknown instead of calling unreachable!().
  • Fixed typos in README and comments.
  • Removed unnecessary conversions between integer/Decimal/etc. types in the battery driver.
  • Made ResetReason::is_abnormal() a const 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 with Ord in network filter #2.
  • Updated pwmp-client to 2.0.3.
  • Added custom panic handler with error reporting.
  • Added PartialEq and Eq implementations for ResetReason.
  • Added more debug messages.

Full Changelog: v2.0.0-rc4...v2.0.0-rc5

v2.0.0-rc4

13 Mar 10:41
59ffdaa
Compare
Choose a tag to compare
v2.0.0-rc4 Pre-release
Pre-release
  • 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

Full Changelog: v2.0.0-rc3...v2.0.0-rc4

v2.0.0-rc3

11 Mar 15:32
82311f1
Compare
Choose a tag to compare
v2.0.0-rc3 Pre-release
Pre-release

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)

Known issues

See the previous release.

Full Changelog: v2.0.0-rc2...v2.0.0-rc3

v2.0.0-rc2

09 Mar 12:33
4874056
Compare
Choose a tag to compare
v2.0.0-rc2 Pre-release
Pre-release
  • Added more information to the Caveats section in README. (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 to power. (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