Bosch Sensortec Community

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

    BSEC 1.4.7.3 Arduino Integration || Standalone example problems

    BSEC 1.4.7.3 Arduino Integration || Standalone example problems

    bosched
    Member

    Hey there,

    since Arduino 1.8.9 and BSEC 1.4.7.3 is out for a month i thought i give it a shoot to see what improvements being made.

    Downloaded the BSEC from the mainpage and followed the workaround procedures listed on github, everything worked well for the very basic (library)examples. But the bsec_iot_example (and ultimately my custom made sketch, which is in production mode on a lower BSEC version) throws an error during linking.

    After a deeper look at compiler.c.elf.extra_flags and compiler.libraries.ldflags i realized that no linker argument for libalgobsec is passed. No wonder:

    If you have already used the previous example code and hack guide, remove the linker flag -libalgobsec in the platform.txt file

     

    So, at least with the standalone example you will need the linker flag  compiler.c.elf.libs .... -lalgobsec to link the parts without exiting.

    What is the reason? The structure?

    7 REPLIES 7

    kgoveas
    Community Moderator
    Community Moderator

    Hi bosched,

    Please check the connection of SDO(MISO) pin when connected over I2C. It cannot be left floating. Connect it either to VDD or GND. Connecting to GND provides the primary address 0x76. Additionally, the 

    Wire.begin(); //TwoWire::begin

    function is no longer called in the BSEC abstracted class. Instead, it has to be called in

    void setup()
    {
    
    }

    I'm not sure if i'm following you here.

    1) Indeed SDO was'nt connected to anything,  yet also wasn't connected in previous setups running flawlessly. What could be a result not connecting SDO to VCC/Ground?

    I came up with the solution (posted) by comparing the old bme680_defs.h with the new one.

    1.4.7.x

    #define BME680_I2C_ADDR_PRIMARY		UINT8_C(0x77)
    #define BME680_I2C_ADDR_SECONDARY	UINT8_C(0x76)

    1.4.7.3

    #define BME680_I2C_ADDR_PRIMARY		UINT8_C(0x76)
    #define BME680_I2C_ADDR_SECONDARY	UINT8_C(0x77)

    So, better reverting to 1.4.7.3 notation and connecting SDO to Ground or is it negligible?

     

    2) Wire.begin() is called in the setup section. What indicates that it's not being called this way?

    But it's also possible that i read some guide for the previous setup that made me change the adresses in 1.4.7.x. I couldn't say.

    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