ESP32 compilation failure on platformio

Hello,

I’m having trouble compiling for ESP32 on PIO.

Platformio.ini :

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:seeed_xiao_esp32s3]
platform = espressif32
board = seeed_xiao_esp32s3
framework = arduino
lib_deps = askuric/Simple FOC@^2.3.5

lib_archive = false
monitor_speed = 115200

Build output :

Compiling .pio/build/seeed_xiao_esp32s3/lib4c1/Simple FOC/drivers/hardware_specific/generic_mcu.cpp.o
Compiling .pio/build/seeed_xiao_esp32s3/lib4c1/Simple FOC/drivers/hardware_specific/nrf52_mcu.cpp.o
.pio/libdeps/seeed_xiao_esp32s3/Simple FOC/src/drivers/hardware_specific/esp32/esp32_driver_mcpwm.cpp: In function 'void* _configure6PWMPinsMCPWM(long int, int, int, float, int*)':
.pio/libdeps/seeed_xiao_esp32s3/Simple FOC/src/drivers/hardware_specific/esp32/esp32_driver_mcpwm.cpp:285:20: error: 'struct mcpwm_timer_config_t::<unnamed>' has no member named 'allow_pd'
  285 |   pwm_config.flags.allow_pd = 0;
      |                    ^~~~~~~~
.pio/libdeps/seeed_xiao_esp32s3/Simple FOC/src/drivers/hardware_specific/esp32/esp32_driver_mcpwm.cpp: In function 'void* _configurePinsMCPWM(long int, int, int, int, int*)':
.pio/libdeps/seeed_xiao_esp32s3/Simple FOC/src/drivers/hardware_specific/esp32/esp32_driver_mcpwm.cpp:414:22: error: 'struct mcpwm_timer_config_t::<unnamed>' has no member named 'allow_pd'
  414 |     pwm_config.flags.allow_pd = 0;
      |                      ^~~~~~~~
Compiling .pio/build/seeed_xiao_esp32s3/lib4c1/Simple FOC/drivers/hardware_specific/portenta_h7_mcu.cpp.o
Compiling .pio/build/seeed_xiao_esp32s3/lib4c1/Simple FOC/drivers/hardware_specific/renesas/renesas.cpp.o
*** [.pio/build/seeed_xiao_esp32s3/lib4c1/Simple FOC/drivers/hardware_specific/esp32/esp32_driver_mcpwm.cpp.o] Error 1
.pio/libdeps/seeed_xiao_esp32s3/Simple FOC/src/drivers/hardware_specific/esp32/esp32_mcpwm_mcu.cpp:6:62: note: '#pragma message: SimpleFOC: compiling for ESP32 MCPWM driver'
    6 | #pragma message("SimpleFOC: compiling for ESP32 MCPWM driver")
      |                                                              ^
======================================================================== [FAILED] Took 7.10 seconds ========================================================================

Platform is MacOS / ARM (though I doubt it is related)

Any help is appreciated, thank you !

Hi @uiguig , welcome to SimpleFOC!

To use newer ESP32 framework versions with PlatformIO you have to use the community PIO platform for ESP32: GitHub - pioarduino/platform-espressif32: Espressif 32: pioarduino community platform compatible with PlatformIO

Update

I have not found a solution for ESP32 so far.

I switched to the STM32 platform instead. I didn’t need WiFi/Bluetooth anyways as i’m using Commander over USB-CDC. Still waiting for parts to test FOC but the code compiles fine and the commander interface works.

I’m having my own issues with it but this .ini file at least lets it build for me. I’m still debugging an issue with it freezing but I think that’s due to my code.

\[env:esp32-s3-fh4r2\]

platform = https://github.com/pioarduino/platform-espressif32

board = esp32-s3-fh4r2

framework = arduino

lib_archive = false

lib_deps = askuric/Simple FOC@^2.3.5

build_flags = 

    -DCONFIG_FREERTOS_HZ=1000

    -DARDUINO_USB_CDC_ON_BOOT=1