cancel
Showing results for 
Search instead for 
Did you mean: 

ESP32 deep-sleep with LSM6DSOX step-detector: how do you cut false wakes?

gtrking
Associate

I’m building a small wearable logger: ESP32 sleeps most of the time, wakes on LSM6DSOX step-detector, logs, then goes back to sleep. Looking for settings that work in practice:

  • ODR/FS and step-detector config that avoids vibration false wakes

  • INT wiring to an RTC-capable GPIO (pull-up value?), latched vs pulsed INT

  • FIFO vs direct interrupt; simple debounce in firmware

  • Re-init after deep-sleep (soft reset, clear INT, reprogram registers)

  • Typical deep-sleep current numbers with the IMU powered vs fully off

Concrete numbers welcome (thresholds, durations, current, wake frequency). Thanks!

2 REPLIES 2
gtrking
Associate

Update: first pass is working better.

  • LSM6DSOX: ODR 26 Hz, FS ±4 g, step-detector ON, threshold = 2

  • INT1 → RTC GPIO with 10 kΩ pull-up; added 400 ms cool-down in firmware

  • Deep-sleep sits around ~9–12 µA at 3V3; false wakes dropped a lot

Hardware reference (external): the board I used is ESP32-WROOM.
If you’ve reached <8 µA with similar wiring, what changed it for you?

Hi @gtrking,

Lower ODRs reduce power but may miss steps or increase latency. 26Hz could be a good compromise. You can experiment with thresholds 2–4 depending on your environment and motion profile.

FS ±4 g is a balanced choice for wearables, but you could try also ±8g.

Use latched interrupt mode if available (interrupt stays asserted until cleared) to avoid missing events during ESP32 wake-up latency.

In addition, you can disable unused sensor features (e.g., FIFO if not needed).

Ensure sensor is in low-power mode when idle.

Hope this helps!

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.