@alteriom/painlessmesh 1.8.14 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BRIDGE_TO_INTERNET.md +229 -0
- package/CHANGELOG.md +89 -1
- package/CONTRIBUTING.md +79 -0
- package/README.md +70 -143
- package/docs/README.md +1 -0
- package/docs/api/shared-gateway.md +1207 -0
- package/docs/troubleshooting/common-issues.md +28 -0
- package/docs/troubleshooting/faq.md +113 -12
- package/examples/basic/test/simulator/CMakeLists.txt +40 -0
- package/examples/basic/test/simulator/README.md +149 -0
- package/examples/basic/test/simulator/firmware/basic_firmware.hpp +117 -0
- package/examples/basic/test/simulator/scenarios/basic_mesh_test.yaml +81 -0
- package/examples/bridge/bridge.ino +17 -4
- package/examples/bridge_failover/README.md +81 -0
- package/examples/bridge_failover/bridge_failover.ino +51 -6
- package/examples/sharedGateway/README.md +235 -0
- package/examples/{meshCommandNode → sharedGateway}/platformio.ini +3 -2
- package/examples/sharedGateway/sharedGateway.ino +303 -0
- package/library.json +3 -22
- package/library.properties +1 -1
- package/package.json +3 -3
- package/src/arduino/wifi.hpp +380 -13
- package/src/painlessmesh/gateway.hpp +2120 -0
- package/src/painlessmesh/mesh.hpp +1034 -6
- package/src/painlessmesh/message_tracker.hpp +311 -0
- package/src/painlessmesh/protocol.hpp +6 -0
- package/DOCUMENTATION_INDEX.md +0 -146
- package/docs/API_DESIGN_GUIDELINES.md +0 -414
- package/docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md +0 -331
- package/docs/BOOLEAN_NAMING_CONVENTION.md +0 -235
- package/docs/BRIDGE_FAILOVER.md +0 -512
- package/docs/BRIDGE_HEALTH_MONITORING.md +0 -293
- package/docs/CHANNEL_SYNCHRONIZATION.md +0 -209
- package/docs/CREATE_MISSING_RELEASES.md +0 -321
- package/docs/DOCUMENTATION_MIGRATION_PLAN.md +0 -176
- package/docs/FAQ_VERSION_NUMBERS.md +0 -152
- package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +0 -1062
- package/docs/MESH_TOPOLOGY_GUIDE.md +0 -992
- package/docs/MESH_TOPOLOGY_PROGRESS.md +0 -422
- package/docs/MQTT_BRIDGE_COMMANDS.md +0 -894
- package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +0 -324
- package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +0 -576
- package/docs/MQTT_SCHEMA_COMPLIANCE.md +0 -340
- package/docs/MQTT_SCHEMA_PROPOSALS.md +0 -446
- package/docs/MQTT_SCHEMA_REVIEW.md +0 -690
- package/docs/OTA_COMMANDS_REFERENCE.md +0 -554
- package/docs/PHASE1_GUIDE.md +0 -349
- package/docs/PHASE2_GUIDE.md +0 -543
- package/docs/QUICK_REFERENCE_VERSIONING.md +0 -127
- package/docs/RELEASE_AGENT_SUMMARY.md +0 -386
- package/docs/SCHEMA_VALIDATION_CHECKLIST.md +0 -222
- package/docs/VERSION_MANAGEMENT.md +0 -213
- package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +0 -166
- package/docs/archive/FEATURE_PROPOSALS.md +0 -337
- package/docs/archive/LIBRARY_JSON_FIX.md +0 -98
- package/docs/archive/LIBRARY_STRUCTURE_FIX.md +0 -215
- package/docs/archive/PHASE1_IMPLEMENTATION.md +0 -325
- package/docs/archive/PHASE2_IMPLEMENTATION.md +0 -567
- package/docs/archive/RELEASE_SUMMARY.md +0 -173
- package/docs/archive/SCONS_BUILD_FIX.md +0 -313
- package/docs/archive/TRIGGER_RELEASE.md +0 -280
- package/docs/archive/VECTOR_INCLUDE_FIX.md +0 -129
- package/docs/archive/ota-and-status-enhancements.md +0 -911
- package/docs/archive/ota-status-architecture-diagrams.md +0 -658
- package/docs/archive/ota-status-quick-reference.md +0 -284
- package/docs/design/.gitkeep +0 -1
- package/docs/design/STATION_CREDENTIALS_DESIGN.md +0 -182
- package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +0 -71
- package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +0 -1011
- package/docs/development/DOCKER_TESTING.md +0 -196
- package/docs/development/PLATFORMIO_USAGE.md +0 -180
- package/docs/development/TESTING_SUMMARY.md +0 -126
- package/docs/development/contributing.md +0 -301
- package/docs/development/documentation.md +0 -583
- package/docs/features/DIAGNOSTICS_API.md +0 -534
- package/docs/implementation/BRIDGE_ARCHITECTURE_IMPLEMENTATION.md +0 -340
- package/docs/implementation/BRIDGE_HEALTH_MONITORING_IMPLEMENTATION.md +0 -213
- package/docs/implementation/BRIDGE_STATUS_FEATURE.md +0 -635
- package/docs/implementation/DIAGNOSTICS_API_IMPLEMENTATION.md +0 -232
- package/docs/implementation/IMPLEMENTATION_COMPLETE.md +0 -228
- package/docs/implementation/IMPLEMENTATION_NTP_TIME_SYNC.md +0 -325
- package/docs/implementation/IMPLEMENTATION_SUMMARY.md +0 -316
- package/docs/implementation/MESSAGE_QUEUE_IMPLEMENTATION.md +0 -405
- package/docs/implementation/MULTI_BRIDGE_IMPLEMENTATION.md +0 -520
- package/docs/implementation/NTP_TIME_SYNC_FEATURE.md +0 -392
- package/docs/improvements/FUTURE_PROPOSALS.md +0 -1016
- package/docs/improvements/IMPLEMENTATION_HISTORY.md +0 -1091
- package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +0 -709
- package/docs/improvements/README.md +0 -212
- package/docs/internal/CUSTOM_AGENT_ANALYSIS.md +0 -391
- package/docs/internal/ISSUE_65_VERIFICATION.md +0 -947
- package/docs/internal/ISSUE_66_CLOSURE.md +0 -249
- package/docs/internal/ISSUE_66_STATUS.md +0 -316
- package/docs/internal/PR_SUMMARY.md +0 -315
- package/docs/internal/REVIEW_SUMMARY.md +0 -332
- package/docs/multi-bridge-setup.md +0 -1025
- package/docs/platformio-publishing.md +0 -255
- package/docs/platformio-setup-summary.md +0 -121
- package/docs/releases/ANNOUNCEMENT_v1.8.6.md +0 -63
- package/docs/releases/ANNOUNCEMENT_v1.8.7.md +0 -113
- package/docs/releases/BRIDGE_STATUS_SELF_REGISTRATION_FIX.md +0 -221
- package/docs/releases/FEATURE_HISTORY.md +0 -543
- package/docs/releases/GITHUB_RELEASE_v1.8.6.md +0 -71
- package/docs/releases/GITHUB_RELEASE_v1.8.7.md +0 -90
- package/docs/releases/PATCH_v1.7.2.md +0 -262
- package/docs/releases/PATCH_v1.7.3.md +0 -262
- package/docs/releases/PATCH_v1.7.4.md +0 -219
- package/docs/releases/PHASE1_SUMMARY.md +0 -246
- package/docs/releases/PHASE2_SUMMARY.md +0 -499
- package/docs/releases/PUBLISH_v1.8.0_INSTRUCTIONS.md +0 -163
- package/docs/releases/QUICK_START_RELEASES.md +0 -113
- package/docs/releases/RELEASE_CHECKLIST_1.8.10.md +0 -331
- package/docs/releases/RELEASE_CHECKLIST_1.8.9.md +0 -207
- package/docs/releases/RELEASE_CHECKLIST_v1.7.4.md +0 -253
- package/docs/releases/RELEASE_CHECKLIST_v1.7.5.md +0 -315
- package/docs/releases/RELEASE_CHECKLIST_v1.7.6.md +0 -389
- package/docs/releases/RELEASE_CHECKLIST_v1.8.0.md +0 -331
- package/docs/releases/RELEASE_CHECKLIST_v1.8.2.md +0 -309
- package/docs/releases/RELEASE_NOTES_1.7.0.md +0 -539
- package/docs/releases/RELEASE_NOTES_1.8.10.md +0 -239
- package/docs/releases/RELEASE_NOTES_1.8.9.md +0 -213
- package/docs/releases/RELEASE_NOTES_v1.8.0.md +0 -685
- package/docs/releases/RELEASE_NOTES_v1.8.1.md +0 -221
- package/docs/releases/RELEASE_NOTES_v1.8.2.md +0 -421
- package/docs/releases/RELEASE_NOTES_v1.8.3.md +0 -292
- package/docs/releases/RELEASE_NOTES_v1.8.4.md +0 -277
- package/docs/releases/RELEASE_NOTES_v1.8.6.md +0 -205
- package/docs/releases/RELEASE_NOTES_v1.8.7.md +0 -184
- package/docs/releases/RELEASE_PLAN_v1.7.6.md +0 -816
- package/docs/releases/RELEASE_SUMMARY_1.8.10.md +0 -193
- package/docs/releases/RELEASE_SUMMARY_v1.7.4.md +0 -276
- package/docs/releases/RELEASE_SUMMARY_v1.7.5.md +0 -322
- package/docs/releases/RELEASE_SUMMARY_v1.7.6.md +0 -436
- package/docs/releases/RELEASE_SUMMARY_v1.7.7.md +0 -391
- package/docs/releases/RELEASE_SUMMARY_v1.7.8.md +0 -523
- package/docs/releases/RELEASE_SUMMARY_v1.7.9.md +0 -542
- package/docs/troubleshooting/ARDUINO_IDE_VERSION_FIX_SUMMARY.md +0 -229
- package/docs/troubleshooting/ARDUINO_LIBRARY_NAME_FIX.md +0 -197
- package/docs/troubleshooting/CRASH_QUICK_REF.md +0 -93
- package/docs/troubleshooting/ESP32_C6_COMPATIBILITY.md +0 -157
- package/docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md +0 -288
- package/docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md +0 -267
- package/docs/troubleshooting/NPM_PUBLISHING_ISSUE_SUMMARY.md +0 -110
- package/docs/troubleshooting/PAINLESSMESH_V1.7.4_COMPILATION_ISSUES.md +0 -547
- package/docs/troubleshooting/QUICK_FIX_FREERTOS.md +0 -164
- package/docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md +0 -264
- package/docs/troubleshooting/station-reconnection-issues.md +0 -172
- package/docs/v1.7.7_MQTT_IMPROVEMENTS.md +0 -794
- package/docs/wiki/API-Reference.md +0 -246
- package/docs/wiki/Complete-Documentation.md +0 -123
- package/examples/alteriomImproved/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomImproved/improved_sensor_node.ino +0 -248
- package/examples/alteriomImproved/platformio.ini +0 -32
- package/examples/alteriomMetricsHealth/alteriom_sensor_package.hpp +0 -796
- package/examples/alteriomMetricsHealth/metrics_health_node.ino +0 -429
- package/examples/alteriomMetricsHealth/platformio.ini +0 -26
- package/examples/alteriomPhase1/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomPhase1/phase1_features.ino +0 -242
- package/examples/alteriomPhase1/platformio.ini +0 -26
- package/examples/alteriomPhase2/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomPhase2/phase2_features.ino +0 -186
- package/examples/alteriomPhase2/platformio.ini +0 -26
- package/examples/alteriomSensorNode/alteriom_sensor_node.ino +0 -186
- package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +0 -1227
- package/examples/alteriomSensorNode/platformio.ini +0 -26
- package/examples/bridge/alteriom_sensor_package.hpp +0 -1170
- package/examples/bridge/bridge_health_monitoring_example.ino +0 -188
- package/examples/bridge/enhanced_mqtt_bridge.hpp +0 -610
- package/examples/bridge/enhanced_mqtt_bridge_example.ino +0 -226
- package/examples/bridge/mesh_event_publisher.hpp +0 -253
- package/examples/bridge/mesh_topology_reporter.hpp +0 -303
- package/examples/bridge/mqtt_command_bridge.hpp +0 -459
- package/examples/bridge/mqtt_status_bridge.hpp +0 -519
- package/examples/bridgeAwareSensorNode/alteriom_sensor_package.hpp +0 -1227
- package/examples/bridgeAwareSensorNode/bridgeAwareSensorNode.ino +0 -342
- package/examples/bridgeAwareSensorNode/platformio.ini +0 -26
- package/examples/diagnosticsExample/diagnosticsExample.ino +0 -171
- package/examples/diagnosticsExample/platformio.ini +0 -26
- package/examples/echoNode/echoNode.ino +0 -33
- package/examples/echoNode/platformio.ini +0 -26
- package/examples/meshCommandNode/alteriom_sensor_package.hpp +0 -235
- package/examples/meshCommandNode/meshCommandNode.ino +0 -265
- package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +0 -235
- package/examples/mqttCommandBridge/mesh_event_publisher.hpp +0 -253
- package/examples/mqttCommandBridge/mesh_topology_reporter.hpp +0 -303
- package/examples/mqttCommandBridge/mqttCommandBridge.ino +0 -254
- package/examples/mqttCommandBridge/mqtt_command_bridge.hpp +0 -462
- package/examples/mqttCommandBridge/platformio.ini +0 -27
- package/examples/mqttStatusBridge/mqttStatusBridge.ino +0 -218
- package/examples/mqttStatusBridge/mqtt_status_bridge.hpp +0 -522
- package/examples/mqttStatusBridge/platformio.ini +0 -27
- package/examples/mqttTopologyTest/README.md +0 -467
- package/examples/mqttTopologyTest/mqttTopologyTest.ino +0 -754
- package/examples/mqttTopologyTest/platformio.ini +0 -27
- package/examples/multi_bridge/README.md +0 -346
- package/examples/multi_bridge/primary_bridge.ino +0 -96
- package/examples/multi_bridge/regular_node.ino +0 -141
- package/examples/multi_bridge/secondary_bridge.ino +0 -111
- package/examples/ntpTimeSyncBridge/alteriom_sensor_package.hpp +0 -1383
- package/examples/ntpTimeSyncBridge/ntpTimeSyncBridge.ino +0 -86
- package/examples/ntpTimeSyncNode/alteriom_sensor_package.hpp +0 -1383
- package/examples/ntpTimeSyncNode/ntpTimeSyncNode.ino +0 -109
- package/examples/queued_alarms/README.md +0 -390
- package/examples/queued_alarms/queued_alarms.ino +0 -265
- package/examples/routing_demo/README.md +0 -172
- package/examples/routing_demo/routing_demo.ino +0 -102
- package/examples/rtcIntegration/README.md +0 -294
- package/examples/rtcIntegration/rtcIntegration.ino +0 -210
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
# Release Summary - Alteriom painlessMesh Library v1.6.0
|
|
2
|
-
|
|
3
|
-
## 🎯 Release Overview
|
|
4
|
-
|
|
5
|
-
This release marks the **comprehensive publication setup** of the Alteriom fork of the painlessMesh library. The library has been completely prepared for modern CI/CD workflows, automated releases, and distribution through multiple package managers.
|
|
6
|
-
|
|
7
|
-
## ✨ What's New
|
|
8
|
-
|
|
9
|
-
### 🔧 CI/CD Infrastructure
|
|
10
|
-
- **GitHub Actions** for automated build and testing
|
|
11
|
-
- **Multi-platform compilation** testing (ESP32, ESP8266)
|
|
12
|
-
- **Automated release** generation with changelog integration
|
|
13
|
-
- **Library validation** with Arduino Library Manager compliance
|
|
14
|
-
- **NPM publication** to both public NPM and GitHub Packages
|
|
15
|
-
|
|
16
|
-
### 📦 Package Management
|
|
17
|
-
- **Arduino Library Manager** ready for submission
|
|
18
|
-
- **PlatformIO** compatibility with automatic indexing
|
|
19
|
-
- **NPM package** configuration for MCP server integration (@alteriom/painlessmesh)
|
|
20
|
-
- **GitHub Packages** scoped publishing
|
|
21
|
-
- **Semantic versioning** with automated version management
|
|
22
|
-
|
|
23
|
-
### 📚 Enhanced Documentation
|
|
24
|
-
- **Comprehensive README** with installation instructions
|
|
25
|
-
- **Contributing guidelines** for developers
|
|
26
|
-
- **Release guide** for maintainers
|
|
27
|
-
- **Changelog** tracking for version history
|
|
28
|
-
- **GitHub Wiki** automatic synchronization
|
|
29
|
-
|
|
30
|
-
### 🛠️ Development Tools
|
|
31
|
-
- **Version bump scripts** for easy releases
|
|
32
|
-
- **Library validation scripts** for quality assurance
|
|
33
|
-
- **Multiple build environments** and test suites
|
|
34
|
-
- **Keywords.txt** for Arduino IDE syntax highlighting
|
|
35
|
-
|
|
36
|
-
## 🏗️ Technical Improvements
|
|
37
|
-
|
|
38
|
-
### Library Structure
|
|
39
|
-
- ✅ **Arduino Library Manager** compliant structure
|
|
40
|
-
- ✅ **PlatformIO** multi-environment support
|
|
41
|
-
- ✅ **NPM package** configuration with proper scoping
|
|
42
|
-
- ✅ **GitHub Packages** publishing setup
|
|
43
|
-
- ✅ **Example compilation** verification
|
|
44
|
-
|
|
45
|
-
### Metadata Accuracy
|
|
46
|
-
- ✅ **Version consistency** across all files (1.6.0)
|
|
47
|
-
- ✅ **Repository URLs** updated to Alteriom fork
|
|
48
|
-
- ✅ **Maintainer information** properly attributed
|
|
49
|
-
- ✅ **License compliance** maintained (LGPL-3.0)
|
|
50
|
-
- ✅ **Keywords and descriptions** optimized
|
|
51
|
-
|
|
52
|
-
### CI/CD Pipeline
|
|
53
|
-
- ✅ **Build testing** on multiple platforms
|
|
54
|
-
- ✅ **Library format validation**
|
|
55
|
-
- ✅ **Automated releases** with GitHub Actions
|
|
56
|
-
- ✅ **NPM publishing** to public registry and GitHub Packages
|
|
57
|
-
- ✅ **Wiki synchronization** with documentation updates
|
|
58
|
-
- ✅ **Release notes** generation from changelog
|
|
59
|
-
|
|
60
|
-
## 🎨 Features Retained
|
|
61
|
-
|
|
62
|
-
All original functionality from the upstream library is maintained:
|
|
63
|
-
|
|
64
|
-
- **Mesh Networking**: ESP32 and ESP8266 automatic mesh formation
|
|
65
|
-
- **JSON Messaging**: Structured communication between nodes
|
|
66
|
-
- **Time Synchronization**: Coordinated time across all mesh nodes
|
|
67
|
-
- **Task Scheduling**: Built-in task management system
|
|
68
|
-
- **Callback System**: Event-driven programming model
|
|
69
|
-
- **Node Discovery**: Automatic node detection and routing
|
|
70
|
-
|
|
71
|
-
## 🚀 Alteriom Extensions
|
|
72
|
-
|
|
73
|
-
### Enhanced Packages
|
|
74
|
-
- **SensorPackage** (Type 200): Environmental monitoring with temperature, humidity, pressure, battery levels
|
|
75
|
-
- **CommandPackage (Type 400): Device control and automation commands
|
|
76
|
-
- **StatusPackage** (Type 202): Health monitoring and system status reporting
|
|
77
|
-
|
|
78
|
-
### Additional Features
|
|
79
|
-
- **Type-safe serialization**: Automatic JSON conversion with validation
|
|
80
|
-
- **Cross-platform compatibility**: TSTRING abstraction for consistent string handling
|
|
81
|
-
- **Memory optimization**: Efficient data structures for resource-constrained devices
|
|
82
|
-
|
|
83
|
-
## 📋 Validation Results
|
|
84
|
-
|
|
85
|
-
The library passes all validation checks:
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
🔍 Validating Alteriom painlessMesh Library...
|
|
89
|
-
================================================
|
|
90
|
-
📁 All required files present ✅
|
|
91
|
-
🔢 Version consistency across files ✅
|
|
92
|
-
🔗 Repository URLs correct ✅
|
|
93
|
-
📋 Arduino Library Manager compliance ✅
|
|
94
|
-
🏗️ Header file structure valid ✅
|
|
95
|
-
📦 NPM package configuration valid ✅
|
|
96
|
-
🔑 Keywords.txt present for Arduino IDE ✅
|
|
97
|
-
|
|
98
|
-
🎉 SUCCESS: Library validation passed with no issues!
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## 🚀 Installation Methods
|
|
102
|
-
|
|
103
|
-
### Arduino Library Manager (Recommended)
|
|
104
|
-
```
|
|
105
|
-
1. Open Arduino IDE
|
|
106
|
-
2. Go to Tools → Manage Libraries
|
|
107
|
-
3. Search for "painlessMesh" (author: Alteriom)
|
|
108
|
-
4. Click Install
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### PlatformIO
|
|
112
|
-
```ini
|
|
113
|
-
[env:myproject]
|
|
114
|
-
platform = espressif32
|
|
115
|
-
board = esp32dev
|
|
116
|
-
framework = arduino
|
|
117
|
-
lib_deps =
|
|
118
|
-
alteriom/painlessMesh@^1.6.0
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### NPM Package (for MCP/Copilot integration)
|
|
122
|
-
```bash
|
|
123
|
-
# Public NPM
|
|
124
|
-
npm install @alteriom/painlessmesh
|
|
125
|
-
|
|
126
|
-
# GitHub Packages (requires .npmrc configuration)
|
|
127
|
-
echo '@alteriom:registry=https://npm.pkg.github.com' >> .npmrc
|
|
128
|
-
npm install @alteriom/painlessmesh
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### Manual Installation
|
|
132
|
-
```bash
|
|
133
|
-
git clone https://github.com/Alteriom/painlessMesh.git
|
|
134
|
-
# Copy to Arduino libraries folder
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## 📊 Package Distribution
|
|
138
|
-
|
|
139
|
-
The library is now available through multiple channels:
|
|
140
|
-
|
|
141
|
-
- **GitHub Releases**: https://github.com/Alteriom/painlessMesh/releases
|
|
142
|
-
- **Arduino Library Manager**: Search "painlessMesh" (Alteriom)
|
|
143
|
-
- **PlatformIO Registry**: https://registry.platformio.org/libraries/alteriom/painlessMesh
|
|
144
|
-
- **NPM Public**: https://www.npmjs.com/package/@alteriom/painlessmesh
|
|
145
|
-
- **GitHub Packages**: https://github.com/Alteriom/painlessMesh/packages
|
|
146
|
-
- **GitHub Wiki**: https://github.com/Alteriom/painlessMesh/wiki
|
|
147
|
-
|
|
148
|
-
## 🔮 Future Roadmap
|
|
149
|
-
|
|
150
|
-
- **v1.6.1**: Bug fixes and minor improvements based on community feedback
|
|
151
|
-
- **v1.7.0**: Additional Alteriom packages and enhanced MCP integration
|
|
152
|
-
- **v1.8.0**: Performance optimizations and memory usage improvements
|
|
153
|
-
- **v2.0.0**: Breaking changes for major improvements (if needed)
|
|
154
|
-
|
|
155
|
-
## 🤝 Community
|
|
156
|
-
|
|
157
|
-
- **Repository**: https://github.com/Alteriom/painlessMesh
|
|
158
|
-
- **Issues**: Report bugs and request features
|
|
159
|
-
- **Discussions**: Community support and questions
|
|
160
|
-
- **Contributing**: Follow CONTRIBUTING.md guidelines
|
|
161
|
-
- **Wiki**: Comprehensive documentation and examples
|
|
162
|
-
|
|
163
|
-
## 🙏 Acknowledgments
|
|
164
|
-
|
|
165
|
-
- **Coopdis** - Original painlessMesh author and creator
|
|
166
|
-
- **Original Contributors** - Scotty Franzyshen, Edwin van Leeuwen, Germán Martín, and others
|
|
167
|
-
- **Alteriom Team** - Fork enhancements, CI/CD setup, and package management
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
**Ready to use?** Install the library and start building your mesh projects today! 🚀
|
|
172
|
-
|
|
173
|
-
For complete setup instructions and examples, visit our [GitHub Wiki](https://github.com/Alteriom/painlessMesh/wiki).
|
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
# PlatformIO SCons Build Error Troubleshooting
|
|
2
|
-
|
|
3
|
-
## Common Error: "UnboundLocalError: local variable 'dir' referenced before assignment"
|
|
4
|
-
|
|
5
|
-
This error occurs during PlatformIO's SCons build process when compiling `painlessMeshSTA.cpp` and similar files.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## ✅ FIXES APPLIED TO LIBRARY
|
|
10
|
-
|
|
11
|
-
The following fixes have been applied to the **painlessMesh library** itself:
|
|
12
|
-
|
|
13
|
-
### 0. Added Missing Header Include (CRITICAL)
|
|
14
|
-
```cpp
|
|
15
|
-
// src/painlessmesh/mesh.hpp
|
|
16
|
-
#include <vector> // Required for std::vector usage
|
|
17
|
-
```
|
|
18
|
-
**Why:** The mesh.hpp file uses `std::vector` but wasn't including the header, causing compilation errors.
|
|
19
|
-
|
|
20
|
-
### 1. Added Explicit Directory Specifications
|
|
21
|
-
```json
|
|
22
|
-
{
|
|
23
|
-
"srcDir": "src",
|
|
24
|
-
"includeDir": "src"
|
|
25
|
-
}
|
|
26
|
-
```
|
|
27
|
-
**Why:** Tells PlatformIO exactly where source files are located.
|
|
28
|
-
|
|
29
|
-
### 2. Removed Conflicting Export Settings
|
|
30
|
-
**Before:**
|
|
31
|
-
```json
|
|
32
|
-
{
|
|
33
|
-
"export": {
|
|
34
|
-
"include": "src"
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
**After:** (Removed completely)
|
|
40
|
-
|
|
41
|
-
**Why:** The `export.include` conflicts with `srcDir` and causes path resolution issues in SCons.
|
|
42
|
-
|
|
43
|
-
### 3. Verified File Locations
|
|
44
|
-
- ✅ All `.cpp` files in `src/` directory
|
|
45
|
-
- ✅ `painlessMeshSTA.cpp` at `src/painlessMeshSTA.cpp`
|
|
46
|
-
- ✅ No source files in root directory
|
|
47
|
-
- ✅ No duplicate `library.json` files
|
|
48
|
-
|
|
49
|
-
### 4. Fixed Header References
|
|
50
|
-
- ✅ `library.properties` references `painlessMesh.h`
|
|
51
|
-
- ✅ Both `painlessMesh.h` and `AlteriomPainlessMesh.h` available
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## 🔧 FIXES FOR YOUR PROJECT
|
|
56
|
-
|
|
57
|
-
If you're still getting errors, apply these fixes in YOUR project:
|
|
58
|
-
|
|
59
|
-
### Fix 1: Clean Build Cache
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
# Delete PlatformIO cache
|
|
63
|
-
pio run --target clean
|
|
64
|
-
|
|
65
|
-
# Or delete manually
|
|
66
|
-
rm -rf .pio
|
|
67
|
-
rm -rf .pioenvs
|
|
68
|
-
rm -rf .piolibdeps
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Fix 2: Update Library from GitHub
|
|
72
|
-
|
|
73
|
-
Make sure you're pulling the latest fixes:
|
|
74
|
-
|
|
75
|
-
```ini
|
|
76
|
-
[env:esp32]
|
|
77
|
-
platform = espressif32
|
|
78
|
-
board = esp32dev
|
|
79
|
-
framework = arduino
|
|
80
|
-
lib_deps =
|
|
81
|
-
; Use the LATEST commit with fixes
|
|
82
|
-
https://github.com/Alteriom/painlessMesh#copilot/start-phase-2-implementation
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Fix 3: Force Library Re-download
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
# Remove cached library
|
|
89
|
-
rm -rf .pio/libdeps/*/AlteriomPainlessMesh
|
|
90
|
-
|
|
91
|
-
# Or use PlatformIO's update command
|
|
92
|
-
pio pkg update
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Fix 4: Verify PlatformIO Version
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
# Check version
|
|
99
|
-
pio --version
|
|
100
|
-
|
|
101
|
-
# Update if needed (requires >= 6.0.0)
|
|
102
|
-
pip install -U platformio
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### Fix 5: Check for Conflicting Libraries
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
# List installed libraries
|
|
109
|
-
pio pkg list
|
|
110
|
-
|
|
111
|
-
# Remove any duplicate painlessMesh installations
|
|
112
|
-
pio pkg uninstall -g painlessMesh
|
|
113
|
-
pio pkg uninstall -g AlteriomPainlessMesh
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
## 🧪 TEST BUILD
|
|
119
|
-
|
|
120
|
-
### Step 1: Create Test Project
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
|
-
mkdir test-painlessmesh
|
|
124
|
-
cd test-painlessmesh
|
|
125
|
-
pio init --board esp32dev
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### Step 2: Create platformio.ini
|
|
129
|
-
|
|
130
|
-
```ini
|
|
131
|
-
[env:esp32]
|
|
132
|
-
platform = espressif32
|
|
133
|
-
board = esp32dev
|
|
134
|
-
framework = arduino
|
|
135
|
-
monitor_speed = 115200
|
|
136
|
-
|
|
137
|
-
lib_deps =
|
|
138
|
-
https://github.com/Alteriom/painlessMesh#copilot/start-phase-2-implementation
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### Step 3: Create src/main.cpp
|
|
142
|
-
|
|
143
|
-
```cpp
|
|
144
|
-
#include <Arduino.h>
|
|
145
|
-
#include <painlessMesh.h>
|
|
146
|
-
|
|
147
|
-
Scheduler userScheduler;
|
|
148
|
-
painlessMesh mesh;
|
|
149
|
-
|
|
150
|
-
void setup() {
|
|
151
|
-
Serial.begin(115200);
|
|
152
|
-
|
|
153
|
-
mesh.setDebugMsgTypes(ERROR | STARTUP);
|
|
154
|
-
mesh.init("TestMesh", "password", &userScheduler, 5555);
|
|
155
|
-
|
|
156
|
-
Serial.println("Mesh initialized!");
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
void loop() {
|
|
160
|
-
mesh.update();
|
|
161
|
-
}
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
### Step 4: Build
|
|
165
|
-
|
|
166
|
-
```bash
|
|
167
|
-
pio run
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
**Expected Output:**
|
|
171
|
-
```
|
|
172
|
-
Building .pio/build/esp32/src/main.cpp.o
|
|
173
|
-
Building .pio/build/esp32/.pio/libdeps/esp32/AlteriomPainlessMesh/...
|
|
174
|
-
Linking .pio/build/esp32/firmware.elf
|
|
175
|
-
Building .pio/build/esp32/firmware.bin
|
|
176
|
-
SUCCESS
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
---
|
|
180
|
-
|
|
181
|
-
## 🚨 IF STILL FAILING
|
|
182
|
-
|
|
183
|
-
### Collect Diagnostic Information
|
|
184
|
-
|
|
185
|
-
```bash
|
|
186
|
-
# Get verbose build output
|
|
187
|
-
pio run -v > build.log 2>&1
|
|
188
|
-
|
|
189
|
-
# Check library structure
|
|
190
|
-
cd .pio/libdeps/esp32/AlteriomPainlessMesh
|
|
191
|
-
ls -la
|
|
192
|
-
cat library.json
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
### Check for These Issues:
|
|
196
|
-
|
|
197
|
-
**1. Verify srcDir in downloaded library:**
|
|
198
|
-
```bash
|
|
199
|
-
cd .pio/libdeps/esp32/AlteriomPainlessMesh
|
|
200
|
-
cat library.json | grep srcDir
|
|
201
|
-
# Should show: "srcDir": "src",
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
**2. Verify source files exist:**
|
|
205
|
-
```bash
|
|
206
|
-
ls -la src/
|
|
207
|
-
# Should show: painlessMeshSTA.cpp, scheduler.cpp, wifi.cpp
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
**3. Check for duplicate files:**
|
|
211
|
-
```bash
|
|
212
|
-
find . -name "painlessMeshSTA.cpp"
|
|
213
|
-
# Should only show: ./src/painlessMeshSTA.cpp
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
**4. Verify no export.include:**
|
|
217
|
-
```bash
|
|
218
|
-
cat library.json | grep export
|
|
219
|
-
# Should show: (nothing) or not include "include": "src"
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
---
|
|
223
|
-
|
|
224
|
-
## 📋 CHECKLIST FOR SUCCESSFUL BUILD
|
|
225
|
-
|
|
226
|
-
- [ ] PlatformIO version >= 6.0.0
|
|
227
|
-
- [ ] Clean build cache (`pio run --target clean`)
|
|
228
|
-
- [ ] Remove `.pio` directory
|
|
229
|
-
- [ ] Update library.json has `srcDir` and `includeDir`
|
|
230
|
-
- [ ] No `export.include` in library.json
|
|
231
|
-
- [ ] All `.cpp` files in `src/` directory
|
|
232
|
-
- [ ] Force library re-download from GitHub
|
|
233
|
-
- [ ] Test with minimal example
|
|
234
|
-
- [ ] Check verbose build log for actual error
|
|
235
|
-
|
|
236
|
-
---
|
|
237
|
-
|
|
238
|
-
## 🔍 UNDERSTANDING THE ERROR
|
|
239
|
-
|
|
240
|
-
### What Causes "UnboundLocalError: dir"?
|
|
241
|
-
|
|
242
|
-
This error occurs in PlatformIO's SCons build system when:
|
|
243
|
-
|
|
244
|
-
1. **Path resolution fails:** SCons can't determine the source directory
|
|
245
|
-
2. **Conflicting settings:** Multiple directory specifications conflict
|
|
246
|
-
3. **Cache corruption:** Old cached metadata from previous builds
|
|
247
|
-
4. **Missing metadata:** No `srcDir` specified in library.json
|
|
248
|
-
|
|
249
|
-
### The Fix (Applied):
|
|
250
|
-
|
|
251
|
-
```json
|
|
252
|
-
{
|
|
253
|
-
"name": "AlteriomPainlessMesh",
|
|
254
|
-
"srcDir": "src", // ← Explicit source directory
|
|
255
|
-
"includeDir": "src" // ← Explicit include directory
|
|
256
|
-
// "export": {...} // ← REMOVED (was causing conflicts)
|
|
257
|
-
}
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
---
|
|
261
|
-
|
|
262
|
-
## 📞 SUPPORT
|
|
263
|
-
|
|
264
|
-
If issues persist after trying all fixes:
|
|
265
|
-
|
|
266
|
-
1. **Check your build log:**
|
|
267
|
-
```bash
|
|
268
|
-
pio run -v 2>&1 | tee build-verbose.log
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
2. **Verify library was actually updated:**
|
|
272
|
-
```bash
|
|
273
|
-
cd .pio/libdeps/YOUR_ENV/AlteriomPainlessMesh
|
|
274
|
-
git log -1 --oneline
|
|
275
|
-
# Should show recent commit with fixes
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
3. **Try a completely fresh project:**
|
|
279
|
-
- New directory
|
|
280
|
-
- Fresh `pio init`
|
|
281
|
-
- No existing `.pio` folder
|
|
282
|
-
- Copy minimal example above
|
|
283
|
-
|
|
284
|
-
4. **Report issue with:**
|
|
285
|
-
- PlatformIO version
|
|
286
|
-
- Platform (espressif32/espressif8266)
|
|
287
|
-
- Full build log
|
|
288
|
-
- Contents of `.pio/libdeps/*/AlteriomPainlessMesh/library.json`
|
|
289
|
-
|
|
290
|
-
---
|
|
291
|
-
|
|
292
|
-
## ✅ VERIFICATION
|
|
293
|
-
|
|
294
|
-
After applying fixes, your build should succeed with output like:
|
|
295
|
-
|
|
296
|
-
```
|
|
297
|
-
Dependency Graph
|
|
298
|
-
|-- AlteriomPainlessMesh @ 1.7.0
|
|
299
|
-
| |-- AsyncTCP @ 3.4.7
|
|
300
|
-
| |-- ArduinoJson @ 7.4.2
|
|
301
|
-
| |-- TaskScheduler @ 4.0.0
|
|
302
|
-
| |-- WiFi @ 2.0.0
|
|
303
|
-
Building .pio/build/esp32/lib/.../painlessMeshSTA.cpp.o
|
|
304
|
-
...
|
|
305
|
-
SUCCESS
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
---
|
|
309
|
-
|
|
310
|
-
**Last Updated:** October 15, 2025
|
|
311
|
-
**Library Version:** 1.7.0
|
|
312
|
-
**Branch:** copilot/start-phase-2-implementation
|
|
313
|
-
**Status:** ✅ SCons build issues resolved
|