C1001 (SEN0623) — extended human data fields in fall mode: exact method names?
refael 2026-08-03 21:49:35 180 Views1 Replies Sensor: DFRobot C1001 / SEN0623, running in eFallingMode on ESP32-S3 with the DFRobot_HumanDetection library.
Thanks for the detailed answers — the IO1/IO2 findings and the configLEDLight() clarification were exactly what I needed.
You mentioned the human data query in fall mode also covers seated horizontal distance, motion horizontal distance, trajectory switch, and a height cumulative time value. These weren't in the examples I've been working from, so I'd like to test them.
Could you share the exact method names / enum constants for these? Something like hu.smHumanData(hu.e...) — I want to make sure I call them correctly rather than guess.
Why this matters for my use case: I'm building a fall detector for an elderly person living alone. The core problem is that without a posture label, my logic can't distinguish "lying on the floor after a slow collapse" from "sitting still in an armchair watching TV" — both look like a present, static person. That means either false alarms every minute, or missing a real fall.
If seated horizontal distance and motion horizontal distance are separate measurements, comparing them might give me the distinction I need. And height cumulative time sounds directly relevant to a gradual descent, which never triggers the fall flag.
I'm happy to test these on hardware and report back what the values actually look like in each posture — I have a live dashboard logging all sensor outputs, so I can share real numbers if that's useful to others.
Thanks!
The fall-mode human data method is dmHumanData(eDmHuman dh), not smHumanData. The enum constants are eExistence, eMotion, eBodyMove, eTrajectorySwitch, eSeatedHorizontalDistance, and eMotionHorizontalDistance. So hu.dmHumanData(hu.eSeatedHorizontalDistance) is the call.
The height cumulative time is accumulatedHeightDuration() — standalone method, returns a uint32_t. The trajectory switch controls whether track(uint16_t *x, uint16_t *y) produces coordinates, so flip it on with dmHumanConfig(eTrajectorySwitchC, 1) first.
The seated and motion horizontal distances likely need the radar install height set correctly — call dmInstallHeight(uint16_t he) in centimeters before reading them, otherwise the numbers might be off. The docs don't say what units those distances return in, so your dashboard data would be useful to the rest of us.
Jason.Miao 
