@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,229 +0,0 @@
|
|
|
1
|
-
# Arduino IDE Version Detection Issue - Resolution Summary
|
|
2
|
-
|
|
3
|
-
## Issue Summary **[RESOLVED]**
|
|
4
|
-
|
|
5
|
-
**Problem**: Arduino IDE does not detect the current library version (1.8.2), shows old version (1.6.1).
|
|
6
|
-
|
|
7
|
-
**Root Cause**: The library name in `library.properties` was changed from `Alteriom PainlessMesh` (v1.6.1) to `AlteriomPainlessMesh` (v1.7.0+). Arduino Library Manager requires consistent library names and stopped indexing new releases when the name changed.
|
|
8
|
-
|
|
9
|
-
**Impact**: Users could only see and install version 1.6.1 via Arduino IDE Library Manager.
|
|
10
|
-
|
|
11
|
-
**Solution**: Reverted library name in `library.properties` back to original format with space: `Alteriom PainlessMesh`
|
|
12
|
-
|
|
13
|
-
## Solution Overview
|
|
14
|
-
|
|
15
|
-
This issue has been **RESOLVED**. The library name has been corrected and Arduino Library Manager will resume indexing new releases.
|
|
16
|
-
|
|
17
|
-
### What Has Been Done ✅
|
|
18
|
-
|
|
19
|
-
1. **Identified Root Cause**: Library name changed from `Alteriom PainlessMesh` to `AlteriomPainlessMesh`
|
|
20
|
-
2. **Verified Registration**: Confirmed library is already in arduino/library-registry
|
|
21
|
-
3. **Fixed Library Name**: Reverted `library.properties` to use original name with space
|
|
22
|
-
4. **Verified Compliance**: All Arduino Library Manager requirements are met
|
|
23
|
-
5. **Updated Documentation**: Comprehensive explanation and validation tools
|
|
24
|
-
6. **No Manual Action Required**: Arduino will automatically index new releases
|
|
25
|
-
|
|
26
|
-
## What Happens Next (Automatic)
|
|
27
|
-
|
|
28
|
-
**Arduino Library Manager will automatically index the next release:**
|
|
29
|
-
|
|
30
|
-
### Step-by-Step Submission Process
|
|
31
|
-
|
|
32
|
-
1. **Open Browser** → https://github.com/arduino/library-registry
|
|
33
|
-
2. **Click "Issues"** → "New Issue"
|
|
34
|
-
3. **Copy Template** from `.github/ARDUINO_LIBRARY_REGISTRY_SUBMISSION.md`
|
|
35
|
-
4. **Paste and Submit** the issue
|
|
36
|
-
5. **Wait for Review** (1-2 weeks typical)
|
|
37
|
-
6. **Verify Registration** in Arduino IDE
|
|
38
|
-
|
|
39
|
-
### Quick Submission
|
|
40
|
-
|
|
41
|
-
Use this command to view the submission template:
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
cat .github/ARDUINO_LIBRARY_REGISTRY_SUBMISSION.md
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Then copy the entire content and create an issue at https://github.com/arduino/library-registry
|
|
48
|
-
|
|
49
|
-
## What Happens After Submission
|
|
50
|
-
|
|
51
|
-
### Immediate (Upon Approval)
|
|
52
|
-
- ✅ Library appears in Arduino IDE Library Manager
|
|
53
|
-
- ✅ Users can search for "AlteriomPainlessMesh"
|
|
54
|
-
- ✅ One-click installation available
|
|
55
|
-
- ✅ Version 1.8.2 (and all future releases) automatically indexed
|
|
56
|
-
|
|
57
|
-
### Future Releases
|
|
58
|
-
- **Automatic**: Arduino Library Manager checks for updates every 24-48 hours
|
|
59
|
-
- **No Manual Work**: Just create GitHub releases with proper version tags
|
|
60
|
-
- **Seamless Updates**: Users see "Update" button in Library Manager
|
|
61
|
-
|
|
62
|
-
## Files Created
|
|
63
|
-
|
|
64
|
-
### Documentation
|
|
65
|
-
1. **`docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md`** (10KB)
|
|
66
|
-
- Complete submission guide
|
|
67
|
-
- Pre-submission checklist
|
|
68
|
-
- Testing procedures
|
|
69
|
-
- Troubleshooting guide
|
|
70
|
-
- Post-registration maintenance
|
|
71
|
-
|
|
72
|
-
2. **`.github/ARDUINO_LIBRARY_REGISTRY_SUBMISSION.md`** (5KB)
|
|
73
|
-
- Ready-to-use submission template
|
|
74
|
-
- Includes all library features
|
|
75
|
-
- Highlights compliance status
|
|
76
|
-
- Lists all dependencies
|
|
77
|
-
|
|
78
|
-
### Tools
|
|
79
|
-
3. **`scripts/validate-arduino-compliance.sh`**
|
|
80
|
-
- Automated compliance checker
|
|
81
|
-
- Validates all requirements
|
|
82
|
-
- Checks version consistency
|
|
83
|
-
- Verifies file structure
|
|
84
|
-
- **Current Status**: ✅ All checks passing
|
|
85
|
-
|
|
86
|
-
### Updated Documentation
|
|
87
|
-
4. **`RELEASE_GUIDE.md`**
|
|
88
|
-
- Added Arduino Library Manager section
|
|
89
|
-
- Prominent registration warning
|
|
90
|
-
- Detailed submission instructions
|
|
91
|
-
|
|
92
|
-
5. **`README.md`**
|
|
93
|
-
- Updated installation section
|
|
94
|
-
- Added registration status
|
|
95
|
-
- Provided temporary workarounds
|
|
96
|
-
|
|
97
|
-
## Current Workarounds for Users
|
|
98
|
-
|
|
99
|
-
Until registration is complete, users can install the library via:
|
|
100
|
-
|
|
101
|
-
### Option 1: PlatformIO (Recommended)
|
|
102
|
-
```ini
|
|
103
|
-
[env:esp32dev]
|
|
104
|
-
lib_deps = alteriom/AlteriomPainlessMesh@^1.8.2
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Option 2: Manual ZIP Installation
|
|
108
|
-
1. Download from https://github.com/Alteriom/painlessMesh/releases/latest
|
|
109
|
-
2. Arduino IDE → Sketch → Include Library → Add .ZIP Library
|
|
110
|
-
3. Select downloaded ZIP file
|
|
111
|
-
|
|
112
|
-
### Option 3: Git Clone
|
|
113
|
-
```bash
|
|
114
|
-
cd ~/Arduino/libraries/
|
|
115
|
-
git clone https://github.com/Alteriom/painlessMesh.git AlteriomPainlessMesh
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### Option 4: NPM (for Node.js projects)
|
|
119
|
-
```bash
|
|
120
|
-
npm install @alteriom/painlessmesh
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
## Validation Results
|
|
124
|
-
|
|
125
|
-
All Arduino Library Manager requirements verified:
|
|
126
|
-
|
|
127
|
-
```
|
|
128
|
-
✓ library.properties exists and is properly formatted
|
|
129
|
-
✓ Version field set to 1.8.2
|
|
130
|
-
✓ src/ directory with header files
|
|
131
|
-
✓ examples/ directory with 29 examples
|
|
132
|
-
✓ LICENSE file (LGPL-3.0)
|
|
133
|
-
✓ README.md with comprehensive documentation
|
|
134
|
-
✓ Git tags properly formatted (v1.8.2)
|
|
135
|
-
✓ Version consistency across all files
|
|
136
|
-
✓ Dependencies properly declared
|
|
137
|
-
✓ keywords.txt present
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Run validation: `./scripts/validate-arduino-compliance.sh`
|
|
141
|
-
|
|
142
|
-
## Expected Timeline
|
|
143
|
-
|
|
144
|
-
| Phase | Duration | Status |
|
|
145
|
-
|-------|----------|--------|
|
|
146
|
-
| Documentation & Validation | Complete | ✅ Done |
|
|
147
|
-
| Submission Creation | 5 minutes | ⏳ Pending |
|
|
148
|
-
| Arduino Team Review | 1-2 weeks | ⏳ Awaiting submission |
|
|
149
|
-
| Indexing & Availability | 24-48 hours | ⏳ After approval |
|
|
150
|
-
|
|
151
|
-
## Benefits of Registration
|
|
152
|
-
|
|
153
|
-
### For Users
|
|
154
|
-
- ✅ One-click installation via Arduino IDE
|
|
155
|
-
- ✅ Automatic update notifications
|
|
156
|
-
- ✅ Version selection in Library Manager
|
|
157
|
-
- ✅ Integration with Arduino's ecosystem
|
|
158
|
-
|
|
159
|
-
### For Maintainers
|
|
160
|
-
- ✅ Wider user reach
|
|
161
|
-
- ✅ Automatic version indexing
|
|
162
|
-
- ✅ Reduced support burden
|
|
163
|
-
- ✅ Professional credibility
|
|
164
|
-
|
|
165
|
-
## Support Resources
|
|
166
|
-
|
|
167
|
-
### Documentation Files
|
|
168
|
-
- **Submission Guide**: `docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md`
|
|
169
|
-
- **Submission Template**: `.github/ARDUINO_LIBRARY_REGISTRY_SUBMISSION.md`
|
|
170
|
-
- **Release Guide**: `RELEASE_GUIDE.md`
|
|
171
|
-
- **Validation Script**: `scripts/validate-arduino-compliance.sh`
|
|
172
|
-
|
|
173
|
-
### External Resources
|
|
174
|
-
- **Arduino Library Registry**: https://github.com/arduino/library-registry
|
|
175
|
-
- **Submission Guidelines**: https://support.arduino.cc/hc/en-us/articles/360012175419
|
|
176
|
-
- **Library Specification**: https://arduino.github.io/arduino-cli/latest/library-specification/
|
|
177
|
-
|
|
178
|
-
### Getting Help
|
|
179
|
-
- **Issues**: https://github.com/Alteriom/painlessMesh/issues
|
|
180
|
-
- **Discussions**: https://github.com/Alteriom/painlessMesh/discussions
|
|
181
|
-
- **Arduino Forum**: https://forum.arduino.cc/c/using-arduino/libraries/67
|
|
182
|
-
|
|
183
|
-
## Frequently Asked Questions
|
|
184
|
-
|
|
185
|
-
### Q: Why isn't this automatic?
|
|
186
|
-
**A**: Arduino Library Manager requires one-time manual submission to their registry repository. After approval, all future releases are automatically indexed.
|
|
187
|
-
|
|
188
|
-
### Q: How long does approval take?
|
|
189
|
-
**A**: Typically 1-2 weeks, but can vary depending on the Arduino team's review queue.
|
|
190
|
-
|
|
191
|
-
### Q: Will this break existing users?
|
|
192
|
-
**A**: No. Users already using PlatformIO, manual installation, or NPM will continue working. This only adds Arduino IDE support.
|
|
193
|
-
|
|
194
|
-
### Q: What if the submission is rejected?
|
|
195
|
-
**A**: Unlikely, as all requirements are met. If issues are found, the Arduino team will provide feedback to address them.
|
|
196
|
-
|
|
197
|
-
### Q: Do we need to update library.properties?
|
|
198
|
-
**A**: No. The current library.properties is compliant and ready for submission.
|
|
199
|
-
|
|
200
|
-
## Next Steps Summary
|
|
201
|
-
|
|
202
|
-
**For Repository Maintainer:**
|
|
203
|
-
1. Review `.github/ARDUINO_LIBRARY_REGISTRY_SUBMISSION.md`
|
|
204
|
-
2. Create issue at https://github.com/arduino/library-registry
|
|
205
|
-
3. Monitor issue for Arduino team feedback
|
|
206
|
-
4. Verify library appears in Arduino IDE after approval
|
|
207
|
-
|
|
208
|
-
**For Users (Current):**
|
|
209
|
-
- Use PlatformIO, manual ZIP, or git clone installation
|
|
210
|
-
- All features and updates available via these methods
|
|
211
|
-
- Arduino IDE support coming after registration
|
|
212
|
-
|
|
213
|
-
**For Future:**
|
|
214
|
-
- After registration, Arduino IDE installation works automatically
|
|
215
|
-
- No additional work needed for future releases
|
|
216
|
-
- Semantic version tags automatically indexed
|
|
217
|
-
|
|
218
|
-
---
|
|
219
|
-
|
|
220
|
-
## Summary
|
|
221
|
-
|
|
222
|
-
✅ **Problem Identified**: Library not in Arduino Library Manager registry
|
|
223
|
-
✅ **Solution Prepared**: Documentation and submission template ready
|
|
224
|
-
✅ **Requirements Met**: All compliance checks passing
|
|
225
|
-
✅ **Action Required**: One-time manual submission by maintainer
|
|
226
|
-
✅ **Workarounds Available**: PlatformIO, ZIP, git clone all functional
|
|
227
|
-
✅ **Future Automatic**: After registration, all releases auto-indexed
|
|
228
|
-
|
|
229
|
-
**Estimated Resolution**: 1-3 weeks after submission
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
# Arduino Library Manager - Library Name Fix
|
|
2
|
-
|
|
3
|
-
## Issue Resolution Summary
|
|
4
|
-
|
|
5
|
-
**Date**: November 11, 2025
|
|
6
|
-
**Issue**: Arduino IDE showing version 1.6.1 instead of current version 1.8.2
|
|
7
|
-
**Status**: ✅ **RESOLVED**
|
|
8
|
-
|
|
9
|
-
## Problem Analysis
|
|
10
|
-
|
|
11
|
-
### Initial Diagnosis (Incorrect)
|
|
12
|
-
Initially believed the library was not registered in Arduino Library Manager.
|
|
13
|
-
|
|
14
|
-
### Actual Root Cause (Correct)
|
|
15
|
-
The library IS registered, but the library name changed between releases:
|
|
16
|
-
|
|
17
|
-
| Version | Library Name | Arduino Indexing |
|
|
18
|
-
|---------|-------------|------------------|
|
|
19
|
-
| v1.6.1 (Sept 2025) | `Alteriom PainlessMesh` | ✅ Indexed |
|
|
20
|
-
| v1.7.0 - v1.8.2 | `AlteriomPainlessMesh` | ❌ Not indexed |
|
|
21
|
-
|
|
22
|
-
**Arduino Library Manager Requirement**: Library names must remain consistent after registration.
|
|
23
|
-
|
|
24
|
-
When the name changed from `Alteriom PainlessMesh` (with space) to `AlteriomPainlessMesh` (no space), the Arduino indexer stopped recognizing new releases as updates to the registered library.
|
|
25
|
-
|
|
26
|
-
## Solution Applied
|
|
27
|
-
|
|
28
|
-
### Change Made
|
|
29
|
-
Restored the library name in `library.properties` to match the original registration:
|
|
30
|
-
|
|
31
|
-
```diff
|
|
32
|
-
- name=AlteriomPainlessMesh
|
|
33
|
-
+ name=Alteriom PainlessMesh
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Verification
|
|
37
|
-
```bash
|
|
38
|
-
# v1.6.1 (last indexed version)
|
|
39
|
-
name=Alteriom PainlessMesh
|
|
40
|
-
|
|
41
|
-
# Current (fixed)
|
|
42
|
-
name=Alteriom PainlessMesh
|
|
43
|
-
|
|
44
|
-
# Result: ✓ Names match
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Impact & Timeline
|
|
48
|
-
|
|
49
|
-
### Immediate
|
|
50
|
-
- ✅ Library name corrected in repository
|
|
51
|
-
- ✅ Validation script updated to detect this issue
|
|
52
|
-
- ✅ Documentation updated with correct information
|
|
53
|
-
|
|
54
|
-
### Next 24-48 Hours
|
|
55
|
-
- Arduino Library Manager will detect next release (v1.8.3 or v1.9.0)
|
|
56
|
-
- New version will appear in Arduino IDE Library Manager
|
|
57
|
-
- Users will see update notification
|
|
58
|
-
|
|
59
|
-
### Going Forward
|
|
60
|
-
- All future releases will be automatically indexed
|
|
61
|
-
- No manual intervention required
|
|
62
|
-
- Library Manager will show latest versions within 24-48 hours of each GitHub release
|
|
63
|
-
|
|
64
|
-
## Technical Details
|
|
65
|
-
|
|
66
|
-
### Arduino Library Registry Status
|
|
67
|
-
- **Registered**: ✅ Yes
|
|
68
|
-
- **Repository URL**: https://github.com/Alteriom/painlessMesh
|
|
69
|
-
- **Registry Entry**: https://github.com/arduino/library-registry (repositories.txt)
|
|
70
|
-
- **Original Registration Name**: `Alteriom PainlessMesh`
|
|
71
|
-
|
|
72
|
-
### How Arduino Library Manager Works
|
|
73
|
-
1. Library is registered once in arduino/library-registry
|
|
74
|
-
2. Arduino indexer checks registered repositories for new releases every 24-48 hours
|
|
75
|
-
3. For each new release tag, indexer reads `library.properties`
|
|
76
|
-
4. **Critical**: Library name in `library.properties` must match original registration
|
|
77
|
-
5. If name matches, new version is added to index
|
|
78
|
-
6. If name doesn't match, release is ignored
|
|
79
|
-
|
|
80
|
-
### Why Name Changed
|
|
81
|
-
Between v1.6.1 and v1.7.0, the library name was changed (likely to remove the space for URL compatibility). However, this broke Arduino Library Manager indexing.
|
|
82
|
-
|
|
83
|
-
### Versions Affected
|
|
84
|
-
**Not Indexed** (due to name mismatch):
|
|
85
|
-
- v1.7.0, v1.7.1, v1.7.2, v1.7.3, v1.7.4, v1.7.5, v1.7.6, v1.7.7, v1.7.8, v1.7.9
|
|
86
|
-
- v1.8.0, v1.8.1, v1.8.2
|
|
87
|
-
|
|
88
|
-
**Will Be Indexed** (after fix):
|
|
89
|
-
- v1.8.3+ (any future releases with corrected name)
|
|
90
|
-
|
|
91
|
-
## What Users Will See
|
|
92
|
-
|
|
93
|
-
### Before Fix
|
|
94
|
-
```
|
|
95
|
-
Arduino IDE Library Manager:
|
|
96
|
-
┌─────────────────────────────────┐
|
|
97
|
-
│ Alteriom PainlessMesh │
|
|
98
|
-
│ Version: 1.6.1 │
|
|
99
|
-
│ [Installed] │
|
|
100
|
-
└─────────────────────────────────┘
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### After Fix (24-48 hours after v1.8.3 release)
|
|
104
|
-
```
|
|
105
|
-
Arduino IDE Library Manager:
|
|
106
|
-
┌─────────────────────────────────┐
|
|
107
|
-
│ Alteriom PainlessMesh │
|
|
108
|
-
│ Version: 1.8.3 (Update available)│
|
|
109
|
-
│ [Update] │
|
|
110
|
-
└─────────────────────────────────┘
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
## Validation
|
|
114
|
-
|
|
115
|
-
### Automated Check
|
|
116
|
-
Run the validation script to confirm library name is correct:
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
./scripts/validate-arduino-compliance.sh
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
Expected output:
|
|
123
|
-
```
|
|
124
|
-
Checking library name format... ✓ CORRECT (name='Alteriom PainlessMesh')
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Manual Verification
|
|
128
|
-
Compare current name with v1.6.1:
|
|
129
|
-
|
|
130
|
-
```bash
|
|
131
|
-
# Current
|
|
132
|
-
grep "^name=" library.properties
|
|
133
|
-
# Output: name=Alteriom PainlessMesh
|
|
134
|
-
|
|
135
|
-
# v1.6.1 (last indexed)
|
|
136
|
-
curl -s "https://raw.githubusercontent.com/Alteriom/painlessMesh/v1.6.1/library.properties" | grep "^name="
|
|
137
|
-
# Output: name=Alteriom PainlessMesh
|
|
138
|
-
|
|
139
|
-
# They should match ✓
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Lessons Learned
|
|
143
|
-
|
|
144
|
-
### For Library Maintainers
|
|
145
|
-
1. **Never change library name** after Arduino Library Manager registration
|
|
146
|
-
2. Library name must remain exactly the same (including spaces, capitalization)
|
|
147
|
-
3. Use validation scripts to catch name changes before release
|
|
148
|
-
4. Check Arduino Library Manager indexing after each release
|
|
149
|
-
|
|
150
|
-
### For This Repository
|
|
151
|
-
1. Added library name validation to compliance script
|
|
152
|
-
2. Documented the requirement clearly in release guide
|
|
153
|
-
3. This issue is now prevented by automated checks
|
|
154
|
-
|
|
155
|
-
## Related Files
|
|
156
|
-
|
|
157
|
-
### Modified Files (Commit 5065fa5)
|
|
158
|
-
- `library.properties` - Restored correct library name
|
|
159
|
-
- `docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md` - Updated with resolution
|
|
160
|
-
- `README.md` - Fixed status and explanation
|
|
161
|
-
- `RELEASE_GUIDE.md` - Corrected registration information
|
|
162
|
-
- `ARDUINO_IDE_VERSION_FIX_SUMMARY.md` - Updated resolution details
|
|
163
|
-
- `scripts/validate-arduino-compliance.sh` - Added name consistency check
|
|
164
|
-
|
|
165
|
-
### Documentation
|
|
166
|
-
- `docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md` - Complete guide
|
|
167
|
-
- `ARDUINO_IDE_VERSION_FIX_SUMMARY.md` - Issue summary
|
|
168
|
-
- This file - Detailed resolution documentation
|
|
169
|
-
|
|
170
|
-
## References
|
|
171
|
-
|
|
172
|
-
### Arduino Documentation
|
|
173
|
-
- [Arduino Library Manager FAQ](https://github.com/arduino/library-registry/blob/main/FAQ.md)
|
|
174
|
-
- [Library Specification](https://arduino.github.io/arduino-cli/latest/library-specification/)
|
|
175
|
-
- [Why libraries aren't updated](https://github.com/arduino/library-registry/issues/1002)
|
|
176
|
-
|
|
177
|
-
### Repository Links
|
|
178
|
-
- [Arduino Library Registry](https://github.com/arduino/library-registry)
|
|
179
|
-
- [Library Registry repositories.txt](https://github.com/arduino/library-registry/blob/main/repositories.txt)
|
|
180
|
-
- [This Repository](https://github.com/Alteriom/painlessMesh)
|
|
181
|
-
|
|
182
|
-
## Credits
|
|
183
|
-
|
|
184
|
-
**Issue Identified By**: @sparck75
|
|
185
|
-
**Resolution**: GitHub Copilot
|
|
186
|
-
**Date**: November 11, 2025
|
|
187
|
-
**Commit**: 5065fa5
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## Summary
|
|
192
|
-
|
|
193
|
-
✅ **Issue**: Library name changed, breaking Arduino indexing
|
|
194
|
-
✅ **Fix**: Restored original name with space
|
|
195
|
-
✅ **Result**: Automatic indexing will resume with next release
|
|
196
|
-
✅ **Timeline**: 24-48 hours after v1.8.3+ release
|
|
197
|
-
✅ **Prevention**: Validation script now checks library name
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
# 🚨 MESH CONNECTION CRASH - QUICK REFERENCE
|
|
2
|
-
|
|
3
|
-
**Issue:** `assert failed: vTaskPriorityDisinheritAfterTimeout`
|
|
4
|
-
**When:** Sensor nodes connect to mesh
|
|
5
|
-
**Platform:** ESP32 only
|
|
6
|
-
**Cause:** painlessMesh library (NOT Build 8015)
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## ⚡ FASTEST FIX (5 min)
|
|
11
|
-
|
|
12
|
-
**File:** `src/painlessmesh/mesh.hpp` **Line 544**
|
|
13
|
-
|
|
14
|
-
```cpp
|
|
15
|
-
// CHANGE THIS:
|
|
16
|
-
return xSemaphoreTake(xSemaphore, (TickType_t)10) == pdTRUE;
|
|
17
|
-
|
|
18
|
-
// TO THIS:
|
|
19
|
-
return xSemaphoreTake(xSemaphore, (TickType_t)100) == pdTRUE;
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
**Then:** `pio run -t upload`
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## 🛡️ PRODUCTION FIX (10 min)
|
|
27
|
-
|
|
28
|
-
**1. Create:** `src/painlessTaskOptions.h`
|
|
29
|
-
```cpp
|
|
30
|
-
#ifndef _PAINLESS_TASK_OPTIONS_H_
|
|
31
|
-
#define _PAINLESS_TASK_OPTIONS_H_
|
|
32
|
-
|
|
33
|
-
#ifdef ESP32
|
|
34
|
-
#define _TASK_THREAD_SAFE
|
|
35
|
-
#define _TASK_PRIORITY
|
|
36
|
-
#endif
|
|
37
|
-
|
|
38
|
-
#endif
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
**2. In your sketch BEFORE** `#include <painlessMesh.h>`:
|
|
42
|
-
```cpp
|
|
43
|
-
#include "painlessTaskOptions.h"
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
**3. Rebuild:** `pio run -t upload`
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## 📊 MONITORING CODE
|
|
51
|
-
|
|
52
|
-
Add to `setup()`:
|
|
53
|
-
```cpp
|
|
54
|
-
mesh.setDebugMsgTypes(ERROR | STARTUP | CONNECTION);
|
|
55
|
-
|
|
56
|
-
mesh.onNewConnection([](uint32_t nodeId) {
|
|
57
|
-
Serial.printf("Node %u: Heap=%d Stack=%d\n",
|
|
58
|
-
nodeId, ESP.getFreeHeap(),
|
|
59
|
-
uxTaskGetStackHighWaterMark(NULL));
|
|
60
|
-
});
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## ✅ TEST CHECKLIST
|
|
66
|
-
|
|
67
|
-
- [ ] Single node connects without crash
|
|
68
|
-
- [ ] 5 nodes connect simultaneously
|
|
69
|
-
- [ ] Rapid connect/disconnect cycles (10x)
|
|
70
|
-
- [ ] 1+ hour sustained operation
|
|
71
|
-
- [ ] Heap remains stable (check every 30 sec)
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## 📚 FULL DOCS
|
|
76
|
-
|
|
77
|
-
- `docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md` - Action plan
|
|
78
|
-
- `docs/troubleshooting/QUICK_FIX_FREERTOS.md` - Emergency fixes
|
|
79
|
-
- `docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md` - Technical details
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## 🎯 KEY POINTS
|
|
84
|
-
|
|
85
|
-
✅ **Apply fix BEFORE testing Build 8015**
|
|
86
|
-
✅ **This is separate from Phase 2 changes**
|
|
87
|
-
✅ **Known library issue - not your code**
|
|
88
|
-
✅ **Choose Option A for speed, Option B for production**
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
**Last Updated:** 2025-10-19
|
|
93
|
-
**Status:** 🟡 Workaround available, library fix pending
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
# ESP32-C6 Compatibility Guide
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
ESP32-C6 is a newer ESP32 variant that requires updated dependencies to work correctly with painlessMesh. This guide addresses common issues and solutions for using painlessMesh on ESP32-C6.
|
|
6
|
-
|
|
7
|
-
## Known Issue: TCP Allocation Crash
|
|
8
|
-
|
|
9
|
-
### Symptom
|
|
10
|
-
|
|
11
|
-
The device crashes on startup or during mesh initialization with the following error:
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
assert failed: tcp_alloc /IDF/components/lwip/lwip/src/core/tcp.c:1854 (Required to lock TCPIP core functionality!)
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
The device enters an endless reboot loop, preventing normal mesh operation.
|
|
18
|
-
|
|
19
|
-
### Root Cause
|
|
20
|
-
|
|
21
|
-
This issue is caused by incompatibility between:
|
|
22
|
-
- ESP32-C6 hardware
|
|
23
|
-
- Arduino ESP32 core v3.1.0 or later
|
|
24
|
-
- Older versions of the AsyncTCP library
|
|
25
|
-
|
|
26
|
-
The newer ESP32 Arduino core enforces stricter LWIP (Lightweight IP) thread safety requirements. Operations that modify TCP/IP data structures must now be protected with proper mutex locking. Older AsyncTCP versions (< v3.3.0) do not implement this locking, causing runtime assertions and crashes.
|
|
27
|
-
|
|
28
|
-
### Solution
|
|
29
|
-
|
|
30
|
-
#### Option 1: Update AsyncTCP Library (Recommended)
|
|
31
|
-
|
|
32
|
-
Use the latest version of AsyncTCP that includes proper LWIP locking:
|
|
33
|
-
|
|
34
|
-
**For PlatformIO:**
|
|
35
|
-
|
|
36
|
-
Update your `platformio.ini`:
|
|
37
|
-
|
|
38
|
-
```ini
|
|
39
|
-
[env:esp32c6]
|
|
40
|
-
platform = espressif32
|
|
41
|
-
board = esp32-c6-devkitc-1 ; or your specific board
|
|
42
|
-
framework = arduino
|
|
43
|
-
|
|
44
|
-
lib_deps =
|
|
45
|
-
https://github.com/Alteriom/painlessMesh.git
|
|
46
|
-
esp32async/AsyncTCP @ ^3.4.7 ; Use latest version with LWIP locking
|
|
47
|
-
bblanchon/ArduinoJson @ ^7.4.2
|
|
48
|
-
arkhipenko/TaskScheduler @ ^4.0.0
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
**For Arduino IDE:**
|
|
52
|
-
|
|
53
|
-
1. Remove any existing AsyncTCP library installation
|
|
54
|
-
2. Download the latest AsyncTCP from: https://github.com/ESP32Async/AsyncTCP
|
|
55
|
-
3. Install using "Sketch" → "Include Library" → "Add .ZIP Library"
|
|
56
|
-
4. **Important:** Do not use the Arduino Library Manager for AsyncTCP, as it may install an outdated version
|
|
57
|
-
|
|
58
|
-
#### Option 2: Downgrade Arduino Core (Temporary Workaround)
|
|
59
|
-
|
|
60
|
-
If you need an immediate solution and cannot update AsyncTCP:
|
|
61
|
-
|
|
62
|
-
1. In Arduino IDE: Tools → Board Manager → ESP32 by Espressif Systems
|
|
63
|
-
2. Install version **3.0.7** instead of 3.1.0+
|
|
64
|
-
3. This is not recommended long-term as you'll miss security updates and new features
|
|
65
|
-
|
|
66
|
-
#### Option 3: Use Recommended Build Flags
|
|
67
|
-
|
|
68
|
-
Add these configuration options to improve stability (PlatformIO):
|
|
69
|
-
|
|
70
|
-
```ini
|
|
71
|
-
build_flags =
|
|
72
|
-
-D CONFIG_ASYNC_TCP_MAX_ACK_TIME=5000
|
|
73
|
-
-D CONFIG_ASYNC_TCP_PRIORITY=10
|
|
74
|
-
-D CONFIG_ASYNC_TCP_QUEUE_SIZE=64
|
|
75
|
-
-D CONFIG_ASYNC_TCP_RUNNING_CORE=1
|
|
76
|
-
-D CONFIG_ASYNC_TCP_STACK_SIZE=4096
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
These flags help maintain proper task scheduling and LWIP event handling.
|
|
80
|
-
|
|
81
|
-
## Verification
|
|
82
|
-
|
|
83
|
-
After applying the fix, verify your setup:
|
|
84
|
-
|
|
85
|
-
1. Upload a simple bridge example
|
|
86
|
-
2. Monitor serial output for clean startup
|
|
87
|
-
3. Check for successful mesh initialization without crashes
|
|
88
|
-
4. Verify mesh connectivity with other nodes
|
|
89
|
-
|
|
90
|
-
Example verification output:
|
|
91
|
-
```
|
|
92
|
-
setLogLevel: ERROR | STARTUP | CONNECTION |
|
|
93
|
-
STARTUP: init(): 1
|
|
94
|
-
STARTUP: stationManual() Starting WiFi connection
|
|
95
|
-
STARTUP: Connection established
|
|
96
|
-
STARTUP: IP address: 192.168.1.100
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
## Additional ESP32-C6 Considerations
|
|
100
|
-
|
|
101
|
-
### Hardware-Specific Notes
|
|
102
|
-
|
|
103
|
-
- ESP32-C6 uses RISC-V architecture (not Xtensa like older ESP32)
|
|
104
|
-
- Built-in WiFi 6 (802.11ax) support - but mesh uses 802.11n
|
|
105
|
-
- Lower power consumption compared to ESP32
|
|
106
|
-
- Different GPIO pinout - verify your pin assignments
|
|
107
|
-
|
|
108
|
-
### Memory Constraints
|
|
109
|
-
|
|
110
|
-
ESP32-C6 typically has:
|
|
111
|
-
- 320 KB SRAM
|
|
112
|
-
- 4 MB Flash (typical configuration)
|
|
113
|
-
|
|
114
|
-
This is adequate for painlessMesh, but be mindful of:
|
|
115
|
-
- Maximum node count in mesh (recommend < 20 nodes)
|
|
116
|
-
- Message queue sizes
|
|
117
|
-
- JSON message complexity
|
|
118
|
-
|
|
119
|
-
### Performance Optimization
|
|
120
|
-
|
|
121
|
-
For best results on ESP32-C6:
|
|
122
|
-
|
|
123
|
-
1. **WiFi Channel Selection**: Use channels 1, 6, or 11 for best performance
|
|
124
|
-
2. **Mesh Size**: Keep mesh networks under 15-20 nodes
|
|
125
|
-
3. **Message Frequency**: Avoid sending messages more than once per second per node
|
|
126
|
-
4. **Power Management**: Consider WiFi power save modes for battery operation
|
|
127
|
-
|
|
128
|
-
## Troubleshooting Checklist
|
|
129
|
-
|
|
130
|
-
If you're still experiencing issues:
|
|
131
|
-
|
|
132
|
-
- [ ] Confirmed AsyncTCP version is 3.3.0 or newer
|
|
133
|
-
- [ ] Removed all old AsyncTCP library installations
|
|
134
|
-
- [ ] Arduino ESP32 core is 3.0.7 or 3.1.0+ with updated AsyncTCP
|
|
135
|
-
- [ ] Verified board definition matches your hardware
|
|
136
|
-
- [ ] Checked serial monitor for actual error messages
|
|
137
|
-
- [ ] Tested with minimal example (examples/basic/basic.ino)
|
|
138
|
-
- [ ] Verified WiFi credentials are correct
|
|
139
|
-
- [ ] Confirmed router and mesh use same WiFi channel (for bridge mode)
|
|
140
|
-
|
|
141
|
-
## References
|
|
142
|
-
|
|
143
|
-
- [AsyncTCP Library (ESP32Async)](https://github.com/ESP32Async/AsyncTCP)
|
|
144
|
-
- [ESP32 Arduino Core Release Notes](https://github.com/espressif/arduino-esp32/releases)
|
|
145
|
-
- [painlessMesh GitHub Issues](https://github.com/Alteriom/painlessMesh/issues)
|
|
146
|
-
|
|
147
|
-
## Related Documentation
|
|
148
|
-
|
|
149
|
-
- [Common Issues](common-issues.md)
|
|
150
|
-
- [FAQ](faq.md)
|
|
151
|
-
- [Bridge to Internet Guide](../../BRIDGE_TO_INTERNET.md)
|
|
152
|
-
- [Debugging Guide](debugging.md)
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
**Last Updated:** 2025-11-05
|
|
157
|
-
**Applies to:** painlessMesh v1.7.8+, ESP32-C6, Arduino ESP32 Core 3.0+
|