I'm trying to implement a fall detection feature on the headset side using the LSM6DSOX IMU sensor. The IMU is configured successfully, but the board halts after the INT1 pin is triggered.
*** Booting nRF Connect SDK v3.0.1-9eb5615da66b *** *** Using Zephyr OS v4.0.99-77f865b8f8d0 *** -- [00:00:00.296,264] <err> power_meas: INA231 device not ready: VBAT HR [00:00:00.307,556] <inf> board_version: Compatible board/HW version found: 1.1.0 HR [00:00:00.340,026] <inf> fw_info: nRF5340 Audio nRF5340 Audio DK cpuapp NCS base version: 3.0.1 Cmake run : Mon Jul 14 13:28:15 2025 HR [00:00:00.340,026] <inf> fw_info: ------- DEBUG BUILD ------- HR [00:00:00.340,026] <inf> fw_info: HEADSET right device HR [00:00:00.383,941] <inf> bt_mgmt_ctlr_cfg: Controller: SoftDevice: Version 6.0 (0x0e), Revision 8435 HR [00:00:00.384,155] <inf> bt_mgmt: Local identity addr: CE:49:BF:E7:ED:D8 (random) HR [00:00:00.412,719] <wrn> unicast_server: CSIP using the default SIRK, must be changed before production HR [00:00:00.415,893] <inf> bt_mgmt_adv: Local addr: 4A:A8:E3:5B:5C:DE (random) HR [00:00:00.415,954] <inf> bt_mgmt_adv: Adv directed to: F3:FA:0C:7B:72:CA (random). HR [00:00:00.416,534] <inf> bt_mgmt_adv: Advertising successfully started HR [00:00:00.419,219] <inf> lsm6dsox: LSM6DSOX ready and ODR set to 416 Hz HR [00:00:00.419,616] <inf> lsm6dsox: Wrote 0x40 to reg 0x56 HR [00:00:00.419,982] <inf> lsm6dsox: Wrote 0x80 to reg 0x58 HR [00:00:00.420,349] <inf> lsm6dsox: Wrote 0x00 to reg 0x5C HR [00:00:00.420,715] <inf> lsm6dsox: Wrote 0xFB to reg 0x5D HR [00:00:00.421,081] <inf> lsm6dsox: Wrote 0x10 to reg 0x5E HR [00:00:00.654,510] <inf> bt_mgmt: Connected: F3:FA:0C:7B:72:CA (random) HR [00:00:00.654,541] <inf> main: Connection event. Num connections: 1 HR [00:00:00.654,693] <inf> bt_mgmt_adv: RPA (Resolvable Private Address) expired. HR [00:00:00.654,785] <inf> bt_mgmt_adv: Local addr: 4A:A8:E3:5B:5C:DE (random) HR [00:00:00.725,738] <inf> main: Security changed HR [00:00:00.725,860] <wrn> bt_gatt: Device is not subscribed to characteristic HR [00:00:00.725,860] <wrn> bt_pacs: PACS notify failed: -22 HR [00:00:00.725,891] <wrn> bt_gatt: Device is not subscribed to characteristic HR [00:00:00.725,921] <wrn> bt_pacs: PACS notify failed: -22 HR [00:00:01.315,582] <inf> bt_content_ctrl_media: Discovery of MCS finished HR [00:00:02.066,406] <inf> le_audio: LC3 codec config for sink: HR [00:00:02.066,436] <inf> le_audio: Frequency: 24000 Hz HR [00:00:02.066,436] <inf> le_audio: Duration: 10000 us HR [00:00:02.066,436] <inf> le_audio: Channel allocation: 0x2 HR [00:00:02.066,436] <inf> le_audio: Octets per frame: 60 (48000 bps) HR [00:00:02.066,436] <inf> le_audio: Frames per SDU: 1 HR [00:00:02.086,425] <inf> le_audio: LC3 codec config for source: HR [00:00:02.086,425] <inf> le_audio: Frequency: 24000 Hz HR [00:00:02.086,425] <inf> le_audio: Duration: 10000 us HR [00:00:02.086,425] <inf> le_audio: Channel allocation: 0x2 HR [00:00:02.086,456] <inf> le_audio: Octets per frame: 60 (48000 bps) HR [00:00:02.086,456] <inf> le_audio: Frames per SDU: 1 HR [00:00:02.126,922] <inf> main: Presentation delay 5000 us is set by initiator HR [00:00:02.126,953] <inf> main: Presentation delay 5000 us is set by initiator HR [00:00:02.883,056] <inf> unicast_server: Stream 0x20011154 started HR [00:00:02.884,033] <wrn> le_audio_rx: Not in streaming state (1), thrown 1 packet(s) HR [00:00:02.903,228] <wrn> audio_datapath: I2S RX overrun. Single msg HR [00:00:02.906,219] <wrn> audio_datapath: Data received, total under-runs: 10 HR [00:00:03.145,904] <inf> unicast_server: Stream 0x2001117c started HR [00:00:03.147,216] <wrn> audio_datapath: Data received, total under-runs: 11 HR [00:00:03.147,247] <wrn> audio_datapath: I2S RX continuing stream HR [00:00:10.393,920] <inf> main: Free-fall event detected on INT1 HR [00:00:10.403,961] <err> bt_hci_driver: No available ISO buffers (0)! HR [00:00:10.407,470] <wrn> audio_datapath: I2S RX overrun. Single msg HR [00:00:11.403,900] <err> bt_hci_driver: No available ISO buffers (100)! HR [00:00:12.403,961] <err> bt_hci_driver: No available ISO buffers (200)! HR [00:00:13.384,552] <err> bt_mgmt_ctlr_cfg: No response from IPC or controller HR [00:00:13.384,552] <err> bt_mgmt_ctlr_cfg: ERR_CHK Err_code: [-116] @ line: 67 HR [00:00:13.384,552] <err> os: r0/a1: 0x00000003 r1/a2: 0x00000003 r2/a3: 0x00000002 HR [00:00:13.384,552] <err> os: r3/a4: 0x00000003 r12/ip: 0x200039b8 r14/lr: 0x00064c19 HR [00:00:13.384,582] <err> os: xpsr: 0x01000025 HR [00:00:13.384,582] <err> os: s[ 0]: 0x00000043 s[ 1]: 0x00040200 s[ 2]: 0x20000200 s[ 3]: 0x01000003 HR [00:00:13.384,582] <err> os: s[ 4]: 0x00000020 s[ 5]: 0x20004238 s[ 6]: 0x00000000 s[ 7]: 0x000140db HR [00:00:13.384,582] <err> os: s[ 8]: 0x000140a9 s[ 9]: 0x00043c25 s[10]: 0x20004238 s[11]: 0x00000000 HR [00:00:13.384,613] <err> os: s[12]: 0x000000ae s[13]: 0x00000000 s[14]: 0x0006b138 s[15]: 0x000439a5 HR [00:00:13.384,613] <err> os: fpscr: 0x00000000 HR [00:00:13.384,613] <err> os: Faulting instruction address (r15/pc): 0x000092b2 HR [00:00:13.384,643] <err> os: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0 HR [00:00:13.384,643] <err> os: Fault during interrupt handling HR [00:00:13.384,674] <err> os: Current thread: 0x200059a0 (idle) HR [00:00:13.384,674] <err> error_handler: Caught system error -- reason 3. Entering infinite loop
The callback function only logs the message.
void ff_gpio_callback(const struct device *port, struct gpio_callback *cb, uint32_t pins) { LOG_INF("Free-fall event detected on INT1"); }