Skip to content

Commit 8a2a825

Browse files
committed
Add ESP32 StepperDemo with WebUI implementation to extras
1 parent a99b0ec commit 8a2a825

20 files changed

Lines changed: 4191 additions & 257 deletions

examples/Esp32StepperDemo/README.md

Lines changed: 0 additions & 240 deletions
This file was deleted.
Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ A modern, web-based interface for controlling stepper motors on ESP32 platforms.
1010
- **Web Interface**: Browser-based UI accessible via WiFi
1111
- **Extended Pin Support**: Native GPIO + I2S expander (32 additional outputs)
1212
- **Multiple Driver Types**: RMT, I2S_DIRECT, I2S_MUX
13-
- **Persistent Configuration**: Save/load to SPIFFS/LittleFS
13+
- **Persistent Configuration**: Save/load to LittleFS
1414
- **Real-time Monitoring**: Live status updates via WebSocket
1515
- **Move Sequences**: Load and execute pre-defined move sequences
1616

1717
### 1.3 Target Platform
1818
- ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6
19-
- ESP-IDF v4.4+ or Arduino ESP32 Core v2.0+
20-
- Minimum 4MB Flash (with SPIFFS partition)
19+
- **ESP-IDF v5.3+** (uses latest RMT driver with improved performance)
20+
- Minimum 4MB Flash (with LittleFS partition)
2121

2222
---
2323

@@ -52,8 +52,8 @@ A modern, web-based interface for controlling stepper motors on ESP32 platforms.
5252
│ └──────────────────────────────────────────────────────┘ │
5353
│ │
5454
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
55-
│ │ GPIO Manager │ │ I2S Expander │ │ File System │ │
56-
│ │ │ │ Manager │ │ (SPIFFS) │ │
55+
│ │ GPIO Manager │ │ I2S Expander │ │ File System │ │
56+
│ │ │ │ Manager │ │ (LittleFS) │ │
5757
│ └──────────────┘ └──────────────┘ └──────────────┘ │
5858
└─────────────────────────────────────────────────────────────┘
5959
```
@@ -64,7 +64,7 @@ A modern, web-based interface for controlling stepper motors on ESP32 platforms.
6464
```
6565
Web UI → REST API → Config Manager → FAS Engine → Hardware
6666
67-
SPIFFS (persistent)
67+
LittleFS (persistent)
6868
```
6969

7070
2. **Real-time Status Flow**:
@@ -87,8 +87,8 @@ A modern, web-based interface for controlling stepper motors on ESP32 platforms.
8787
```
8888
GET /api/config - Get full configuration
8989
POST /api/config - Update configuration
90-
POST /api/config/save - Save to SPIFFS
91-
GET /api/config/load - Load from SPIFFS
90+
POST /api/config/save - Save to LittleFS
91+
GET /api/config/load - Load from LittleFS
9292
DELETE /api/config - Reset to defaults
9393
9494
GET /api/pins - Get all pin states
@@ -956,20 +956,24 @@ examples/Esp32StepperDemo/
956956
### Arduino Libraries
957957
- **ESPAsyncWebServer** - Async HTTP and WebSocket server
958958
- **ArduinoJson** - JSON parsing and creation
959-
- **SPIFFS** or **LittleFS** - File system for configuration storage
959+
- **LittleFS** - File system for configuration storage (SPIFFS deprecated in ESP-IDF v5.x)
960960

961961
### PlatformIO Configuration
962962
```ini
963963
[env:esp32]
964964
platform = espressif32
965965
board = esp32dev
966-
framework = arduino
966+
framework = arduino, espidf
967+
platform_packages =
968+
framework-espidf @ https://github.com/espressif/esp-idf.git#v5.3
967969
lib_deps =
968970
espressif/esp32-camera
969971
me-no-dev/ESP Async WebServer
970972
bblanchon/ArduinoJson
971973
monitor_speed = 115200
972974
board_build.partitions = huge_app.csv
975+
build_flags =
976+
-DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_INFO
973977
```
974978

975979
---
@@ -978,7 +982,7 @@ board_build.partitions = huge_app.csv
978982

979983
### Phase 1: Core Infrastructure (Week 1-2)
980984
- [ ] Basic web server setup
981-
- [ ] SPIFFS file system integration
985+
- [ ] LittleFS file system integration
982986
- [ ] Configuration manager skeleton
983987
- [ ] JSON serialization/deserialization
984988
- [ ] Basic REST API framework
@@ -1052,7 +1056,7 @@ board_build.partitions = huge_app.csv
10521056

10531057
### 12.2 Resource Usage
10541058
- Heap usage: < 100KB (leaving > 200KB free on ESP32)
1055-
- SPIFFS usage: < 64KB for configuration
1059+
- LittleFS usage: < 64KB for configuration
10561060
- Flash usage: < 2MB total
10571061

10581062
### 12.3 Concurrency
@@ -1093,12 +1097,11 @@ board_build.partitions = huge_app.csv
10931097
- **ESP32-C6**: Limited (RMT only)
10941098

10951099
### 14.2 IDF Version Compatibility
1096-
- **ESP-IDF v4.4**: MCPWM/PCNT or RMT
1097-
- **ESP-IDF v5.x**: RMT only (I2S direct via new API)
1100+
- **ESP-IDF v5.3+**: RMT only (recommended, with improved driver)
1101+
- **I2S Support**: Via new I2S driver API in v5.3+
10981102

10991103
### 14.3 Arduino ESP32 Core
1100-
- **v2.0.x**: Full support
1101-
- **v3.0.x**: TBD (may require updates)
1104+
- **v3.0+**: Required (for ESP-IDF v5.3 support)
11021105

11031106
---
11041107

@@ -1125,7 +1128,7 @@ board_build.partitions = huge_app.csv
11251128
- Ensure AP mode is off (or configured correctly)
11261129

11271130
#### Configuration Not Saving
1128-
- Check SPIFFS is mounted
1131+
- Check LittleFS is mounted
11291132
- Verify sufficient space available
11301133
- Check file permissions
11311134
- Look for JSON syntax errors

extras/Esp32StepperDemo/Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
.PHONY: symlink
2+
3+
symlink:
4+
mkdir -p lib/FastAccelStepper
5+
ln -sf ../../../../src lib/FastAccelStepper/src

0 commit comments

Comments
 (0)