Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    Linking BSEC library to ESP-IDF for BME680

    Linking BSEC library to ESP-IDF for BME680

    Apurva
    Member

    I am using the BME680 with the ESP32-PoE and I want to use the BSEC library to get the IAQ. I have been stuck at the last step of linking the pre-built libalgobsec.a library. This is what my CMakeLists file in my BSEC components folder looks like:

    set(COMPONENT_SRCS "bme680.c"
    "bsec_integration.c")

    set(COMPONENT_ADD_INCLUDEDIRS "include")

    register_component()

    add_library(algobsec STATIC IMPORTED)
    set_property(TARGET algobsec PROPERTY IMPORTED_LOCATION ../lib/libalgobsec.a)

    I have not done the 3 steps for linking as stated in the Integration Guide as I do not know where to find the files to which I need to make changes. I am currently getting this error when I build the project:

    clipboard_image_0.png

    I would really appreciate any help to get the library running. Thank you!

     

    8 REPLIES 8

    Hello! I managed to fix the issue. I separated the BME680 files from the BSEC files. My BSEC component structure is as follows:

    • include (folder)
    1. bsec_datatypes.h
    2. bsec_integration.h
    3. bsec_interface.h
    • lib (folder)
    1. libalgobsec.h (normal)
    • bsec_integration.c
    • CMakeLists.txt
    • component.mk

    The CMakeLists.txt contains:

    CODE: SELECT ALL

    set(COMPONENT_SRCS 
    "bsec_integration.c")
    
    set(COMPONENT_ADD_INCLUDEDIRS include)
    set(COMPONENT_REQUIRES "BME680")
    register_component()
    target_link_libraries(${COMPONENT_TARGET} "-L${CMAKE_CURRENT_LIST_DIR}/lib")
    target_link_libraries(${COMPONENT_TARGET} algobsec)

    The component.mk contains:

    CODE: SELECT ALL

    COMPONENT_SRCDIRS := .
    COMPONENT_ADD_INCLUDEDIRS := include
    
    LIBS := algobsec
    
    COMPONENT_ADD_LDFLAGS     := -lbt -L $(COMPONENT_PATH)/lib \
                               $(addprefix -l,$(LIBS))
    ALL_LIB_FILES := $(patsubst %,$(COMPONENT_PATH)/lib/lib%.a,$(LIBS))
    COMPONENT_ADD_LINKER_DEPS := $(ALL_LIB_FILES)
    COMPONENT_SUBMODULES += lib

    My BME680 component structure is as follows:

    • include (folder)
    1. bme680.h
    2. bme680_defs.h
    3. bme680_platforms.h
    4. bme680_types.h
    • bme680.c
    • bme680_platform.c
    • CMakeLists.txt
    • component.mk

    The CMakeLists.txt contains:

    CODE: SELECT ALL

    set(COMPONENT_SRCS "bme680_platform.c"
                       "bme680.c")
    set(COMPONENT_ADD_INCLUDEDIRS "include")
    
    register_component()

    The component.mk contains:

    CODE: SELECT ALL

    COMPONENT_ADD_INCLUDEDIRS := include

    handytech
    Community Moderator
    Community Moderator

    Thanks a lot for sharing your findings! 🙂

    Hi. I would like to ask you whether it would not be possible to provide function project which calculate IAQ using BME680 sensor. I am an university student, working on my bachelor final thesis and I am a little bit confused how to implement BSEC library in ESP-IDF enviroment. I couldnt even find files which was implemented here and also integration guide is only with Arduino example and not ESP-IDF. If you can help me I would be very glad. Thanks. 

    Hi,

    I am also trying to interface BME680 sensor in ESP32-S3 using Expressif-IDE. i have downloaded the example codes bsec_1-4-9-2_generic_release & BME68x-Sensor-API-4.4.7.zip from BSEC , but i could not find the bme680_platform.c, bme680_platform.h, bme680_types.h files. Can you tell me where i can find these files. I assume that bsec_1-4-9-2_generic_release will use bme680 sensor apis.

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist