Repository navigation
RELEASE_NOTES_1.8.10
Release Date: November 18, 2025
Type: Patch Release (Bug Fix)
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.
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"
- 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
-
src/arduino/wifi.hpp- Bridge status delivery mechanism -
library.properties- Version update to 1.8.10 -
library.json- Version update to 1.8.10 -
package.json- Version update to 1.8.10 -
src/painlessMesh.h- Header version and date update -
src/AlteriomPainlessMesh.h- Version defines update -
CHANGELOG.md- Release entry added
Arduino Library Manager:
Search for "Alteriom PainlessMesh" and update to v1.8.10
PlatformIO:
lib_deps = alteriom/AlteriomPainlessMesh@^1.8.10NPM:
npm install @alteriom/painlessmesh@1.8.10No 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.
After upgrading to v1.8.10, test these scenarios:
// Expected behavior:
// - Node connects to mesh
// - Receives bridge status within 500ms
// - No "No primary bridge available" errors// Expected behavior:
// - Multiple nodes connecting simultaneously
// - All nodes discover bridge reliably
// - Fast discovery regardless of NTP sync activity// Expected behavior:
// - Bridge disconnects
// - New bridge elected
// - All nodes discover new bridge within 500ms// Expected behavior:
// - Node loses connection and reconnects
// - Bridge status received immediately on rejoin
// - No discovery delaysImmediate 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
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
- Memory Impact: Negligible (no additional allocations)
-
CPU Impact: Minimal (one additional
sendSingle()per connection) - Network Traffic: Slightly reduced (targeted delivery vs broadcast)
- 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
- Broadcast Method: Message sent to all nodes (even if not needed)
- Direct Method: Message sent only to newly connected node (more efficient)
This release has no known issues. The fix has been tested and validated.
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
Special thanks to the community members who reported and helped diagnose the bridge discovery issue, particularly:
- GitHub user who reported issue #135
- 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
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