Is this working with ESP-IDF v5.1
dj-fiorex opened this issue · comments
Hello, first of all thanks for this repo, i want to ask you if you tried to build an example with the latest version of ESP-IDF (v5.1) because i have some weird errors:
- First of all i needed to add
REQUIRES driver
to CMakeLists.txt of the library, because ESP-IDF doesn't include driver by default anymore - This is the error log during build:
[862/879] Building C object esp-idf/model/CMakeFiles/__idf_model.dir/BNO055.c.objFAILED: esp-idf/model/CMakeFiles/__idf_model.dir/BNO055.c.obj
ccache C:\Users\carme\.espressif\tools\xtensa-esp32-elf\esp-2022r1-11.2.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-gcc.exe -DESP_PLATFORM -DIDF_VER=\"v5.1-dev-3196-g732df630cd\" -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/build/config -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/model/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/open62541lib/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/newlib/platform_include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/freertos/FreeRTOS-Kernel/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/freertos/esp_additions/include/freertos -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/freertos/esp_additions/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_hw_support/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_hw_support/include/soc -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_hw_support/include/soc/esp32 -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_hw_support/port/esp32/. -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_hw_support/port/esp32/private_include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/heap/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/log/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/soc/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/soc/esp32 -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/soc/esp32/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/hal/esp32/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/hal/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/hal/platform_port/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_rom/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_rom/include/esp32 -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_rom/esp32 -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_common/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_system/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_system/port/soc -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_system/port/include/private -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/xtensa/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/xtensa/esp32/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/include/apps -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/include/apps/sntp -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/lwip/src/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/port/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/port/freertos/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/port/esp32xx/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/port/esp32xx/include/arch -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/driver/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/driver/deprecated -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/driver/esp32/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_pm/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_ringbuf/include -mlongcalls -Wno-frame-address -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -Og -fmacro-prefix-map=C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno=. -fmacro-prefix-map=C:/Users/carme/Documents/Haptica/IMU/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -DconfigENABLE_FREERTOS_DEBUG_OCDAWARE=1 -std=gnu17 -Wno-old-style-declaration -Wno-error=format= -Wno-format -MD -MT esp-idf/model/CMakeFiles/__idf_model.dir/BNO055.c.obj -MF esp-idf\model\CMakeFiles\__idf_model.dir\BNO055.c.obj.d -o esp-idf/model/CMakeFiles/__idf_model.dir/BNO055.c.obj -c C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/model/BNO055.c
In file included from C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/model/BNO055.c:2
:
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/include/BNO055ESP32.h:33:10: fatal error: cstring: No such file or directory
33 | #include <cstring> //memset, memcpy
| ^~~~~~~~~
compilation terminated.
[865/879] Building CXX object esp-idf/BNO055ESP32/CMakeFiles/__idf_BNO055ESP32.dir/BNO055ESP32.cpp.objFAILED: esp-idf/BNO055ESP32/CMakeFiles/__idf_BNO055ESP32.dir/BNO055ESP32.cpp.obj
ccache C:\Users\carme\.espressif\tools\xtensa-esp32-elf\esp-2022r1-11.2.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-g++.exe -DESP_PLATFORM -DIDF_VER=\"v5.1-dev-3196-g732df630cd\" -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/build/config -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/newlib/platform_include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/freertos/FreeRTOS-Kernel/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/freertos/esp_additions/include/freertos -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/freertos/esp_additions/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_hw_support/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_hw_support/include/soc -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_hw_support/include/soc/esp32 -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_hw_support/port/esp32/. -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_hw_support/port/esp32/private_include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/heap/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/log/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/soc/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/soc/esp32 -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/soc/esp32/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/hal/esp32/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/hal/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/hal/platform_port/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_rom/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_rom/include/esp32 -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_rom/esp32 -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_common/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_system/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_system/port/soc -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_system/port/include/private -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/xtensa/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/xtensa/esp32/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/include/apps -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/include/apps/sntp -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/lwip/src/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/port/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/port/freertos/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/port/esp32xx/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/lwip/port/esp32xx/include/arch -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/driver/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/driver/deprecated -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/driver/esp32/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_pm/include -IC:/Users/carme/Documents/Haptica/IMU/esp-idf/components/esp_ringbuf/include -mlongcalls -Wno-frame-address -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -Og -fmacro-prefix-map=C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno=. -fmacro-prefix-map=C:/Users/carme/Documents/Haptica/IMU/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -DconfigENABLE_FREERTOS_DEBUG_OCDAWARE=1 -std=gnu++20 -fno-exceptions -fno-rtti -MD -MT esp-idf/BNO055ESP32/CMakeFiles/__idf_BNO055ESP32.dir/BNO055ESP32.cpp.obj -MF esp-idf\BNO055ESP32\CMakeFiles\__idf_BNO055ESP32.dir\BNO055ESP32.cpp.obj.d -o esp-idf/BNO055ESP32/CMakeFiles/__idf_BNO055ESP32.dir/BNO055ESP32.cpp.obj -c C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp
In file included from C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp:29:
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/include/BNO055ESP32.h:666:61: error: 'const uart_config_t' has no non-static data member named 'use_ref_tick'
666 | .use_ref_tick = false};
| ^
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp: In member function 'void BNO055::i2c_readLen(uint8_t, uint8_t*, uint8_t, uint32_t)':
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp:101:45: error: exception handling disabled, use '-fexceptions' to enable
101 | if (err != ESP_OK) throw BNO055I2CError();
| ^
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp: In member function 'void BNO055::uart_readLen(bno055_reg_t, uint8_t*, uint8_t, uint32_t)':
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp:173:79: error: 'portTICK_RATE_MS' was not declared in this scope; did you mean 'portTICK_PERIOD_MS'?
173 | rxBytes = uart_read_bytes(_uartPort, data, (len + 2), timeoutMS / portTICK_RATE_MS);
| ^~~~~~~~~~~~~~~~
| portTICK_PERIOD_MS
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp: In member function 'void BNO055::uart_writeLen(bno055_reg_t, uint8_t*, uint8_t, uint32_t)':
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp:234:71: error: 'portTICK_RATE_MS' was not declared in this scope; did you mean 'portTICK_PERIOD_MS'?
234 | rxBytes = uart_read_bytes(_uartPort, data, 2, timeoutMS / portTICK_RATE_MS);
| ^~~~~~~~~~~~~~~~
| portTICK_PERIOD_MS
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp: In member function 'void BNO055::reset()':
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp:409:9: error: 'gpio_pad_select_gpio' was not declared in this scope; did you mean 'esp_rom_gpio_pad_select_gpio'?
409 | gpio_pad_select_gpio(_rstPin);
| ^~~~~~~~~~~~~~~~~~~~
| esp_rom_gpio_pad_select_gpio
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp: In member function 'void BNO055::begin()':
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp:793:9: error: 'gpio_pad_select_gpio' was not declared in this scope; did you mean 'esp_rom_gpio_pad_select_gpio'?
793 | gpio_pad_select_gpio(_intPin);
| ^~~~~~~~~~~~~~~~~~~~
| esp_rom_gpio_pad_select_gpio
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp: In member function 'void BNO055::stop()':
C:/Users/carme/Documents/Haptica/IMU/esp-idf/examples/opcua-esp32-bno/components/BNO055ESP32/BNO055ESP32.cpp:814:7: error: '...' handler must be the last handler for its try block [-fpermissive]
814 | } catch (BNO055BaseException &exc) {
| ^~~~~
Did you have some ideas?
Thanks a lot!
Hello, I will wait for v5.1 to be actually released before making any adjustment.
Meanwhile you can try to:
- Add
REQUIRES driver
toCMakeLists.txt
- Replace all
portTICK_RATE_MS
withportTICK_PERIOD_MS
- Add
#include rom/gpio.h
to/include/BNO055ESP32.h
^ Having to do this is really odd, I think it will be fixed by the espressif team in v5.1 - Remove
.use_ref_tick
from/include/BNO055ESP32.h
(Around line ~663)
^ Apparently it has been replaced bysource_clk
Right now I don't have a BNO055 on hand to run the code,
but with this changes the examples/example.cpp
does compile against latest docker esp-idf image
GLHF