Question/Issue:
Trying to read IMU data from ESP32-S3-EYE via edge-impulse-daemon
failed with sample data timeout message
Context/Use case:
Have downloaded the firmware from Alex’s github at GitHub - figueiredoAF/edge_impulse_esp32s3eye_ingestion_sdk: Edge Impulse C/C++ ingestion sdk adapted to run on Espressif ESP32-S3-Eye and tried to use the IMU sensor (qma7981) onboard of ESP32-S3-EYE via edge impulse CLI.
Steps Taken:
- Go to GitHub - figueiredoAF/edge_impulse_esp32s3eye_ingestion_sdk: Edge Impulse C/C++ ingestion sdk adapted to run on Espressif ESP32-S3-Eye and git clone the project to my drive.
- Install ESP IDF4.4
- Made some minor changes including comment out all code in
.\LIS3HDTR_ESP_IDF\CMakeLists.txt
to unselect LIS3HDTR, then include the following code in.\QMA7981\CMakeLists.txt
to make sure QMA7891 is compiled and linked for the edge impulse firmware:
if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp8266" OR IDF_TARGET STREQUAL "esp32s3")
set(COMPONENT_SRCS
qma7981.c
)
set(COMPONENT_REQUIRES bus)
set(COMPONENT_ADD_INCLUDEDIRS
.
../bus/include
)
register_component()
endif()
- Go to the root directory of the project and type in
idf.py fullclean
followed byidf.py build
. No compile error encountered. - Connect ESP32-S3-EYE to my PC, learned it is COM68 in my PC, and type
idf.py -p COM68 flash
- Open Serial Monitor in Arduino with the following messages which means the board is running.
13:43:21.759 -> Hello from Edge Impulse Device SDK.
13:43:21.759 -> Compiled on Jun 26 2025 11:28:37
13:43:21.759 -> e[0;32mI (633) i2c_bus: i2c0 bus initede[0m
13:43:21.759 -> e[0;33mW (633) qma7981: ID : 90e[0m
13:43:21.759 -> Type AT+HELP to see a list of commands.
13:43:22.044 -> >
- Close Serial Monitor, from ESP-IDF 4.4 PowerShell, go to the root directory of the project, and I typed in
edge-impulse-dameon
, with the following messages:
Edge Impulse serial daemon v1.33.0
(node:26484) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Endpoints:
Websocket: wss://remote-mgmt.edgeimpulse.com
API: https://studio.edgeimpulse.com
Ingestion: https://ingestion.edgeimpulse.com
[SER] Connecting to COM68
[SER] Serial is connected, trying to read config...
[SER] Retrieved configuration
[SER] Device is running AT command version 1.8.0
[SER] Device is not connected to remote management API, will use daemon
[WS ] Connecting to wss://remote-mgmt.edgeimpulse.com
[WS ] Connected to wss://remote-mgmt.edgeimpulse.com
[WS ] Device "mictest" is now connected to project "Desktop_cleaner". To connect to another project, run `edge-impulse-daemon --clean`.
[WS ] Go to https://studio.edgeimpulse.com/studio/728716/acquisition/training to build your machine learning model!
- I was directed to my Edge Impulse Account of device “mictest”, acquire audio sample from the web interface. The following messages show up on CLI, which means built-in mic is working. Actually I tried camera too and it is working too.
[WS ] Incoming sampling request {
path: '/api/training/data',
label: 'imu',
length: 3000,
interval: 0.0625,
hmacKey: '7fcad46a2a360102bea4cd2f4d42394a',
sensor: 'Built-in microphone'
}
[SER] Configured upload settings
[SER] Sampling started
[SER] Sampling done
[SER] Device not connected to WiFi directly, reading from buffer (bytes 0 - 98548, expecting to read ~131397 bytes...
[SER] Reading 32% complete...
[SER] Reading 81% complete...
[SER] Reading from buffer OK
[SER] File is 98548 bytes after decoding
[SER] Uploading to https://ingestion.edgeimpulse.com/api/training/data
[SER] Uploading to https://ingestion.edgeimpulse.com/api/training/data OK
Then I switched to IMU sensor and repeating the procedures to sample some data.
Expected Outcome:
I expected to read some IMU data and get it uploaded to EI automatically.
Actual Outcome:
The actual outcome:
[WS ] Incoming sampling request {
path: '/api/training/data',
label: 'qma7981',
length: 3000,
interval: 50,
hmacKey: '7fcad46a2a360102bea4cd2f4d42394a',
sensor: 'Inertial'
}
[SER] Configured upload settings
[SER] Sampling started
[WS ] Failed to sample data Timeout when waiting for > (timeout: 60000) AT+SAMPLESTART=Inertial
Reproducibility:
- [x ] Always
Environment:
- Platform: [ESP32-S3-EYE]
- Build Environment Details: [ESP IDF4.4]
- OS Version: [Windows 11]
- Edge Impulse Version (Firmware): [1.3.3]
- Edge Impulse CLI Version: [No sure how to find it but the AT command version is 1.8.0]