Skip to content

ESP32P4 support? #371

@Maldus512

Description

@Maldus512

Answers checklist.

  • I have read the Rainmaker documentation and the issue is not addressed there.
  • I have updated my IDF branch (release/vX.Y) to the latest version and checked that the issue is present there. This is not applicable if you are using Rainmaker with Arduino.
  • I have searched the Rainmaker forum and issue tracker for a similar issue and not found a similar issue.

General issue report

Hello everyone. I am trying to build the switch example for an ESP32P4 board, but compilation fails with a weird error:

/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:621:13: error: label 'rmaker_en
' used but not defined
  621 |             goto rmaker_end;
      |             ^~~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c: At top level:
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:660:18: error: expected '=', ','
, ';', 'asm' or '__attribute__' before '|=' token
  660 |     network_bits |= ETHERNET_CONNECTED_EVENT;
      |                  ^~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:663:5: error: expected identifie
r or '(' before 'if'
  663 |     if (network_bits != 0 && !already_connected) {
      |     ^~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:671:64: error: expected ')' befo
re '&' token
  671 |     esp_event_handler_unregister(IP_EVENT, IP_EVENT_ETH_GOT_IP, &esp_rmaker_event_handler);
      |                                                                ^~
      |                                                                )
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:674:5: error: expected identifie
r or '(' before 'if'
  674 |     if (esp_rmaker_priv_data->enable_time_sync) {
      |     ^~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:692:5: error: expected identifie
r or '(' before 'if'
  692 |     if (esp_rmaker_priv_data->need_claim || esp_rmaker_priv_data->claim_done) {
      |     ^~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:709:9: warning: data definition 
has no type or storage class
  709 |         err = esp_rmaker_cmd_response_enable();
      |         ^~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:709:9: error: type defaults to 
int' in declaration of 'err' [-Wimplicit-int]
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:709:15: error: initializer eleme
nt is not constant
  709 |         err = esp_rmaker_cmd_response_enable();
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:710:9: error: expected identifie
r or '(' before 'if'
  710 |         if (err != ESP_OK) {
      |         ^~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:714:39: error: expected declarat
ion specifiers or '...' before 'esp_rmaker_get_node'
  714 |         esp_rmaker_node_add_attribute(esp_rmaker_get_node(), "cmd-resp", "1");
      |                                       ^~~~~~~~~~~~~~~~~~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:714:62: error: expected declarat
ion specifiers or '...' before string constant
  714 |         esp_rmaker_node_add_attribute(esp_rmaker_get_node(), "cmd-resp", "1");
      |                                                              ^~~~~~~~~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:714:74: error: expected declarat
ion specifiers or '...' before string constant
  714 |         esp_rmaker_node_add_attribute(esp_rmaker_get_node(), "cmd-resp", "1");
      |                                                                          ^~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:717:9: warning: data definition 
has no type or storage class
  717 |         err = esp_rmaker_param_cmd_resp_enable();
      |         ^~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:717:9: error: type defaults to 
int' in declaration of 'err' [-Wimplicit-int]
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:717:9: error: redefinition of 'e
rr'
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:709:9: note: previous definition
 of 'err' with type 'int'
  709 |         err = esp_rmaker_cmd_response_enable();
      |         ^~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:717:15: error: initializer eleme
nt is not constant
  717 |         err = esp_rmaker_param_cmd_resp_enable();
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:718:9: error: expected identifie
r or '(' before 'if'
  718 |         if (err != ESP_OK) {
      |         ^~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:728:5: warning: data definition 
has no type or storage class
  728 |     err = esp_rmaker_local_ctrl_enable();
      |     ^~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:728:5: error: type defaults to 
int' in declaration of 'err' [-Wimplicit-int]
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:728:5: error: redefinition of 'e
rr'
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:709:9: note: previous definition
 of 'err' with type 'int'
  709 |         err = esp_rmaker_cmd_response_enable();
      |         ^~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:728:11: error: initializer eleme
nt is not constant
  728 |     err = esp_rmaker_local_ctrl_enable();
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:729:5: error: expected identifie
r or '(' before 'if'
  729 |     if (err != ESP_OK) {
      |     ^~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:734:5: warning: data definition 
has no type or storage class
  734 |     err = esp_rmaker_mqtt_connect();
      |     ^~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:734:5: error: type defaults to 
int' in declaration of 'err' [-Wimplicit-int]
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:734:5: error: redefinition of 'e
rr'
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:709:9: note: previous definition
 of 'err' with type 'int'
  709 |         err = esp_rmaker_cmd_response_enable();
      |         ^~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:734:11: error: initializer eleme
nt is not constant
  734 |     err = esp_rmaker_mqtt_connect();
      |           ^~~~~~~~~~~~~~~~~~~~~~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:735:5: error: expected identifie
r or '(' before 'if'
  735 |     if (err != ESP_OK) {
      |     ^~
In file included from /home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:13:
/home/maldus/Source/Espressif/esp-idf-v5.5/components/log/include/esp_log.h:127:36: error: expected identifier or '(' before 'do'
  127 | #define ESP_LOGI(tag, format, ...) do { ESP_LOG_LEVEL_LOCAL(ESP_LOG_INFO, tag, format, ##__VA_ARGS__); } while(0)
      |                                    ^~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:744:5: note: in expansion of mac
ro 'ESP_LOGI'
  744 |     ESP_LOGI(TAG, "Waiting for MQTT connection");
      |     ^~~~~~~~
/home/maldus/Source/Espressif/esp-idf-v5.5/components/log/include/esp_log.h:127:106: error: expected identifier or '(' before 'while'
  127 | #define ESP_LOGI(tag, format, ...) do { ESP_LOG_LEVEL_LOCAL(ESP_LOG_INFO, tag, format, ##__VA_ARGS__); } while(0)
      |                                                                                                          ^~~~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:744:5: note: in expansion of mac
ro 'ESP_LOGI'
  744 |     ESP_LOGI(TAG, "Waiting for MQTT connection");
      |     ^~~~~~~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:745:5: warning: data definition 
has no type or storage class
  745 |     err = ESP_OK;
      |     ^~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:745:5: error: type defaults to 
int' in declaration of 'err' [-Wimplicit-int]
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:745:5: error: redefinition of 'e
rr'
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:709:9: note: previous definition
 of 'err' with type 'int'
  709 |         err = esp_rmaker_cmd_response_enable();
      |         ^~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:747:11: error: expected '=', ','
, ';', 'asm' or '__attribute__' before ':' token
  747 | rmaker_end:
      |           ^
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:751:5: warning: data definition 
has no type or storage class
  751 |     rmaker_core_event_group = NULL;
      |     ^~~~~~~~~~~~~~~~~~~~~~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:751:5: error: type defaults to 
int' in declaration of 'rmaker_core_event_group' [-Wimplicit-int]
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:751:5: error: conflicting types 
for 'rmaker_core_event_group'; have 'int'
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:58:27: note: previous declaratio
n of 'rmaker_core_event_group' with type 'EventGroupHandle_t' {aka 'struct EventGroupDef_t *'}
   58 | static EventGroupHandle_t rmaker_core_event_group;
      |                           ^~~~~~~~~~~~~~~~~~~~~~~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:752:5: error: expected identifie
r or '(' before 'if'
  752 |     if (err == ESP_OK) {
      |     ^~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:755:25: error: expected '=', ','
, ';', 'asm' or '__attribute__' before '->' token
  755 |     esp_rmaker_priv_data->state = ESP_RMAKER_STATE_INIT_DONE;
      |                         ^~
/home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/components/esp_rainmaker/src/core/esp_rmaker_core.c:756:1: error: expected identifie
r or '(' before '}' token
  756 | }
      | ^
[1184/1324] Performing configure step for 'bootloader'
-- Found Git: /usr/bin/git (found version "2.53.0")
-- Minimal build - OFF
-- The C compiler identification is GNU 14.2.0
-- The CXX compiler identification is GNU 14.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/maldus/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20251107/riscv32-esp-elf/bin/riscv32-esp-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/maldus/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20251107/riscv32-esp-elf/bin/riscv32-esp-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/maldus/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20251107/riscv32-esp-elf/bin/riscv32-esp-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32p4
-- ESP-TEE is currently supported only on the esp32c6;esp32h2;esp32c5 SoCs
-- Project sdkconfig file /home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/examples/switch/sdkconfig
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/riscv/ld/rom.api.ld
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/soc/esp32p4/ld/esp32p4.peripherals.ld
-- Bootloader project name: "bootloader" version: 1
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_rom/esp32p4/ld/esp32p4.rom.ld
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_rom/esp32p4/ld/esp32p4.rom.api.ld
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_rom/esp32p4/ld/esp32p4.rom.rvfp.ld
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_rom/esp32p4/ld/esp32p4.rom.wdt.ld
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_rom/esp32p4/ld/esp32p4.rom.systimer.ld
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_rom/esp32p4/ld/esp32p4.rom.version.ld
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_rom/esp32p4/ld/esp32p4.rom.libc.ld
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_rom/esp32p4/ld/esp32p4.rom.libc-suboptimal_for_misaligned_mem.ld
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_rom/esp32p4/ld/esp32p4.rom.newlib.ld
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/bootloader/subproject/main/ld/esp32p4/bootloader.rom.ld
-- Components: bootloader bootloader_support efuse esp_app_format esp_bootloader_format esp_common esp_hw_support esp_rom esp_security esp_system esptool_py freertos hal log
 main micro-ecc newlib partition_table riscv soc spi_flash
-- Component paths: /home/maldus/Source/Espressif/esp-idf-v5.5/components/bootloader /home/maldus/Source/Espressif/esp-idf-v5.5/components/bootloader_support /home/maldus/So
urce/Espressif/esp-idf-v5.5/components/efuse /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_app_format /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_b
ootloader_format /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_common /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_hw_support /home/maldus/Source/Es
pressif/esp-idf-v5.5/components/esp_rom /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_security /home/maldus/Source/Espressif/esp-idf-v5.5/components/esp_system /
home/maldus/Source/Espressif/esp-idf-v5.5/components/esptool_py /home/maldus/Source/Espressif/esp-idf-v5.5/components/freertos /home/maldus/Source/Espressif/esp-idf-v5.5/com
ponents/hal /home/maldus/Source/Espressif/esp-idf-v5.5/components/log /home/maldus/Source/Espressif/esp-idf-v5.5/components/bootloader/subproject/main /home/maldus/Source/Es
pressif/esp-idf-v5.5/components/bootloader/subproject/components/micro-ecc /home/maldus/Source/Espressif/esp-idf-v5.5/components/newlib /home/maldus/Source/Espressif/esp-idf
-v5.5/components/partition_table /home/maldus/Source/Espressif/esp-idf-v5.5/components/riscv /home/maldus/Source/Espressif/esp-idf-v5.5/components/soc /home/maldus/Source/Es
pressif/esp-idf-v5.5/components/spi_flash
-- Adding linker script /home/maldus/Source/Espressif/esp-idf-v5.5/components/bootloader/subproject/main/ld/esp32p4/bootloader.ld
-- Configuring done (3.7s)
-- Generating done (0.0s)
-- Build files have been written to: /home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/examples/switch/build/bootloader
ninja: build stopped: subcommand failed.
ninja failed with exit code 1, output of the command is in the /home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/examples/switch/build
/log/idf_py_stderr_output_170336 and /home/maldus/Projects/HSW/Rotondi/RTND-display-controllo-remoto/components/esp-rainmaker/examples/switch/build/log/idf_py_stdout_output_
170336

I am using ESP-IDF v5.5 (release branch, up to date).

I noticed the ESP32P4 module isn't listed as supported in the README. Is it something foreseen to be added at some point? Is it actually missing, or am I not seeing the real source of the problem?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions