New Features
- SPI Bus Selection: Added
ethSpiBusconfiguration to select between SPI2 and SPI3 for Ethernet (when supported by hardware) (#241)- New Web UI note component warns users about GPIO conflicts when using Ethernet and PN532 on the same SPI bus
- Automatic separation of Ethernet and PN532 SPI buses when SPI3 available
- Auth Precompute Cache: Added optional authentication context precomputation for faster HomeKey taps (#224)
- Enable/disable through the UI (Misc -> HomeKey -> Auth Precompute Cache) or through API via
hkAuthPrecomputeEnabled - Background task manages cache of precomputed authentication contexts
- Intelligent cache invalidation when reader data changes
- Significant performance improvement for repeated taps
- Enable/disable through the UI (Misc -> HomeKey -> Auth Precompute Cache) or through API via
Fixes and Improvements
- Logging System: Integrated
loggableframework for unified, configurable logging across components - Memory Safety: Added mutex protection for reader data concurrent access in
ReaderDataManager(#224) - Thread-Safe Snapshots: New
getReaderDataCopy()method provides safe reader data snapshots (#224) - Configuration Validation: Enhanced SPI bus validation and error messages in Web UI (#241)
- Build System: Improved
findcommand compatibility in CMakeLists (#247) - Stability: Fixed various race conditions and memory safety issues
- HomeKey Issues: Fixed HomeKey authentication issues that prevented Apple Watch and other secondary devices from unlocking the device (fixed #215)
- Web UI Reliability: Enhanced Web UI responsiveness and availability (fixed #237) (fixes? #211)
- Persistence issue: Fixed config deserialization for the neopixel colors (fixed #249)
- Improved OTA: Refactored OTA update process for better stability and cleaner code (#233)
Internal Changes
- Event System Overhaul: Completely refactored event handling from the
espp::EventManagerto a customEventBussystem for more efficient and flexible event communication (#229) - Component Updates: Replaced
espp/event_managerwithesp32-event-bus, this is a simpler implementation that only uses one task and one queue which hugely decreased memory consumption and fixed exhaustion on lower memory models like C3 - New PN532 driver architecture: Migrated from
PN532library to modularpn532_cxx,esp-hal-pn532(Platform HAL) to house platform-agnostic support for future projects and this also motivated me to improve error handling and logging on both the application and transport layer. - Console Logging: New
ConsoleLogSinkerprovides ANSI colored console output with a cohesive and easily readable format betweenesp_loglogs andloggablelogs (used to dispatch logs to mutliple sinks, such as WebSocket to display them on the UI)
Build & CI Improvements
- Nix Flake Update: Updated to
nixos-25.11and switched tomirrexagon/nixpkgs-esp-dev - LittleFS Handling: Improved LittleFS remounting during OTA updates
- Component Management: Updated to latest library versions
Documentation Updates
- Contributing Guidelines: Added some basic AI/LLM usage guidelines for contributions
- Configuration Guide: Added documentation for new auth cache option and Ethernet SPI bus selection
New Contributors
- @Maxime0506 made their first contribution in #224
- @ionothanus made their first contribution in #241
- @rbouteiller made their first contribution in #247
Full Changelog: v0.7.1...v0.8.0