feat: support D1

This commit is contained in:
2025-08-22 13:13:49 +02:00
parent c0efba8667
commit d7d307e3ce
3 changed files with 48 additions and 17 deletions

View File

@@ -151,10 +151,10 @@ The project requires the following libraries:
### Building
Build the firmware:
Build the firmware for specific chip:
```bash
./ctl.sh build
./ctl.sh build target esp01_1m
```
### Flashing
@@ -162,7 +162,7 @@ Build the firmware:
Flash firmware to a connected device:
```bash
./ctl.sh flash
./ctl.sh flash target esp01_1m
```
### Over-The-Air Updates
@@ -170,13 +170,13 @@ Flash firmware to a connected device:
Update a specific node:
```bash
./ctl.sh ota update 192.168.1.100
./ctl.sh ota update 192.168.1.100 esp01_1m
```
Update all nodes in the cluster:
```bash
./ctl.sh ota all
./ctl.sh ota all esp01_1m
```
### Cluster Management

28
ctl.sh
View File

@@ -9,26 +9,40 @@ function info {
}
function build {
echo "Building project..."
pio run
function target {
echo "Building project for $1..."
pio run -e $1
}
function all {
target esp01_1m
target d1_mini
}
${@:-all}
}
function flash {
echo "Flashing firmware..."
pio run --target upload
function target {
echo "Flashing firmware for $1..."
pio run --target upload -e $1
}
function all {
target esp01_1m
target d1_mini
}
${@:-all}
}
function ota {
function update {
echo "Updating node at $1"
echo "Updating node at $1 with $2... "
curl -X POST \
-F "file=@.pio/build/esp01_1m/firmware.bin" \
-F "file=@.pio/build/$2/firmware.bin" \
http://$1/api/node/update | jq -r '.status'
}
function all {
echo "Updating all nodes..."
curl -s http://$API_NODE/api/cluster/members | jq -r '.members.[].ip' | while read -r ip; do
ota update $ip
ota update $ip $1
done
}
${@:-info}

View File

@@ -8,6 +8,16 @@
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[platformio]
default_envs = esp01_1m
[common]
monitor_speed = 115200
lib_deps =
esp32async/ESPAsyncWebServer@^3.8.0
bblanchon/ArduinoJson@^7.4.2
arkhipenko/TaskScheduler@^3.8.5
[env:esp01_1m]
platform = platformio/espressif8266@^4.2.1
board = esp01_1m
@@ -15,9 +25,16 @@ framework = arduino
upload_speed = 115200
monitor_speed = 115200
board_build.partitions = partitions_ota_1M.csv
board_build.flash_mode = dout ; ESP01S uses DOUT on 1Mbit flash
board_build.flash_mode = dout ; ESP01S uses DOUT on 1 Mbit flash
board_build.flash_size = 1M
lib_deps =
esp32async/ESPAsyncWebServer@^3.8.0
bblanchon/ArduinoJson@^7.4.2
arkhipenko/TaskScheduler@^3.8.5
lib_deps = ${common.lib_deps}
[env:d1_mini]
platform = platformio/espressif8266@^4.2.1
board = d1_mini
framework = arduino
upload_speed = 115200
monitor_speed = 115200
board_build.flash_mode = dio ; D1 Mini uses DIO on 4 Mbit flash
board_build.flash_size = 4M
lib_deps = ${common.lib_deps}