PlatformIO Community

Help with ESP32 compiling errors

Hi everybody. I´m Grimor from Spain.
I´m trying to make this project with ESP32 wroom dev module and 64x32 RGB Led Matrix.
LIGHTWELL RGB MATRIX CLOCK

I´m usually do this things with arduino IDE but never with Platformio before.
So i installed Visual Studio Code on windows 10 PC and install Platformio. The code is alright beacuse is a comercial project from a chinesse company who sells the PCB and apps for this clock. I think i already downloaded all the libraries, but when i try to compìle i get several errors:


~~~~~~~
C:/Users/julii/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include/soc/soc.h:146:31: note: in expansion of macro 'REG_READ'
             (REG_WRITE((_r),((REG_READ(_r) & ~((_f##_V) << (_f##_S)))|(((_v) & (_f##_V))<<(_f##_S)))));                \
                               ^~~~~~~~
C:/Users/julii/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include/soc/io_mux_reg.h:91:46: note: in expansion of macro 'REG_SET_FIELD'
 #define PIN_FUNC_SELECT(PIN_NAME, FUNC)      REG_SET_FIELD(PIN_NAME, MCU_SEL, FUNC)
                                              ^~~~~~~~~~~~~
.pio/libdeps/esp32dev/SmartMatrix/src/esp32_i2s_parallel.c:136:6: note: in expansion of macro 'PIN_FUNC_SELECT'
      PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[gpio], PIN_FUNC_GPIO);
      ^~~~~~~~~~~~~~~
C:/Users/julii/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_common/include/esp_assert.h:23:28: error: expression in static assertion is not an integer
             _Static_assert(__builtin_choose_expr(__builtin_constant_p(CONDITION), (CONDITION), 1), #MSG);   \
                            ^~~~~~~~~~~~~~~~~~~~~
C:/Users/julii/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include/soc/soc.h:104:45: note: in definition of macro 'REG_WRITE'
             (*(volatile uint32_t *)(_r)) = (_v);                                                                       \
                                             ^~
C:/Users/julii/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include/soc/soc.h:96:38: note: in expansion of macro 'TRY_STATIC_ASSERT'
 #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
                                      ^~~~~~~~~~~~~~~~~
C:/Users/julii/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include/soc/soc.h:109:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
             ASSERT_IF_DPORT_REG((_r), REG_READ);                                                                       \
             ^~~~~~~~~~~~~~~~~~~
C:/Users/julii/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include/soc/soc.h:146:31: note: in expansion of macro 'REG_READ'
             (REG_WRITE((_r),((REG_READ(_r) & ~((_f##_V) << (_f##_S)))|(((_v) & (_f##_V))<<(_f##_S)))));                \
                               ^~~~~~~~
C:/Users/julii/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include/soc/io_mux_reg.h:91:46: note: in expansion of macro 'REG_SET_FIELD'
 #define PIN_FUNC_SELECT(PIN_NAME, FUNC)      REG_SET_FIELD(PIN_NAME, MCU_SEL, FUNC)
                                              ^~~~~~~~~~~~~
.pio/libdeps/esp32dev/SmartMatrix/src/esp32_i2s_parallel.c:136:6: note: in expansion of macro 'PIN_FUNC_SELECT'
      PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[gpio], PIN_FUNC_GPIO);
      ^~~~~~~~~~~~~~~
.pio/libdeps/esp32dev/SmartMatrix/src/esp32_i2s_parallel.c:137:31: error: 'GPIO_MODE_DEF_OUTPUT' undeclared (first use in this function)
      gpio_set_direction(gpio, GPIO_MODE_DEF_OUTPUT);
                               ^~~~~~~~~~~~~~~~~~~~
.pio/libdeps/esp32dev/SmartMatrix/src/esp32_i2s_parallel.c: In function 'i2s_parallel_setup_without_malloc':
.pio/libdeps/esp32dev/SmartMatrix/src/esp32_i2s_parallel.c:278:23: error: 'I2S0O_DATA_OUT0_IDX' undeclared (first use in this function); did you mean 'I2S_TX_DATA_NUM_S'?
         sig_data_base=I2S0O_DATA_OUT0_IDX;
                       ^~~~~~~~~~~~~~~~~~~
                       I2S_TX_DATA_NUM_S
.pio/libdeps/esp32dev/SmartMatrix/src/esp32_i2s_parallel.c:279:17: error: 'I2S0O_WS_OUT_IDX' undeclared (first use in this function); did you mean 'I2S_RX_WS_OUT_DELAY'?
         sig_clk=I2S0O_WS_OUT_IDX;
                 ^~~~~~~~~~~~~~~~
                 I2S_RX_WS_OUT_DELAY
.pio/libdeps/esp32dev/SmartMatrix/src/esp32_i2s_parallel.c:282:27: error: 'I2S1O_DATA_OUT0_IDX' undeclared (first use in this function); did you mean 'I2S_TX_DATA_NUM_S'?
             sig_data_base=I2S1O_DATA_OUT0_IDX;
                           ^~~~~~~~~~~~~~~~~~~
                           I2S_TX_DATA_NUM_S
.pio/libdeps/esp32dev/SmartMatrix/src/esp32_i2s_parallel.c:285:27: error: 'I2S1O_DATA_OUT8_IDX' undeclared (first use in this function); did you mean 'I2S_TX_DATA_NUM_S'?
             sig_data_base=I2S1O_DATA_OUT8_IDX;
                           ^~~~~~~~~~~~~~~~~~~
                           I2S_TX_DATA_NUM_S
.pio/libdeps/esp32dev/SmartMatrix/src/esp32_i2s_parallel.c:289:17: error: 'I2S1O_WS_OUT_IDX' undeclared (first use in this function); did you mean 'I2S_RX_WS_OUT_DELAY'?
         sig_clk=I2S1O_WS_OUT_IDX;
                 ^~~~~~~~~~~~~~~~
                 I2S_RX_WS_OUT_DELAY
.pio/libdeps/esp32dev/SmartMatrix/src/esp32_i2s_parallel.c:384:5: warning: implicit declaration of function 'esp_intr_alloc'; did you mean 'ets_intr_unlock'? [-Wimplicit-function-declaration]
     esp_intr_alloc(ETS_I2S1_INTR_SOURCE, (int)(ESP_INTR_FLAG_IRAM | ESP_INTR_FLAG_LEVEL1), i2s_isr, NULL, NULL);
     ^~~~~~~~~~~~~~
     ets_intr_unlock
.pio/libdeps/esp32dev/SmartMatrix/src/esp32_i2s_parallel.c:384:48: error: 'ESP_INTR_FLAG_IRAM' undeclared (first use in this function); did you mean 'ESP_ERR_FLASH_BASE'?
     esp_intr_alloc(ETS_I2S1_INTR_SOURCE, (int)(ESP_INTR_FLAG_IRAM | ESP_INTR_FLAG_LEVEL1), i2s_isr, NULL, NULL);
                                                ^~~~~~~~~~~~~~~~~~
                                                ESP_ERR_FLASH_BASE
.pio/libdeps/esp32dev/SmartMatrix/src/esp32_i2s_parallel.c:384:69: error: 'ESP_INTR_FLAG_LEVEL1' undeclared (first use in this function); did you mean 'ESP_ERR_FLASH_BASE'?
     esp_intr_alloc(ETS_I2S1_INTR_SOURCE, (int)(ESP_INTR_FLAG_IRAM | ESP_INTR_FLAG_LEVEL1), i2s_isr, NULL, NULL);
                                                                     ^~~~~~~~~~~~~~~~~~~~
                                                                     ESP_ERR_FLASH_BASE
*** [.pio\build\esp32dev\lib202\SmartMatrix\esp32_i2s_parallel.c.o] Error 1
=========================================================== [FAILED] Took 67.07 seconds ===========================================================

 *  El proceso del terminal "C:\Users\julii\.platformio\penv\Scripts\platformio.exe 'run', '--target', 'upload'" finalizó con el código de salida 1. 
 *  Las tareas reutilizarán el terminal, presione cualquier tecla para cerrarlo. 

I´m just a newbie, so any help will be apreciated.
Thanks in advance.

This platformio.ini is not good since it doesn’t reference a fixed platform version for reproducable builds, and even words, it references a local filepath with lib_extra_dirs = D:\1APACER\Help\ArduinoProjectsPIO\library that doesn’t seem to be contained in the repo at all.

Based on date of the project, one could guess that it used Arduino core 1.0.6 at the time of development, which per releases is platform = espressif32@3.5.0 in the platformio.ini.

The fixed platformio.ini can be found in https://github.com/maxgerhardt/RGB-P4-Led-Matrix-Clock-based-on-ESP32/blob/main/Platformio/platformio.ini, the PR is open here. Compilation works for me. Since I don’t have the hardware, I can’t test further.

Oh! thank you very much. I’ll try after work today. Really appreciate. Thanks