08-19-2024 09:26 AM
hello
I'm trying to detect crash using bmi 323.
I used anymotion feature but it doesn't work as I thought
I think when crash occurs, imu's accelerometer may be 4g.
therefore I set registers below
// use feature engine
FEATURE_IO2 = 0x012C
FEATURE_IO_STATUS = 0x0001
FEATURE_CONTROL = 0x0001
// normal mode on
ACCL_CONF = 0x42a8 //acc_mode = normal mode, bw : odr/4, acc_range : 8g, acc_odr :100Hz
GYRO_CONF = 0x0000
// any motion setting
EXT_ANYMO_1 = 0x1800 // acc_thres : 4g
FEATURE_IO0 = 0x0038 // any motion x,y,z int enable
FEATURE_IO_STATUS = 0x0001
// interrupt
INT_MAP1 = 0x0004 // interrupt mapping, any motion out: INT1
IO_INT_CTRL = 0x0005 // INT1 active high, push-pull, enable
GEN_SET_1 = 0x0011 // event report mode enable, interrupt hold time duration : 40ms
it doesn't work. there's no interrupt while I swing board with imu
if acc_thres is under 10/512g, interrupt happen
I don't understand why this works like that
plz help me. I want to detect crash using bmi 323
08-21-2024 02:50 AM
08-21-2024 03:59 AM - edited 08-21-2024 04:56 AM
Hi @gunbu99,
To solve your issue, let's check step by step.If you set to 10/512g, you should get any motion interrupt very easily.
Surely, your current situation is not normal and your register setting info shouldn't be enough.
Which environment are you using it? Software, Hardware.
1) Are you using our EVM board and shuttle board for bmi323?
- If you are using our EVM board ( app3.x + BMI323 shuttle board), are you using COINES or DD2.1?
- If you aren't using our EVM board, are you using our API as @FAE_CA1 mentioned? The attahced file is our any motion example code to test 4G threshold and should work for you.
- If you aren't using our API, can you provide your whole code for BMI323? You can't run it properly using only above code.
- I also can't see your duration for any motion in your code. You can test it with low value of duration.
Thank you.