Hardware Guide
Edge Impulse enables gesture recognition on the ESP32-S3 by training a classifier on IMU accelerometer and gyroscope data. Connect a 6-axis IMU, collect gesture samples via the Edge Impulse CLI, and deploy a model that classifies gestures with low latency.
| Spec | ESP32-S3 |
|---|---|
| Processor | Dual-core Xtensa LX7 @ 240 MHz |
| SRAM | 512 KB |
| Flash | Up to 16 MB (external) |
| Key Features | Vector instructions (SIMD), USB OTG, LCD/Camera interface, Up to 8 MB PSRAM |
| Connectivity | Wi-Fi 802.11 b/g/n, Bluetooth 5.0 LE |
| Price Range | $3 - $8 (chip), $10 - $25 (dev board) |
Gesture recognition models are lightweight — typically 20-40 KB for a 6-axis IMU classifier with 5-10 gesture classes. The ESP32-S3's 512 KB SRAM handles this with massive headroom, leaving capacity for complex application logic alongside inference. Edge Impulse's spectral analysis and classification pipelines are specifically optimized for time-series IMU data. The Xtensa LX7's vector instructions accelerate neural network inference operations. The ESP32-S3 requires an external IMU (MPU6050, LSM6DS3, or similar) connected via I2C or SPI — unlike the Arduino Nano 33 BLE, it has no built-in sensor. The advantage is Wi-Fi and BLE 5.0 connectivity for forwarding gesture events to other systems. Inference latency is low enough for responsive UI interactions.
Connect a 6-axis IMU to the ESP32-S3
Wire an MPU6050 or LSM6DS3 IMU via I2C (SDA, SCL, VCC, GND). Configure the sensor for 100 Hz sample rate with accelerometer at ±8g and gyroscope at ±1000 dps.
Collect gesture samples with Edge Impulse
Flash the Edge Impulse firmware to the ESP32-S3 and use the edge-impulse-daemon CLI to stream IMU data. Record 10-20 samples per gesture class. Each sample captures a 1-2 second motion window.
Train the gesture classifier
In the Edge Impulse Studio, configure a Spectral Analysis processing block followed by a Classification learning block. Train with the default neural network architecture — it handles IMU gesture data well out of the box.
Deploy to ESP32-S3
Export the ESP-IDF library from Edge Impulse's Deployment tab. Add it to your ESP-IDF project as a component. The run_classifier() function returns gesture predictions with confidence scores.
Built-in 9-axis IMU eliminates external wiring. Arduino ecosystem is beginner-friendly. Half the RAM (256 KB) but sufficient for gesture models. No Wi-Fi.
Cortex-M4F with DSP instructions at lower cost. 192 KB SRAM but gesture models fit easily. Edge Impulse has strong STM32 support.
Map gestures to actions on the ESP32-S3 — design the full pipeline visually and compile to firmware.
Get Started Free