Skip to content

ESP32P4 support? #371

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?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions