GITHUB_RELEASE_v1.8.6 - Alteriom/painlessMesh GitHub Wiki
🐛 Bug Fixes
Bridge Failover Auto-Election (Issue #117)
Fixed critical issue where mesh networks would remain bridgeless indefinitely when all nodes started without a designated initial bridge.
Before: No initial bridge → no election → mesh stays bridgeless forever
After: No initial bridge → 60s startup → monitoring detects absence → election triggered → best RSSI node becomes bridge
Implementation Details
- Added periodic monitoring task (30s interval) that detects absence of healthy bridge
- Activates after 60s startup grace period to allow network stabilization
- Randomized election delay (1-3s) prevents thundering herd problem
- Respects existing safeguards: election state, 60s cooldown, router visibility
Fully backward compatible - pre-designated bridge mode continues to work as before.
Core fix: src/arduino/wifi.hpp
📝 Documentation
Bridge Failover Example
Enhanced documentation to clarify two deployment modes:
- Auto-Election Mode: All nodes regular (
INITIAL_BRIDGE=false), RSSI-based election after 60s - Pre-Designated Mode: Traditional single initial bridge setup
Updated:
examples/bridge_failover/bridge_failover.ino- Enhanced header commentsexamples/bridge_failover/README.md- Comprehensive auto-election documentation
🔧 Housekeeping
- Synchronized
package-lock.jsonversion to 1.8.5
📦 Installation
PlatformIO
lib_deps = alteriom/AlteriomPainlessMesh@^1.8.6
NPM
npm install @alteriom/[email protected]
Arduino Library Manager
Search for "AlteriomPainlessMesh" and update through the IDE
🎯 Use Cases
This release is valuable for:
- Dynamic mesh networks with changing node positions
- Fault-tolerant deployments requiring automatic bridge recovery
- IoT systems with minimal human oversight
- Development environments without pre-configured bridges
🙏 Credits
Special thanks to @woodlist for reporting the issue and providing detailed logs.
📚 Resources
Full Changelog: https://github.com/Alteriom/painlessMesh/compare/v1.8.5...v1.8.6