@alteriom/painlessmesh 1.6.1 → 1.7.2

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.
Files changed (129) hide show
  1. package/CHANGELOG.md +380 -143
  2. package/LICENSE +674 -674
  3. package/README.md +477 -434
  4. package/RELEASE_GUIDE.md +504 -418
  5. package/docs/DOCUMENTATION_MIGRATION_PLAN.md +175 -175
  6. package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +1062 -0
  7. package/docs/MESH_TOPOLOGY_GUIDE.md +992 -0
  8. package/docs/MESH_TOPOLOGY_PROGRESS.md +422 -0
  9. package/docs/MQTT_BRIDGE_COMMANDS.md +894 -0
  10. package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +324 -0
  11. package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +576 -0
  12. package/docs/MQTT_SCHEMA_COMPLIANCE.md +285 -0
  13. package/docs/MQTT_SCHEMA_PROPOSALS.md +446 -0
  14. package/docs/MQTT_SCHEMA_REVIEW.md +690 -0
  15. package/docs/OTA_COMMANDS_REFERENCE.md +554 -0
  16. package/docs/PHASE1_GUIDE.md +349 -0
  17. package/docs/PHASE2_GUIDE.md +543 -0
  18. package/docs/README.md +77 -70
  19. package/docs/SCHEMA_VALIDATION_CHECKLIST.md +222 -0
  20. package/docs/alteriom/overview.md +507 -507
  21. package/docs/api/core-api.md +606 -606
  22. package/docs/architecture/mesh-architecture.md +378 -378
  23. package/docs/architecture/plugin-system.md +516 -516
  24. package/docs/getting-started/first-mesh.md +409 -409
  25. package/docs/getting-started/installation.md +274 -274
  26. package/docs/getting-started/quickstart.md +157 -157
  27. package/docs/improvements/FEATURE_PROPOSALS.md +337 -0
  28. package/docs/improvements/PHASE1_IMPLEMENTATION.md +325 -0
  29. package/docs/improvements/PHASE2_IMPLEMENTATION.md +567 -0
  30. package/docs/improvements/README.md +86 -68
  31. package/docs/improvements/ota-and-status-enhancements.md +911 -0
  32. package/docs/improvements/ota-status-architecture-diagrams.md +658 -0
  33. package/docs/improvements/ota-status-quick-reference.md +284 -0
  34. package/docs/platformio-publishing.md +255 -0
  35. package/docs/platformio-setup-summary.md +121 -0
  36. package/docs/troubleshooting/common-issues.md +520 -520
  37. package/docs/troubleshooting/faq.md +472 -472
  38. package/docs/tutorials/basic-examples.md +717 -717
  39. package/docs/wiki/API-Reference.md +245 -245
  40. package/docs/wiki/Complete-Documentation.md +122 -122
  41. package/examples/alteriom/README.md +139 -81
  42. package/examples/alteriom/alteriom.ino +186 -185
  43. package/examples/alteriom/alteriom_sensor_package.hpp +240 -127
  44. package/examples/alteriom/platformio.ini +24 -24
  45. package/examples/alteriomImproved/alteriom_sensor_package.hpp +224 -0
  46. package/examples/{alteriom → alteriomImproved}/improved_sensor_node.ino +245 -245
  47. package/examples/alteriomImproved/platformio.ini +25 -0
  48. package/examples/alteriomPhase1/alteriom_sensor_package.hpp +224 -0
  49. package/examples/alteriomPhase1/phase1_features.ino +242 -0
  50. package/examples/alteriomPhase1/platformio.ini +25 -0
  51. package/examples/alteriomPhase2/alteriom_sensor_package.hpp +224 -0
  52. package/examples/alteriomPhase2/phase2_features.ino +186 -0
  53. package/examples/alteriomPhase2/platformio.ini +25 -0
  54. package/examples/{alteriom → alteriomSensorNode}/alteriom_sensor_node.ino +183 -183
  55. package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +224 -0
  56. package/examples/alteriomSensorNode/platformio.ini +25 -0
  57. package/examples/basic/basic.ino +66 -66
  58. package/examples/basic/platformio.ini +25 -25
  59. package/examples/bridge/bridge.ino +51 -51
  60. package/examples/bridge/mesh_event_publisher.hpp +253 -0
  61. package/examples/bridge/mesh_topology_reporter.hpp +303 -0
  62. package/examples/bridge/mqtt_command_bridge.hpp +459 -0
  63. package/examples/bridge/mqtt_status_bridge.hpp +519 -0
  64. package/examples/bridge/platformio.ini +25 -25
  65. package/examples/echoNode/echoNode.ino +33 -33
  66. package/examples/echoNode/platformio.ini +25 -25
  67. package/examples/logClient/logClient.ino +109 -109
  68. package/examples/logClient/platformio.ini +25 -25
  69. package/examples/logServer/logServer.ino +81 -81
  70. package/examples/logServer/platformio.ini +25 -25
  71. package/examples/meshCommandNode/alteriom_sensor_package.hpp +235 -0
  72. package/examples/meshCommandNode/meshCommandNode.ino +263 -0
  73. package/examples/meshCommandNode/platformio.ini +25 -0
  74. package/examples/mqttBridge/mqttBridge.ino +118 -118
  75. package/examples/mqttBridge/platformio.ini +26 -26
  76. package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +235 -0
  77. package/examples/mqttCommandBridge/mesh_event_publisher.hpp +253 -0
  78. package/examples/mqttCommandBridge/mesh_topology_reporter.hpp +303 -0
  79. package/examples/mqttCommandBridge/mqttCommandBridge.ino +252 -0
  80. package/examples/mqttCommandBridge/mqtt_command_bridge.hpp +459 -0
  81. package/examples/mqttCommandBridge/platformio.ini +26 -0
  82. package/examples/mqttStatusBridge/mqttStatusBridge.ino +216 -0
  83. package/examples/mqttStatusBridge/mqtt_status_bridge.hpp +522 -0
  84. package/examples/mqttStatusBridge/platformio.ini +26 -0
  85. package/examples/mqttTopologyTest/README.md +467 -0
  86. package/examples/mqttTopologyTest/mqttTopologyTest.ino +748 -0
  87. package/examples/mqttTopologyTest/platformio.ini +26 -0
  88. package/examples/namedMesh/namedMesh.ino +97 -97
  89. package/examples/namedMesh/platformio.ini +25 -25
  90. package/examples/otaReceiver/otaReceiver.ino +79 -79
  91. package/examples/otaReceiver/platformio.ini +25 -25
  92. package/examples/otaSender/otaSender.ino +160 -151
  93. package/examples/otaSender/platformio.ini +25 -25
  94. package/examples/startHere/platformio.ini +25 -25
  95. package/examples/startHere/startHere.ino +159 -159
  96. package/examples/webServer/platformio.ini +27 -27
  97. package/examples/webServer/webServer.ino +89 -89
  98. package/keywords.txt +48 -48
  99. package/library.json +55 -34
  100. package/library.properties +10 -10
  101. package/package.json +86 -78
  102. package/src/AlteriomPainlessMesh.h +97 -97
  103. package/src/arduino/wifi.hpp +365 -365
  104. package/src/boost/asynctcp.hpp +279 -279
  105. package/src/painlessMesh.h +70 -70
  106. package/src/painlessMeshSTA.cpp +236 -236
  107. package/src/painlessMeshSTA.h +58 -58
  108. package/src/painlessTaskOptions.h +4 -4
  109. package/src/painlessmesh/base64.hpp +111 -111
  110. package/src/painlessmesh/buffer.hpp +229 -229
  111. package/src/painlessmesh/callback.hpp +91 -91
  112. package/src/painlessmesh/configuration.hpp +77 -77
  113. package/src/painlessmesh/connection.hpp +192 -192
  114. package/src/painlessmesh/layout.hpp +188 -188
  115. package/src/painlessmesh/logger.hpp +158 -158
  116. package/src/painlessmesh/memory.hpp +119 -119
  117. package/src/painlessmesh/mesh.hpp +761 -560
  118. package/src/painlessmesh/metrics.hpp +322 -322
  119. package/src/painlessmesh/ntp.hpp +263 -263
  120. package/src/painlessmesh/ota.hpp +582 -553
  121. package/src/painlessmesh/plugin.hpp +188 -188
  122. package/src/painlessmesh/protocol.hpp +813 -813
  123. package/src/painlessmesh/router.hpp +322 -322
  124. package/src/painlessmesh/tcp.hpp +71 -71
  125. package/src/painlessmesh/validation.hpp +238 -238
  126. package/src/plugin/performance.hpp +214 -214
  127. package/src/plugin/remote.hpp +64 -64
  128. package/src/scheduler.cpp +10 -10
  129. package/src/wifi.cpp +2 -2
@@ -1,275 +1,275 @@
1
- # Installation Guide
2
-
3
- This guide covers all the different ways to install and set up painlessMesh for your development environment.
4
-
5
- ## Arduino IDE Installation
6
-
7
- ### Method 1: Library Manager (Recommended)
8
-
9
- 1. Open Arduino IDE
10
- 2. Go to **Sketch → Include Library → Manage Libraries**
11
- 3. Search for "painlessMesh"
12
- 4. Install the latest version by "Coopdis"
13
- 5. Install dependencies when prompted:
14
- - ArduinoJson
15
- - TaskScheduler
16
-
17
- ### Method 2: Manual Installation
18
-
19
- 1. Download the latest release from [GitHub](https://github.com/Alteriom/painlessMesh/releases)
20
- 2. Extract the ZIP file
21
- 3. Copy the `painlessMesh` folder to your Arduino libraries directory:
22
- - **Windows**: `Documents\Arduino\libraries\`
23
- - **macOS**: `~/Documents/Arduino/libraries/`
24
- - **Linux**: `~/Arduino/libraries/`
25
- 4. Restart Arduino IDE
26
-
27
- ## PlatformIO Installation
28
-
29
- ### Method 1: platformio.ini (Recommended)
30
-
31
- Add to your `platformio.ini` file:
32
-
33
- ```ini
34
- [env:esp32dev]
35
- platform = espressif32
36
- board = esp32dev
37
- framework = arduino
38
- lib_deps =
39
- painlessMesh
40
- bblanchon/ArduinoJson@^6.21.3
41
- arkhipenko/TaskScheduler@^3.7.0
42
-
43
- # For ESP8266
44
- [env:esp8266]
45
- platform = espressif8266
46
- board = nodemcuv2
47
- framework = arduino
48
- lib_deps =
49
- painlessMesh
50
- bblanchon/ArduinoJson@^6.21.3
51
- arkhipenko/TaskScheduler@^3.7.0
52
- ```
53
-
54
- ### Method 2: PlatformIO Library Manager
55
-
56
- ```bash
57
- # Install via PlatformIO CLI
58
- pio lib install "painlessMesh"
59
-
60
- # Or install specific version
61
- pio lib install "painlessMesh@1.5.0"
62
- ```
63
-
64
- ## Board Support
65
-
66
- ### ESP32 Boards
67
- painlessMesh supports all ESP32 variants:
68
- - ESP32 DevKit
69
- - ESP32-S2
70
- - ESP32-S3
71
- - ESP32-C3
72
- - ESP32-WROOM
73
- - ESP32-WROVER
74
-
75
- ### ESP8266 Boards
76
- All ESP8266 boards are supported:
77
- - NodeMCU
78
- - Wemos D1 Mini
79
- - ESP-12E/F
80
- - ESP-01 (with limitations due to memory)
81
-
82
- ## Dependencies
83
-
84
- painlessMesh requires these libraries:
85
-
86
- ### Core Dependencies
87
- - **ArduinoJson** (v6.x) - JSON parsing and generation
88
- - **TaskScheduler** (v3.x) - Task scheduling system
89
-
90
- ### Platform Dependencies
91
- - **ESP32 Arduino Core** (v2.0.0+) for ESP32 boards
92
- - **ESP8266 Arduino Core** (v3.0.0+) for ESP8266 boards
93
-
94
- ## Development Environment Setup
95
-
96
- ### For Library Development
97
-
98
- If you plan to contribute to painlessMesh or need the latest development version:
99
-
100
- ```bash
101
- # Clone the repository
102
- git clone https://github.com/Alteriom/painlessMesh.git
103
- cd painlessMesh
104
-
105
- # Initialize submodules
106
- git submodule init
107
- git submodule update
108
-
109
- # Install test dependencies (for desktop testing)
110
- cd test
111
- git clone https://github.com/bblanchon/ArduinoJson.git
112
- git clone https://github.com/arkhipenko/TaskScheduler.git
113
- cd ..
114
-
115
- # Build tests (requires CMake and Ninja)
116
- cmake -G Ninja .
117
- ninja
118
- ```
119
-
120
- ### Desktop Testing (Linux/macOS/Windows)
121
-
122
- For development and testing on your computer:
123
-
124
- #### Requirements
125
- - CMake 3.10+
126
- - Ninja build system
127
- - Boost libraries
128
- - C++14 compatible compiler
129
-
130
- #### Ubuntu/Debian
131
- ```bash
132
- sudo apt update
133
- sudo apt install cmake ninja-build libboost-all-dev build-essential
134
-
135
- # Clone and build
136
- git clone https://github.com/Alteriom/painlessMesh.git
137
- cd painlessMesh
138
- git submodule update --init
139
- cmake -G Ninja .
140
- ninja
141
-
142
- # Run tests
143
- run-parts --regex catch_ bin/
144
- ```
145
-
146
- #### macOS
147
- ```bash
148
- # Install dependencies
149
- brew install cmake ninja boost
150
-
151
- # Clone and build
152
- git clone https://github.com/Alteriom/painlessMesh.git
153
- cd painlessMesh
154
- git submodule update --init
155
- cmake -G Ninja .
156
- ninja
157
-
158
- # Run tests
159
- run-parts --regex catch_ bin/
160
- ```
161
-
162
- #### Windows
163
- Use Visual Studio with CMake support or install dependencies via vcpkg:
164
-
165
- ```powershell
166
- # Install vcpkg first, then:
167
- vcpkg install boost:x64-windows
168
- cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=path/to/vcpkg.cmake .
169
- ninja
170
- ```
171
-
172
- ## Version Compatibility
173
-
174
- ### Current Stable Version
175
- - **painlessMesh**: 1.5.x
176
- - **ArduinoJson**: 6.21.x
177
- - **TaskScheduler**: 3.7.x
178
-
179
- ### Legacy Support
180
- - painlessMesh 1.4.x - Compatible with older ESP cores
181
- - ArduinoJson 5.x - No longer supported
182
-
183
- ## Memory Requirements
184
-
185
- ### ESP32
186
- - **RAM**: ~50KB minimum for basic mesh functionality
187
- - **Flash**: ~200KB for core library + your application
188
- - **Recommended**: 320KB+ RAM for complex applications
189
-
190
- ### ESP8266
191
- - **RAM**: ~20KB minimum for basic mesh functionality
192
- - **Flash**: ~150KB for core library + your application
193
- - **Recommended**: 80KB+ RAM for stable operation
194
- - **Note**: ESP-01 (512KB flash) may have limitations
195
-
196
- ## Configuration Options
197
-
198
- ### Build Flags
199
-
200
- Add these to your build configuration if needed:
201
-
202
- ```ini
203
- # platformio.ini
204
- build_flags =
205
- -DPAINLESSMESH_ENABLE_DEBUG=1 # Enable debug output
206
- -DPAINLESSMESH_MAX_CONNECTIONS=10 # Maximum connections
207
- -DTASK_SCHEDULER_DEBUG=1 # TaskScheduler debug
208
- ```
209
-
210
- ### Arduino IDE Defines
211
-
212
- Add at the top of your sketch:
213
-
214
- ```cpp
215
- #define PAINLESSMESH_ENABLE_DEBUG 1
216
- #define PAINLESSMESH_MAX_CONNECTIONS 10
217
- ```
218
-
219
- ## IDE-Specific Setup
220
-
221
- ### Visual Studio Code + PlatformIO
222
-
223
- 1. Install the PlatformIO IDE extension
224
- 2. Create new project or open existing
225
- 3. Add library dependencies to `platformio.ini`
226
- 4. Use Ctrl+Shift+P → "PlatformIO: Build" to compile
227
-
228
- ### Arduino IDE 2.0
229
-
230
- 1. Install via Library Manager (same as Arduino IDE 1.x)
231
- 2. Use the new autocomplete features for better development experience
232
- 3. Debugging support available with compatible boards
233
-
234
- ## Verification
235
-
236
- Test your installation with this minimal example:
237
-
238
- ```cpp
239
- #include "painlessMesh.h"
240
-
241
- painlessMesh mesh;
242
-
243
- void setup() {
244
- Serial.begin(115200);
245
- Serial.println("painlessMesh installation test");
246
-
247
- // If this compiles and uploads successfully, installation is correct
248
- mesh.init("TestNetwork", "password", 5555);
249
- Serial.println("painlessMesh initialized successfully!");
250
- }
251
-
252
- void loop() {
253
- mesh.update();
254
- }
255
- ```
256
-
257
- If this compiles and uploads without errors, your installation is complete!
258
-
259
- ## Next Steps
260
-
261
- - Try the [Quick Start Guide](quickstart.md) to create your first mesh
262
- - Explore [Basic Examples](../tutorials/basic-examples.md)
263
- - Read about [Mesh Architecture](../architecture/mesh-architecture.md)
264
-
265
- ## Troubleshooting Installation
266
-
267
- **Library not found errors?**
268
- - Check that ArduinoJson and TaskScheduler are installed
269
- - Verify library versions are compatible
270
- - Try cleaning and rebuilding your project
271
-
272
- **Compilation errors?**
273
- - Ensure you're using a supported ESP32/ESP8266 core version
274
- - Check that your board selection matches your hardware
1
+ # Installation Guide
2
+
3
+ This guide covers all the different ways to install and set up painlessMesh for your development environment.
4
+
5
+ ## Arduino IDE Installation
6
+
7
+ ### Method 1: Library Manager (Recommended)
8
+
9
+ 1. Open Arduino IDE
10
+ 2. Go to **Sketch → Include Library → Manage Libraries**
11
+ 3. Search for "painlessMesh"
12
+ 4. Install the latest version by "Coopdis"
13
+ 5. Install dependencies when prompted:
14
+ - ArduinoJson
15
+ - TaskScheduler
16
+
17
+ ### Method 2: Manual Installation
18
+
19
+ 1. Download the latest release from [GitHub](https://github.com/Alteriom/painlessMesh/releases)
20
+ 2. Extract the ZIP file
21
+ 3. Copy the `painlessMesh` folder to your Arduino libraries directory:
22
+ - **Windows**: `Documents\Arduino\libraries\`
23
+ - **macOS**: `~/Documents/Arduino/libraries/`
24
+ - **Linux**: `~/Arduino/libraries/`
25
+ 4. Restart Arduino IDE
26
+
27
+ ## PlatformIO Installation
28
+
29
+ ### Method 1: platformio.ini (Recommended)
30
+
31
+ Add to your `platformio.ini` file:
32
+
33
+ ```ini
34
+ [env:esp32dev]
35
+ platform = espressif32
36
+ board = esp32dev
37
+ framework = arduino
38
+ lib_deps =
39
+ painlessMesh
40
+ bblanchon/ArduinoJson@^6.21.3
41
+ arkhipenko/TaskScheduler@^3.7.0
42
+
43
+ # For ESP8266
44
+ [env:esp8266]
45
+ platform = espressif8266
46
+ board = nodemcuv2
47
+ framework = arduino
48
+ lib_deps =
49
+ painlessMesh
50
+ bblanchon/ArduinoJson@^6.21.3
51
+ arkhipenko/TaskScheduler@^3.7.0
52
+ ```
53
+
54
+ ### Method 2: PlatformIO Library Manager
55
+
56
+ ```bash
57
+ # Install via PlatformIO CLI
58
+ pio lib install "painlessMesh"
59
+
60
+ # Or install specific version
61
+ pio lib install "painlessMesh@1.5.0"
62
+ ```
63
+
64
+ ## Board Support
65
+
66
+ ### ESP32 Boards
67
+ painlessMesh supports all ESP32 variants:
68
+ - ESP32 DevKit
69
+ - ESP32-S2
70
+ - ESP32-S3
71
+ - ESP32-C3
72
+ - ESP32-WROOM
73
+ - ESP32-WROVER
74
+
75
+ ### ESP8266 Boards
76
+ All ESP8266 boards are supported:
77
+ - NodeMCU
78
+ - Wemos D1 Mini
79
+ - ESP-12E/F
80
+ - ESP-01 (with limitations due to memory)
81
+
82
+ ## Dependencies
83
+
84
+ painlessMesh requires these libraries:
85
+
86
+ ### Core Dependencies
87
+ - **ArduinoJson** (v6.x) - JSON parsing and generation
88
+ - **TaskScheduler** (v3.x) - Task scheduling system
89
+
90
+ ### Platform Dependencies
91
+ - **ESP32 Arduino Core** (v2.0.0+) for ESP32 boards
92
+ - **ESP8266 Arduino Core** (v3.0.0+) for ESP8266 boards
93
+
94
+ ## Development Environment Setup
95
+
96
+ ### For Library Development
97
+
98
+ If you plan to contribute to painlessMesh or need the latest development version:
99
+
100
+ ```bash
101
+ # Clone the repository
102
+ git clone https://github.com/Alteriom/painlessMesh.git
103
+ cd painlessMesh
104
+
105
+ # Initialize submodules
106
+ git submodule init
107
+ git submodule update
108
+
109
+ # Install test dependencies (for desktop testing)
110
+ cd test
111
+ git clone https://github.com/bblanchon/ArduinoJson.git
112
+ git clone https://github.com/arkhipenko/TaskScheduler.git
113
+ cd ..
114
+
115
+ # Build tests (requires CMake and Ninja)
116
+ cmake -G Ninja .
117
+ ninja
118
+ ```
119
+
120
+ ### Desktop Testing (Linux/macOS/Windows)
121
+
122
+ For development and testing on your computer:
123
+
124
+ #### Requirements
125
+ - CMake 3.10+
126
+ - Ninja build system
127
+ - Boost libraries
128
+ - C++14 compatible compiler
129
+
130
+ #### Ubuntu/Debian
131
+ ```bash
132
+ sudo apt update
133
+ sudo apt install cmake ninja-build libboost-all-dev build-essential
134
+
135
+ # Clone and build
136
+ git clone https://github.com/Alteriom/painlessMesh.git
137
+ cd painlessMesh
138
+ git submodule update --init
139
+ cmake -G Ninja .
140
+ ninja
141
+
142
+ # Run tests
143
+ run-parts --regex catch_ bin/
144
+ ```
145
+
146
+ #### macOS
147
+ ```bash
148
+ # Install dependencies
149
+ brew install cmake ninja boost
150
+
151
+ # Clone and build
152
+ git clone https://github.com/Alteriom/painlessMesh.git
153
+ cd painlessMesh
154
+ git submodule update --init
155
+ cmake -G Ninja .
156
+ ninja
157
+
158
+ # Run tests
159
+ run-parts --regex catch_ bin/
160
+ ```
161
+
162
+ #### Windows
163
+ Use Visual Studio with CMake support or install dependencies via vcpkg:
164
+
165
+ ```powershell
166
+ # Install vcpkg first, then:
167
+ vcpkg install boost:x64-windows
168
+ cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=path/to/vcpkg.cmake .
169
+ ninja
170
+ ```
171
+
172
+ ## Version Compatibility
173
+
174
+ ### Current Stable Version
175
+ - **painlessMesh**: 1.5.x
176
+ - **ArduinoJson**: 6.21.x
177
+ - **TaskScheduler**: 3.7.x
178
+
179
+ ### Legacy Support
180
+ - painlessMesh 1.4.x - Compatible with older ESP cores
181
+ - ArduinoJson 5.x - No longer supported
182
+
183
+ ## Memory Requirements
184
+
185
+ ### ESP32
186
+ - **RAM**: ~50KB minimum for basic mesh functionality
187
+ - **Flash**: ~200KB for core library + your application
188
+ - **Recommended**: 320KB+ RAM for complex applications
189
+
190
+ ### ESP8266
191
+ - **RAM**: ~20KB minimum for basic mesh functionality
192
+ - **Flash**: ~150KB for core library + your application
193
+ - **Recommended**: 80KB+ RAM for stable operation
194
+ - **Note**: ESP-01 (512KB flash) may have limitations
195
+
196
+ ## Configuration Options
197
+
198
+ ### Build Flags
199
+
200
+ Add these to your build configuration if needed:
201
+
202
+ ```ini
203
+ # platformio.ini
204
+ build_flags =
205
+ -DPAINLESSMESH_ENABLE_DEBUG=1 # Enable debug output
206
+ -DPAINLESSMESH_MAX_CONNECTIONS=10 # Maximum connections
207
+ -DTASK_SCHEDULER_DEBUG=1 # TaskScheduler debug
208
+ ```
209
+
210
+ ### Arduino IDE Defines
211
+
212
+ Add at the top of your sketch:
213
+
214
+ ```cpp
215
+ #define PAINLESSMESH_ENABLE_DEBUG 1
216
+ #define PAINLESSMESH_MAX_CONNECTIONS 10
217
+ ```
218
+
219
+ ## IDE-Specific Setup
220
+
221
+ ### Visual Studio Code + PlatformIO
222
+
223
+ 1. Install the PlatformIO IDE extension
224
+ 2. Create new project or open existing
225
+ 3. Add library dependencies to `platformio.ini`
226
+ 4. Use Ctrl+Shift+P → "PlatformIO: Build" to compile
227
+
228
+ ### Arduino IDE 2.0
229
+
230
+ 1. Install via Library Manager (same as Arduino IDE 1.x)
231
+ 2. Use the new autocomplete features for better development experience
232
+ 3. Debugging support available with compatible boards
233
+
234
+ ## Verification
235
+
236
+ Test your installation with this minimal example:
237
+
238
+ ```cpp
239
+ #include "painlessMesh.h"
240
+
241
+ painlessMesh mesh;
242
+
243
+ void setup() {
244
+ Serial.begin(115200);
245
+ Serial.println("painlessMesh installation test");
246
+
247
+ // If this compiles and uploads successfully, installation is correct
248
+ mesh.init("TestNetwork", "password", 5555);
249
+ Serial.println("painlessMesh initialized successfully!");
250
+ }
251
+
252
+ void loop() {
253
+ mesh.update();
254
+ }
255
+ ```
256
+
257
+ If this compiles and uploads without errors, your installation is complete!
258
+
259
+ ## Next Steps
260
+
261
+ - Try the [Quick Start Guide](quickstart.md) to create your first mesh
262
+ - Explore [Basic Examples](../tutorials/basic-examples.md)
263
+ - Read about [Mesh Architecture](../architecture/mesh-architecture.md)
264
+
265
+ ## Troubleshooting Installation
266
+
267
+ **Library not found errors?**
268
+ - Check that ArduinoJson and TaskScheduler are installed
269
+ - Verify library versions are compatible
270
+ - Try cleaning and rebuilding your project
271
+
272
+ **Compilation errors?**
273
+ - Ensure you're using a supported ESP32/ESP8266 core version
274
+ - Check that your board selection matches your hardware
275
275
  - See [Common Issues](../troubleshooting/common-issues.md) for more help