Fall detection in Light / Deep sleep

Hello,

I am struggling to figure out the right logic to combine a fall detection logic with the light (WFI) or deep sleep modes (ie linking to hardware interrupts). So far I’ve been working with the freefall threshold (FF_THS) which works well when testing with an actual free fall (ie dropping the device).

However, a real life fall tends to happen slower, with most g “suspension” only being around 0.6 - 0.75g (vs <0.5g in free fall). The max threshold under FF_THS is 0.5g, so it doesn’t register these “realistic” falls.

Has anyone tried to solve this before and found a solution? If I go through an always-on solution it works fine but I’m trying to optimise for battery life as much as possible.

I am working with the Seeed Xiao BLE Sense (nRf52840 chip).

Thanks in advance for any insights!

Caught my attention for all the wrong reasons.

Now and again, in light or deep sleep, I find myself on the floor having managed to roll out of bed. :grimacing:

Curious to see how you will use interrupts.

This tells you there is no way an interrupt could help with fall detection!

Hi @seeednoob!

For a general guidance how to combine sleep mode with sensors you may have a look at PJ_Glasso's posts in the seeedstudio forum

https://forum.seeedstudio.com/t/xiao-nrf52840-sense-free-falls-sleep-double-tap-wake-up-demo/272176

The sketch does not directly solve your issue but may give some hints.

You could also try to contact PJ_Glasso ...

Good luck!
ec2021

Your "fall" indication will be after the fall. It should start around 1g, decrease (you say 0.5g) during the fall, then rapidly increases to greater than 1g, then becomes steady around 1g.

Measure values and times, then graph against each other... head, neck, shoulder, elbow, hip, knee, ankle.

Have a pressure pad in the bed - when no weight on it , the person has fell out of bed .

Sometimes with a problem thinking the inverse can help - how do I detect someone isn’t falling ?