Hi Dialog support,
I am running a project based on the IoT sensor with SDK 5.160.1.19.
When I connect with the IoT app, the default settings are (e.g.)
- SF rate: 10Hz
- Calibration Mode: Continuous Auto
- Auto Calibration Mode: Basic
I want to change the FW before compilation such that the default is
- SF rate: 25Hz
- Calibration Mode: Continuous Auto
- Auto Calibration Mode: Smart Fusion
I have changed the following line in user_sensor_config.c :
const sensor_config_struct sensor_config_default = { ENABLE_ALL_SENSOR_FLAGS, DEFAULT_BMI160_ACCEL_RANGE, DEFAULT_ACCEL_DATA_RATE, DEFAULT_BMI160_GYRO_RANGE, DEFAULT_GYRO_DATA_RATE, DEFAULT_MAG_DATA_RATE, DEFAULT_ENV_SAMPLE_INTV_MULT, DEFAULT_SFL_RATE_HZ, 1, CAL_SMARTFUSION_AUTOCAL, 0, 0, 0, 0, 0, 0 };
Still when I connect the IoT Sensors app, it shows the "old" default setting. This is inconvenient as the basic calibration never works (sensor always drifts - magnetometer?).
How can I change this behavior?
Best regards
Johannes
Device:
嗨gme_johannes,
Did you try to change the default values in the user_app_wrbl_config.h file? The default values in the sensor_config_default structure are defined in user_app_wrbl_config.h.
Thanks, PM_Dialog
Hi PM_Dialog,
in this document I found
which I changed to
but I found nothing about the default calibration method.
Now I changed the struct from
to
should this suffice to have the fusion autocalibration at bootup?
edit:
I have recompile and reprogrammed, still the IoT Sensors app shows 10Hz and "Continuous Auto".
Same if I press "Read configuration from NV".
What is the correct way to solve this?
Thanks,
Johannes
嗨gme_johannes,,
Could you please try to undefine the USE_SPI_FLASH_CONFIG macro in user_app_wrbl_config.h file?
Thanks, PM_Dialog
Hi PM_Dialog,
(1) can you explain what happens when USE_SPI_FLASH_CONFIG is defined/undefined?
(2) Where do the default values come from in each case, when it is defined and when it is not?
(3) How are the values stored when I changed the configuration from the app and then "write to NV memory"? Does this still work when USE_SPI_FLASH_CONFIG is undefined?
edit: I have found out that "write to NV memory" does not have any effect with USE_SPI_FLASH_CONFIG undefined. It makes sense.
(4) Although in the code I have set
with CAL_SMARTFUSION_AUTOCAL, the IoT app shows "Basic Autocalibration" instead of "Smart Fusion Autocalibration". Can you confirm? How can I boot up with the latter?
BR Johannes
嗨gme_johannes,
If you undefine the USE_SPI_FLASH_CONFIG you could load data from the default array and in the user_app_wrbl_config.h change the SENSOR_SAMPLE_RATE_IMU to a user sample case, for example SENSOR_SAMPLE_RATE_USER_CASE2 and choose for that sample case BMI160_ACCEL_OUTPUT_DATA_RATE_200HZ and BMI160_ACCEL_OUTPUT_DATA_RATE_200HZ. Regarding the default values in the IoT app, as you correctly mentioned you should modify the sensor_config_default. After recompiling the code, the values should be changed. In addition, you could change the calibration mode inside the app and press the “store” button.
Thanks, PM_Dialog
Hi PM_Dialog, thanks for your answer.
不幸的是我还能不understsand point (4), although I set the default to "CAL_SMARTFUSION_AUTOCAL", the app will still show the Basic calibration. I have now manually changed it for all sensors and stored it to NVRAM with the app.
BR Johannes
嗨gme_johannes.
Thanks for your indication and for your feedback
Regards, PM_Dialog