RELEASE_NOTES_1.8.10 - Alteriom/painlessMesh GitHub Wiki
Release Notes: v1.8.10
Release Date: November 18, 2025
Type: Patch Release (Bug Fix)
๐ฏ Overview
Version 1.8.10 is a focused patch release that fixes a critical bridge discovery issue where newly connected nodes were not reliably receiving bridge status information. This release improves the reliability of bridge-to-node communication in mesh networks.
๐ Bug Fixes
Bridge Status Discovery - Direct Messaging
Issue: Newly connected nodes were not reliably receiving bridge status broadcasts, causing delays or failures in bridge discovery.
Root Cause Analysis:
- Broadcast messages (
routing=2) were not reaching newly connected nodes consistently - Time synchronization (NTP) operations were interfering with bridge discovery timing
- Broadcast routing tables may not be fully established immediately after a node connects to the mesh
- This led to nodes reporting "No primary bridge available" despite bridges being active
Solution Implemented:
- Changed bridge status delivery mechanism from broadcast to direct single message
- Bridge now sends status directly to newly connected nodes using
sendSingle()(routing=1) - Minimal 500ms delay added for connection stability before sending status
- Direct targeted delivery ensures the message reaches the new node reliably
- Time sync operations no longer interfere with critical bridge discovery
Technical Details:
- File Modified:
src/arduino/wifi.hpp - Location: Line ~809 in
initBridgeStatusBroadcast() - Change: Modified
newConnectionCallbackto usesendSingle(nodeId, ...)instead ofsendBroadcast(...) - Routing Mode: Changed from
routing=2(broadcast) torouting=1(single destination)
Impact:
- โ Nodes discover bridges immediately (within 500ms) after connecting
- โ Eliminates "No primary bridge available" errors for newly connected nodes
- โ More reliable mesh network initialization
- โ Better handling of nodes joining/rejoining the mesh
- โ Reduced dependency on broadcast routing table convergence
Backward Compatibility:
- โ No API changes
- โ Internal delivery mechanism improved
- โ All existing code continues to work without modification
- โ No breaking changes to bridge status packet format
Related Issues:
- Resolves GitHub issue #135 "The latest fix does not work"
๐ฆ What's Included
Core Changes
- Bridge Discovery: Enhanced reliability for newly connected nodes
- Message Delivery: Direct messaging replaces broadcast for critical status updates
- Connection Stability: Added minimal delay for connection stabilization
Files Modified
src/arduino/wifi.hpp- Bridge status delivery mechanismlibrary.properties- Version update to 1.8.10library.json- Version update to 1.8.10package.json- Version update to 1.8.10src/painlessMesh.h- Header version and date updatesrc/AlteriomPainlessMesh.h- Version defines updateCHANGELOG.md- Release entry added
๐ Upgrade Guide
Installation
Arduino Library Manager:
Search for "Alteriom PainlessMesh" and update to v1.8.10
PlatformIO:
lib_deps = alteriom/AlteriomPainlessMesh@^1.8.10
NPM:
npm install @alteriom/[email protected]
Migration from v1.8.9
No changes required! This is a drop-in replacement for v1.8.9.
- โ All existing bridge code works unchanged
- โ All existing node code works unchanged
- โ No API modifications
- โ No configuration changes needed
Simply update the library version and redeploy.
๐งช Testing Recommendations
After upgrading to v1.8.10, test these scenarios:
1. New Node Connection Test
// Expected behavior:
// - Node connects to mesh
// - Receives bridge status within 500ms
// - No "No primary bridge available" errors
2. Bridge Discovery Test
// Expected behavior:
// - Multiple nodes connecting simultaneously
// - All nodes discover bridge reliably
// - Fast discovery regardless of NTP sync activity
3. Bridge Failover Test
// Expected behavior:
// - Bridge disconnects
// - New bridge elected
// - All nodes discover new bridge within 500ms
4. Network Rejoin Test
// Expected behavior:
// - Node loses connection and reconnects
// - Bridge status received immediately on rejoin
// - No discovery delays
๐ฏ Recommendations
Who Should Upgrade
Immediate Upgrade Recommended:
- โ Systems with frequent node connections/disconnections
- โ Networks experiencing bridge discovery delays
- โ Deployments with NTP time synchronization enabled
- โ Multi-bridge mesh networks
- โ Production systems requiring fast startup
Can Upgrade at Convenience:
- Networks with stable connections and infrequent joins
- Single-bridge setups without time sync
- Development/testing environments
Deployment Strategy
Low-Risk Deployment:
- Test in development environment first
- Deploy to one bridge node
- Monitor for 24 hours
- Roll out to remaining nodes
Zero-Downtime Deployment:
- Bridge nodes can be updated one at a time
- Regular nodes can be updated in batches
- No mesh network restart required
๐ Performance Characteristics
Resource Usage
- Memory Impact: Negligible (no additional allocations)
- CPU Impact: Minimal (one additional
sendSingle()per connection) - Network Traffic: Slightly reduced (targeted delivery vs broadcast)
Timing Improvements
- Before v1.8.10: Bridge discovery could take up to 30 seconds (periodic broadcast interval)
- After v1.8.10: Bridge discovery within 500ms of connection
Network Efficiency
- Broadcast Method: Message sent to all nodes (even if not needed)
- Direct Method: Message sent only to newly connected node (more efficient)
๐ Known Issues
None
This release has no known issues. The fix has been tested and validated.
Reporting Issues
If you encounter any problems with v1.8.10, please report them:
- GitHub Issues: https://github.com/Alteriom/painlessMesh/issues
- Include: Library version, platform (ESP32/ESP8266), and detailed description
- Attach: Serial logs and minimal reproduction code if possible
๐ Acknowledgments
Special thanks to the community members who reported and helped diagnose the bridge discovery issue, particularly:
- GitHub user who reported issue #135
๐ Additional Resources
- Documentation: https://alteriom.github.io/painlessMesh/
- API Reference: https://alteriom.github.io/painlessMesh/#/api/doxygen
- Examples: https://alteriom.github.io/painlessMesh/#/tutorials/basic-examples
- Bridge Failover Guide:
examples/bridge_failover/README.md - Changelog:
CHANGELOG.md - Release Guide:
RELEASE_GUIDE.md
๐ Coming in Future Releases
Stay tuned for upcoming features:
- Enhanced bridge load balancing
- Advanced mesh diagnostics
- Additional monitoring packages
- Performance optimizations
Released: November 18, 2025
Version: 1.8.10
Type: Patch (Bug Fix)
Compatibility: 100% backward compatible with v1.8.9