01-12-2024 06:02 PM - edited 04-17-2024 10:09 AM
We have a device with a BMI270 inside, and we calibrate it in factory. Few products fails factory gyro calibration test, returning values outside our hard-coded [-1.0..+1.0] dps bounds despite board being in a stable environment. Accel bounds check works very well.
I performed a stress test on a table. A good product shows small jittter for gyro after a hundred of loops:
And a buggy product crashes the test on first measurement loop due to an out-of-bounds gyro value :
Actually, rX is almost always insane, with values up to 6 dps idle, rZ is regularly insane on 1.0 borders and rY is quite ok.
To my knowledge both products are simular, running same software based on BMI270-Sensor-API 2.71.8.
For the shake of completness, here is the diff of a dump from a good device to a bad device executed after thoses tests. Good device gyro is -0.1/0.1/-0.2 whereas bad device gyro is -2.0/0.5/-0.5 dps if I am not wrong at manually reading config (0x42 and 0x43) and values (0x12..0x17).
sh-4.3# i2cdump -y 1 0x68 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef -00: 24 21 00 d0 00 00 00 00 00 00 00 00 c6 ff bf ff $!.?........?.?.
+00: 24 21 00 10 00 00 00 00 00 00 00 00 45 00 85 fe $!.?........E.??
-10: 1b 40 fe ff 02 00 fd ff fb ff 03 00 00 00 00 00 ?@?.?.?.?.?.....
+10: d7 40 df ff 08 00 f6 ff fb bf 19 00 00 00 00 00 ?@?.?.?.???.....
20: 18 01 00 80 00 00 00 f7 01 25 00 fc 01 00 00 01 ??.?...??%.??..? 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40: aa 00 aa 00 46 88 00 02 00 00 00 20 83 42 4c 02 ?.?.F?.?... ?BL? 50: 00 00 00 00 00 00 00 00 00 25 00 00 80 00 83 01 .........%..?.?? 60: 00 00 00 00 00 00 00 00 09 00 00 00 aa 00 00 00 ........?...?... -70: 28 00 04 00 01 00 01 40 00 00 00 01 03 00 00 00 (.?.?.?@...??...
+70: 28 00 f9 03 fe 00 ff 73 00 00 00 00 03 00 00 00 (.???..s....?...
Configuration is:
GYR_CONF 0x42 = 0xAA => ODR=400, osr2, norm-noise, perf-filter GYR_RANGE 0x43 = 0x00 => GYR_RANGE=+/-2000dps (4000 total => 16 LSB/dps), OIS_RANGE=+/-250dps
More strangely, deep debug traces show much stable (and better) gyro measures during calibration loop (bmi2_perform_gyro_foc), reading 0x12 as "f8ff0400f2ff" (-0.5/0.2/-0.8) for almost worst cases, using gyro configuration GYR_CONF 0x42=0xCA (ODR400 OSR4 noise-perf, filter-perf) GYR_RANGE 0x43 = 0x00.
If this gyro measurement disparity per chip is familiar to someone I will be glad to get hints. The same if dump shows something to someone. If needed, I can provide my deeper app logs but a little bit strong to read.
01-16-2024 09:00 AM
Hi aloiseau,
Is the BMI270 placed in a stationary state and read gyroscope data during stress testing?
Additionally, does the design of the BMI270 on the entire machine meet the HSMI specifications(https://www.bosch-sensortec.com/media/boschsensortec/downloads/handling_soldering_mounting_instructi...)?
01-16-2024 05:46 PM
During my tests, PCB are in a horizonatlly stationary state on my desk. Stress test performs loops of (1 calibration, 1 measurement).
Tests results are reproducible : when I take a working PCB is works very well and when a take a defective PCB is does not work using same environment and software.
For what I know bst-mis-hs001 is taken into account, I will re-ask factory. I have been said by factory that failing products appears spread within production (something like 1 per thousand given stats they gave me).
Also, among my working and defective boards, I found one working PCB and one defective PCB sharing same marking onto BMI270 chip (details below). I will ask factory to compare process of those two boards, but since the issue appears ~1‰ spreaded, maybe both PCBs have been produced identically. Also, PCB actually contains 4 pieces before being tested and cutted, therefore all 4 pieces are given same flow, but faulty pieces are mices with working ones on same large PCB, which puzzles my a litttle bit.
01-17-2024 10:07 AM
Hi,
Yes, I perform my tests identically with several PCBs (one by one):
To my knowledge, HSMI specifications recomandations are properly handled. I have ask factory to recheck.
Strangely, the issue seems to be spread accross production, around 1 per thousand each month. From the few peices I analyzed, this is always one or two noisy gyroscope axis, no always same one. Also, among few defective samples I received there is at least one PCB which BMI270 printing is isentical to the working sample I use :
I also asked factory about any differences in production process between both 5N 4PQ-based PCBs I have, but in my opinion there will not be any difference, otherwise issue would not be spreaded 1 per thousand.
Also, PCBS are actually produced four-per-large-PCB, tested in parallel (4 tests in parallel) then cutted into single pieces. From what I know defects appears in various positions into the large PCB and when one of the four is defective others may not.
04-05-2024 09:44 AM
This small message for two purposes: