Hello,I am trying to use the latest BSEC2 library in the Arduino IDE with an ESP32-C6 (RISC-V architecture). The compilation fails because the precompiled archive for the ESP32-C6 is missing from the library's src folder (while older RISC-V chips like the ESP32-C3 are present).When will Bosch officially release an update for the BSEC2 library that includes native support and the precompiled libalgobsec.a file for the ESP32-C6? Is there an official workaround recommended in the meantime?Thank you!
I am developing a custom environmental monitoring device using an nRF52840 SoC and a BME690 gas sensor. I am currently trying to create a machine learning model to classify different types of gas compositions—such as various household and industrial odors—and I am attempting to collect and label sensor data for training this model within BME AI-Studio. However, I am encountering 'Data import failed' errors when trying to import my datasets. I understand that BME AI-Studio requires the proprietary .bmerawdata format rather than standard CSV files, and that this format includes specific JSON-structured headers and binary data blocks. Since I am not using the official Bosch Application Board 3.1, I am unable to generate these files natively. Could you please provide guidance, a recommended C-structure, or a reference implementation I can integrate into my firmware to generate valid .bmerawdata files that comply with the manual specifications? Alternatively, if there is a supported utility or conversion process to transform raw CSV logs into a compatible format, I would appreciate any documentation or examples you can share to help bridge this gap for my custom hardware.
Hi,
i get the 0x3 (configuration string download failed" in the FEATURE_IO1 register. The power on sequence ist the same as described in the datasheet 5.8.1. What can course such an error?
Regards, Steffen
Hello,
I am currently testing a BMV080 module from DFRobot using the appropriate bmv080-sdk-v11-1-0 on ESP32-S3 using ESP-IDF.
The continuous mode of the sensor seems to work properly, however the duty cycle mode does not :
For a period of 15 s between each measurement, the callback function is called only once after 12 seconds, and is never called afterwards.
Following the integration guidelines, I am using serve_interrupt every second without any returned error.
Here is the code I use :
bmv080_handle_t dev_handle;
i2c_master_dev_handle_t i2c_handle; //initialized with driver/i2c_master
int meas_period_ms = 15000;
esp_err_t ret = ESP_OK; bmv080_status_code_t bmv_stat = bmv080_open(dev_handle, i2c_handle,(bmv080_callback_read_t)bmv080_i2c_read_16bit,(bmv080_callback_write_t)bmv080_i2c_write_16bit,(bmv080_callback_delay_t)bmv080_delay); ret = bmv080_set_parameter(dev_handle,"duty_cycling_period", (void*)&meas_period_ms); if(ret != E_BMV080_OK) return ESP_FAIL; ret = bmv080_start_duty_cycling_measurement(dev_handle,(bmv080_callback_tick_t)get_tick_ms, E_BMV080_DUTY_CYCLING_MODE_0); if(ret != E_BMV080_OK) return ESP_FAIL; TickType_t last_wake_time = xTaskGetTickCount();
while(1)
{ last_wake_time = xTaskGetTickCount(); xTaskDelayUntil(&last_wake_time, pdMS_TO_TICKS(1000)); ret = bmv080_serve_interrupt(dev_handle, (bmv080_callback_data_ready_t)callback_function, NULL); if(ret != E_BMV080_OK) return ESP_FAIL;
} int8_t bmv080_delay(uint32_t period)
{ vTaskDelay(pdMS_TO_TICKS(period)); return 0;
} uint32_t get_tick_ms(void)
{ return xTaskGetTickCount() * portTICK_PERIOD_MS;
}
The callback just prints a log when it is called for debug.
I believe the i2c functions are ok considering all others operations work normally.
Could you indicate me if I am missing a step in the process ?
Thank you.
Dear Sirs,
Is there any procedure / calibration steps / commisioning flow for BME690 prior to go to the field?
I wanted to know if there is an official specification available with the procedure for BME690 (burn in, calibration, etc)
Thanks for your support.
Best regards,
Hello,I am trying to use the latest BSEC2 library in the Arduino IDE with an ESP32-C6 (RISC-V architecture). The compilation fails because the precompiled archive for the ESP32-C6 is missing from the library's src folder (while older RISC-V chips like the ESP32-C3 are present).When will Bosch officially release an update for the BSEC2 library that includes native support and the precompiled libalgobsec.a file for the ESP32-C6? Is there an official workaround recommended in the meantime?Thank you!
I am developing a custom environmental monitoring device using an nRF52840 SoC and a BME690 gas sensor. I am currently trying to create a machine learning model to classify different types of gas compositions—such as various household and industrial odors—and I am attempting to collect and label sensor data for training this model within BME AI-Studio. However, I am encountering 'Data import failed' errors when trying to import my datasets. I understand that BME AI-Studio requires the proprietary .bmerawdata format rather than standard CSV files, and that this format includes specific JSON-structured headers and binary data blocks. Since I am not using the official Bosch Application Board 3.1, I am unable to generate these files natively. Could you please provide guidance, a recommended C-structure, or a reference implementation I can integrate into my firmware to generate valid .bmerawdata files that comply with the manual specifications? Alternatively, if there is a supported utility or conversion process to transform raw CSV logs into a compatible format, I would appreciate any documentation or examples you can share to help bridge this gap for my custom hardware.
Hi,
i get the 0x3 (configuration string download failed" in the FEATURE_IO1 register. The power on sequence ist the same as described in the datasheet 5.8.1. What can course such an error?
Regards, Steffen
I have assembled my prototype altimeter and everything is working except getting a response from the BMP581 over I2C. I have tried two different BMP581 units and neither have given me any results.
What I've tried:
- Swapped 10k I2C pull-up resistors for 2.2k
- Communicated with the BMP581 using both fast and standard mode speeds
- Swapped SCL/SDA lines on the MCU in software to try communicating
- Reflowed the IC multiple times
- Swapped the IC for a new one, tried reflowing that more than once
- Scanning the entire I2C bus to see if the address was unexpected
- Soldering connections which I attached to a BMP280 breakout board to confirm that the MCU's I2C peripheral is indeed working as expected and could detect the BMP280
I'm really at a loss and I'm considering moving to a different barometer entirely for my device. I have confirmed that my layout follows the recommended datasheet application note for I2C mode, I have confirmed that my footprint matches up with the datasheet (I downloaded it directly from Mouser but better to be sure), that the pinout matches, that all connections go where they should and that I have soldered the IC on in the correct orientation.
Below are images of the relevant part of my schematic, routing layout, and the board with and without the IC soldered.
Hello,
I am currently testing a BMV080 module from DFRobot using the appropriate bmv080-sdk-v11-1-0 on ESP32-S3 using ESP-IDF.
The continuous mode of the sensor seems to work properly, however the duty cycle mode does not :
For a period of 15 s between each measurement, the callback function is called only once after 12 seconds, and is never called afterwards.
Following the integration guidelines, I am using serve_interrupt every second without any returned error.
Here is the code I use :
bmv080_handle_t dev_handle;
i2c_master_dev_handle_t i2c_handle; //initialized with driver/i2c_master
int meas_period_ms = 15000;
esp_err_t ret = ESP_OK; bmv080_status_code_t bmv_stat = bmv080_open(dev_handle, i2c_handle,(bmv080_callback_read_t)bmv080_i2c_read_16bit,(bmv080_callback_write_t)bmv080_i2c_write_16bit,(bmv080_callback_delay_t)bmv080_delay); ret = bmv080_set_parameter(dev_handle,"duty_cycling_period", (void*)&meas_period_ms); if(ret != E_BMV080_OK) return ESP_FAIL; ret = bmv080_start_duty_cycling_measurement(dev_handle,(bmv080_callback_tick_t)get_tick_ms, E_BMV080_DUTY_CYCLING_MODE_0); if(ret != E_BMV080_OK) return ESP_FAIL; TickType_t last_wake_time = xTaskGetTickCount();
while(1)
{ last_wake_time = xTaskGetTickCount(); xTaskDelayUntil(&last_wake_time, pdMS_TO_TICKS(1000)); ret = bmv080_serve_interrupt(dev_handle, (bmv080_callback_data_ready_t)callback_function, NULL); if(ret != E_BMV080_OK) return ESP_FAIL;
} int8_t bmv080_delay(uint32_t period)
{ vTaskDelay(pdMS_TO_TICKS(period)); return 0;
} uint32_t get_tick_ms(void)
{ return xTaskGetTickCount() * portTICK_PERIOD_MS;
}
The callback just prints a log when it is called for debug.
I believe the i2c functions are ok considering all others operations work normally.
Could you indicate me if I am missing a step in the process ?
Thank you.