Bosch Sensortec Community

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

    BME680 platform IO ESP32

    BME680 platform IO ESP32

    peter3099
    Member
     Hello
     
    I'm trying to configure the BSEC library on platform io in order to use a BME680 that I have connected to an ESP32, but no matter what I do I always get 
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o):(.literal._ZN4Bsec11beginCommonEv+0x4): undefined reference to
    `bsec_init'
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o):(.literal._ZN4Bsec11beginCommonEv+0x8): undefined reference to
    `bsec_get_version'
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o):(.literal._ZN4Bsec18updateSubscriptionEP21bsec_virtual_sensor_thf+0x0): undefined reference to `bsec_update_subscription'
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o):(.literal._ZN4Bsec8setStateEPh+0x0): undefined reference to `bsec_set_state'
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o):(.literal._ZN4Bsec15readProcessDataEx19bsec_bme_settings_t+0x14): undefined reference to `bsec_do_steps'
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o):(.literal._ZN4Bsec3runEx+0x0): undefined reference to `bsec_sensor_control'
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o):(.literal._ZN4Bsec3runEx+0x4): undefined reference to `bsec_get_state'
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o): In function `Bsec::beginCommon()':
    D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32/.pio\libdeps\esp32\BSEC Software Library_ID6979\src/bsec.cpp:477: undefined reference to `bsec_init'
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o): In function `Bsec::getVersion()':
    D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32/.pio\libdeps\esp32\BSEC Software Library_ID6979\src/bsec.cpp:477: undefined reference to `bsec_get_version'
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o): In function `Bsec::updateSubscription(bsec_virtual_sensor_t*,
    unsigned char, float)':
    D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32/.pio\libdeps\esp32\BSEC Software Library_ID6979\src/bsec.cpp:477: undefined reference to `bsec_update_subscription'
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o): In function `Bsec::setState(unsigned char*)':
    D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32/.pio\libdeps\esp32\BSEC Software Library_ID6979\src/bsec.cpp:477: undefined reference to `bsec_set_state'
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o): In function `Bsec::readProcessData(long long, bsec_bme_settings_t)':
    D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32/.pio\libdeps\esp32\BSEC Software Library_ID6979\src/bsec.cpp:386: undefined reference to `bsec_do_steps'
    .pio\build\esp32\lib149\libBSEC Software Library_ID6979.a(bsec.cpp.o): In function `Bsec::run(long long)':
    D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32/.pio\libdeps\esp32\BSEC Software Library_ID6979\src/bsec.cpp:201: undefined reference to `bsec_init'
    D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32/.pio\libdeps\esp32\BSEC Software Library_ID6979\src/bsec.cpp:211: undefined reference to `bsec_update_subscription'
    D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32/.pio\libdeps\esp32\BSEC Software Library_ID6979\src/bsec.cpp:211: undefined reference to `bsec_sensor_control'
    D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32/.pio\libdeps\esp32\BSEC Software Library_ID6979\src/bsec.cpp:247: undefined reference to `bsec_get_state'
    collect2.exe: error: ld returned 1 exit status
    *** [.pio\build\esp32\firmware.elf] Error 1
     
    I saw the instructions for the library but I cannot find the platform txt nor I know what to put on it.
    Could you please advice what's the correct way to do it?
    Thanks 
    12 REPLIES 12

    handytech
    Community Moderator
    Community Moderator

    The error still seems to be due to the toolchain configuration. Can you confirm that the file libalgobsec.a exists and is located is the correct folder? Are you able to extend compilation/linking (e.g. enable verbose) to confirm all the flags/options are there and as expected?

    Ok so

    libalgobsec.a

    is on 

     

    C:\Users\Pedro\.platformio\lib\BSECSoftwareLibrary_ID6979\src\esp32

    and on src/inc I have the other files

     

    Verbose Output

     

    PS D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32> pio run -v
    Processing esp32 (platform: espressif32; board: esp32dev; framework: arduino; monitor_speed: 115200; upload_port: COM[3]; monitor_port: COM[3]; build_flags: -IC:\Users\Pedro\.platformio\lib\BSECSoftwareLibrary_ID6979\src\inc, -LC:\Users\Pedro\.platformio\lib\BSECSoftwareLibrary_ID6979\src\esp32, -lalgobsec; lib_deps: Adafruit GFX Library, Adafruit_ILI9341, XPT2046_Touchscreen, Wire, 1609, painlessMesh, OneButton, WiFi, TaskScheduler, Ticker, AsyncMqttClient, ESP Async WebServer, ArduinoJson, Adafruit NeoPixel, Ambimate)
    ------------------------------------------------------------------------------------------------------------------------------------------------------
    CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
    PLATFORM: Espressif 32 1.12.0 > Espressif ESP32 Dev Module
    HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
    DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
    PACKAGES:
     - framework-arduinoespressif32 3.10004.200129 (1.0.4)
     - tool-esptoolpy 1.20600.0 (2.6.0)
     - toolchain-xtensa32 2.50200.80 (5.2.0)
    LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
    Framework incompatible library D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit_ILI9341_ID2148
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Platform incompatible library D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\ESPAsyncTCP_ID305
    Platform incompatible library D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\ESPAsyncTCP_ID305@1.2.0      
    More details about "Library Compatibility Mode": https://docs.platformio.org/page/librarymanager/ldf.html#ldf-compat-mode
    Found 42 compatible libraries
    Warning! Circular dependencies detected between `D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit ILI9341_ID571` and `D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit GFX Library_ID13`
    Scanning dependencies...
    Warning: Ignored `ESPAsyncTCP` dependency for `painlessMesh` library
    Warning: Ignored `ESPAsyncTCP` dependency for `AsyncMqttClient` library
    Warning: Ignored `ESPAsyncTCP` dependency for `ESP Async WebServer` library
    Warning: Ignored `Hash` dependency for `ESP Async WebServer` library
    Warning! Circular dependencies detected between `D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit ILI9341_ID571` and `D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit GFX Library_ID13`
    Dependency Graph
    |-- <Adafruit GFX Library> 1.7.5 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit GFX Library_ID13)
    |   |-- <Adafruit ILI9341> 1.5.5 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit ILI9341_ID571)
    |   |   |-- <Adafruit STMPE610> 1.1.2 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit STMPE610_ID377)
    |   |   |   |-- <SPI> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\SPI)
    |   |   |   |-- <Wire> 1.0.1 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\Wire)
    |   |   |-- <Adafruit TouchScreen> 1.0.5 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit TouchScreen_ID5430)
    |   |   |-- <SPI> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\SPI)
    |   |-- <SPI> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\SPI)
    |-- <XPT2046_Touchscreen> (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\XPT2046_Touchscreen_ID542)      
    |   |-- <SPI> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\SPI)
    |-- <Wire> 1.0.1 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\Wire)
    |-- <CCS811> 10.0.0 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\CCS811_ID1609)
    |   |-- <Wire> 1.0.1 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\Wire)
    |-- <painlessMesh> 1.4.5 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\painlessMesh_ID1269)
    |   |-- <ArduinoJson> 6.15.1 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\ArduinoJson_ID64)
    |   |-- <TaskScheduler> 3.1.4 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\TaskScheduler_ID721)        
    |   |-- <AsyncTCP> 1.1.1 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\AsyncTCP_ID1826)
    |   |-- <WiFi> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\WiFi)
    |   |-- <FS> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\FS)
    |   |-- <SPIFFS> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\SPIFFS)
    |   |   |-- <FS> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\FS)
    |   |-- <Update> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\Update)
    |-- <OneButton> (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\OneButton_ID1260)
    |-- <WiFi> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\WiFi)
    |-- <TaskScheduler> 3.1.4 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\TaskScheduler_ID721)
    |-- <Ticker> 1.1 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\Ticker)
    |-- <AsyncMqttClient> 0.8.2 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\AsyncMqttClient_ID346)        
    |   |-- <AsyncTCP> 1.1.1 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\AsyncTCP_ID1826)
    |-- <ESP Async WebServer> 1.2.3 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\ESP Async WebServer_ID306)
    |   |-- <AsyncTCP> 1.1.1 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\AsyncTCP_ID1826)
    |   |-- <FS> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\FS)
    |   |-- <WiFi> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\WiFi)
    |   |-- <ArduinoJson> 6.15.1 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\ArduinoJson_ID64)
    |-- <ArduinoJson> 6.15.1 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\ArduinoJson_ID64)
    |-- <Adafruit NeoPixel> 1.3.5 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit NeoPixel_ID28)     
    |-- <Ambimate> 1.0.0 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Ambimate_ID6454)
    |   |-- <Wire> 1.0.1 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\Wire)
    |-- <BSEC Software Library> 1.5.1474 (C:\Users\Pedro\.platformio\lib\BSECSoftwareLibrary_ID6979)
    |   |-- <SPI> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\SPI)
    |   |-- <Wire> 1.0.1 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\Wire)
    |-- <Adafruit ILI9341> 1.5.5 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit ILI9341_ID571)      
    |   |-- <Adafruit STMPE610> 1.1.2 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit STMPE610_ID377)
    |   |   |-- <SPI> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\SPI)
    |   |   |-- <Wire> 1.0.1 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\Wire)
    |   |-- <Adafruit TouchScreen> 1.0.5 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\Adafruit TouchScreen_ID5430)
    |   |-- <SPI> 1.0 (C:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\libraries\SPI)
    |-- <AsyncTCP> 1.1.1 (D:\Ascough\XPS\SE\Projects\SymphonySense\Code\PlatformIO\SSv0.1 - ESP32\.pio\libdeps\esp32\AsyncTCP_ID1826)
    Building in release mode
    xtensa-esp32-elf-g++ -o .pio\build\esp32\firmware.elf -T esp32_out.ld -nostdlib -Wl,-static -u call_user_start_cpu0 -Wl,--undefined=uxTopUsedPriority 
    -Wl,--gc-sections -Wl,-EL -T esp32.common.ld -T esp32.rom.ld -T esp32.peripherals.ld -T esp32.rom.libgcc.ld -T esp32.rom.spiram_incompatible_fns.ld -u ld_include_panic_highint_hdl -u __cxa_guard_dummy -u __cxx_fatal_exception .pio\build\esp32\src\main.cpp.o -L.pio\build\esp32 -LC:\Users\Pedro\.platformio\platforms\espressif32\builder\UsersPedro.platformiolibBSECSoftwareLibrary_ID6979srcesp32 -LC:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\tools\sdk\lib -LC:\Users\Pedro\.platformio\packages\framework-arduinoespressif32\tools\sdk\ld -Wl,--start-group .pio\build\esp32\lib49f\libSPI.a .pio\build\esp32\lib2a8\libWire.a ".pio\build\esp32\lib6f7\libAdafruit STMPE610_ID377.a" ".pio\build\esp32\lib6dd\libAdafruit TouchScreen_ID5430.a" ".pio\build\esp32\lib073\libAdafruit ILI9341_ID571.a" ".pio\build\esp32\lib282\libAdafruit GFX Library_ID13.a" .pio\build\esp32\libbd7\libXPT2046_Touchscreen_ID542.a .pio\build\esp32\lib320\libCCS811_ID1609.a .pio\build\esp32\libf86\libArduinoJson_ID64.a .pio\build\esp32\libb0a\libTaskScheduler_ID721.a .pio\build\esp32\lib648\libAsyncTCP_ID1826.a .pio\build\esp32\lib79a\libWiFi.a .pio\build\esp32\libc41\libFS.a .pio\build\esp32\libabe\libSPIFFS.a .pio\build\esp32\libef4\libUpdate.a .pio\build\esp32\lib5d6\libpainlessMesh_ID1269.a .pio\build\esp32\lib2b1\libOneButton_ID1260.a .pio\build\esp32\libf8d\libTicker.a .pio\build\esp32\lib1c3\libAsyncMqttClient_ID346.a ".pio\build\esp32\libb4a\libESP Async WebServer_ID306.a" ".pio\build\esp32\lib027\libAdafruit NeoPixel_ID28.a" .pio\build\esp32\libb23\libAmbimate_ID6454.a .pio\build\esp32\lib558\libBSECSoftwareLibrary_ID6979.a .pio\build\esp32\libFrameworkArduinoVariant.a .pio\build\esp32\libFrameworkArduino.a -lalgobsec -lgcc -lesp32 -lphy -lesp_http_client -lmbedtls -lrtc -lesp_http_server -lbtdm_app -lspiffs -lbootloader_support -lmdns -lnvs_flash -lfatfs -lpp -lnet80211 -ljsmn -lface_detection -llibsodium -lvfs -ldl_lib -llog -lfreertos -lcxx -lsmartconfig_ack -lxtensa-debug-module -lheap -ltcpip_adapter -lmqtt -lulp -lfd -lfb_gfx -lnghttp -lprotocomm -lsmartconfig -lm -lethernet -limage_util -lc_nano -lsoc -ltcp_transport -lc -lmicro-ecc -lface_recognition -ljson -lwpa_supplicant -lmesh -lesp_https_ota -lwpa2 -lexpat -llwip 
    -lwear_levelling -lapp_update -ldriver -lbt -lespnow -lcoap -lasio -lnewlib -lconsole -lapp_trace -lesp32-camera -lhal -lprotobuf-c -lsdmmc -lcore -lpthread -lcoexist -lfreemodbus -lspi_flash -lesp-tls -lwpa -lwifi_provisioning -lwps -lesp_adc_cal -lesp_event -lopenssl -lesp_ringbuf -lfr -lstdc++ -Wl,--end-group
    c:/users/pedro/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find -lalgobsec
    collect2.exe: error: ld returned 1 exit status
    *** [.pio\build\esp32\firmware.elf] Error 1

     

     

     

    Do I need to put libalgobsec.a somewhere else?

     

    Thanks for all the patience 🙂

     

    FYI, I didn't knwo if the images uploaded correctly

    handytech
    Community Moderator
    Community Moderator

    The -L option in the build command doesn't look like the original anymore and is probably why it can't find the library:

    -LC:\Users\Pedro\.platformio\platforms\espressif32\builder\UsersPedro.platformiolibBSECSoftwareLibrary_ID6979srcesp32

    Not sure exactly what platformIO is expecting, maybe forward slashes instead of backward slahes?  Or relative path to your platformio.ini?

    I used

    build_flags =
      -L .pio/libdeps/esp32/BSECSoftwareLibrary_ID6979/src/inc
      -I .pio/libdeps/esp32/BSECSoftwareLibrary_ID6979/src/esp32
      -libalgobsec
     
    or
    build_flags =
      -L '.pio/libdeps/esp32/BSECSoftwareLibrary_ID6979/src/inc'
      -I '.pio/libdeps/esp32/BSECSoftwareLibrary_ID6979/src/esp32'
      -libalgobsec

     

    Keeps saying the same

    https://community.platformio.org/t/how-to-use-relative-paths-in-build-flags/9540/2

    c:/users/pedro/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find -libalgobsec
    collect2.exe: error: ld returned 1 exit status

    *** [.pio\build\esp32\firmware.elf] Error 1

    Nobody has used this sensor with platform IO before? 

    I'm developing a multisensor board and having IAQ and eCO2 info is key for me.

    Thanks in advance

     

    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