Skip to content

Commit

Permalink
build for an ESP32-C5 target
Browse files Browse the repository at this point in the history
  • Loading branch information
lyusupov committed Feb 4, 2025
1 parent f8e9c82 commit d185069
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 12 deletions.
47 changes: 37 additions & 10 deletions software/firmware/source/SoftRF/src/platform/ESP32.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,12 @@
#include <esp_bt.h>
#include <BLEDevice.h>
#endif /* CONFIG_IDF_TARGET_ESP32S2 */
#if !defined(CONFIG_IDF_TARGET_ESP32C6) && \
#if !defined(CONFIG_IDF_TARGET_ESP32C5) && \
!defined(CONFIG_IDF_TARGET_ESP32C6) && \
!defined(CONFIG_IDF_TARGET_ESP32H2) && \
!defined(CONFIG_IDF_TARGET_ESP32P4)
#include <soc/rtc_cntl_reg.h>
#endif /* CONFIG_IDF_TARGET_ESP32C6 || H2 || P4 */
#endif /* CONFIG_IDF_TARGET_ESP32C5 || C6 || H2 || P4 */
#include <soc/efuse_reg.h>
#include <Wire.h>
#include <rom/rtc.h>
Expand Down Expand Up @@ -497,7 +498,9 @@ static void ESP32_setup()
esp_err_t ret = ESP_OK;
uint8_t null_mac[6] = {0};

#if defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32H2)
#if defined(CONFIG_IDF_TARGET_ESP32C5) || \
defined(CONFIG_IDF_TARGET_ESP32C6) || \
defined(CONFIG_IDF_TARGET_ESP32H2)
ret = esp_read_mac(efuse_mac, ESP_MAC_WIFI_STA);
if (ret != ESP_OK) {
#else
Expand All @@ -508,7 +511,7 @@ static void ESP32_setup()
* abort or use the default base MAC address which is stored in BLK0 of EFUSE by doing
* nothing.
*/
#endif /* CONFIG_IDF_TARGET_ESP32C6 || H2 */
#endif /* CONFIG_IDF_TARGET_ESP32C5 || C6 || H2 */
ESP_LOGI(TAG, "Use base MAC address which is stored in BLK0 of EFUSE");
chipmacid = ESP.getEfuseMac();
} else {
Expand Down Expand Up @@ -620,6 +623,9 @@ static void ESP32_setup()
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
default:
esp32_board = ESP32_C3_DEVKIT;
#elif defined(CONFIG_IDF_TARGET_ESP32C5)
default:
esp32_board = ESP32_C5_DEVKIT;
#elif defined(CONFIG_IDF_TARGET_ESP32C6)
default:
esp32_board = ESP32_C6_DEVKIT;
Expand Down Expand Up @@ -685,6 +691,13 @@ static void ESP32_setup()
esp32_board = ESP32_C3_DEVKIT;
break;
}
#elif defined(CONFIG_IDF_TARGET_ESP32C5)
switch (flash_id)
{
default:
esp32_board = ESP32_C5_DEVKIT;
break;
}
#elif defined(CONFIG_IDF_TARGET_ESP32C6)
uint32_t pkg_ver = REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_3_REG,
EFUSE_PKG_VERSION);
Expand Down Expand Up @@ -1546,6 +1559,7 @@ static void ESP32_setup()

#elif ARDUINO_USB_CDC_ON_BOOT && \
(defined(CONFIG_IDF_TARGET_ESP32C3) || \
defined(CONFIG_IDF_TARGET_ESP32C5) || \
defined(CONFIG_IDF_TARGET_ESP32C6) || \
defined(CONFIG_IDF_TARGET_ESP32H2) || \
defined(CONFIG_IDF_TARGET_ESP32P4))
Expand Down Expand Up @@ -2558,7 +2572,9 @@ static void* ESP32_getResetInfoPtr()
case TG1WDT_SYS_RESET : reset_info.reason = REASON_WDT_RST; break;
#endif /* CONFIG_IDF_TARGET_ESP32C2 */
case RTCWDT_SYS_RESET : reset_info.reason = REASON_WDT_RST; break;
#if !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32H2)
#if !defined(CONFIG_IDF_TARGET_ESP32C5) && \
!defined(CONFIG_IDF_TARGET_ESP32C6) && \
!defined(CONFIG_IDF_TARGET_ESP32H2)
case INTRUSION_RESET : reset_info.reason = REASON_EXCEPTION_RST; break;
#endif /* CONFIG_IDF_TARGET_ESP32C6 */
case RTCWDT_CPU_RESET : reset_info.reason = REASON_WDT_RST; break;
Expand Down Expand Up @@ -2597,7 +2613,9 @@ static String ESP32_getResetInfo()
case TG1WDT_SYS_RESET : return F("Timer Group1 Watch dog reset digital core");
#endif /* CONFIG_IDF_TARGET_ESP32C2 */
case RTCWDT_SYS_RESET : return F("RTC Watch dog Reset digital core");
#if !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32H2)
#if !defined(CONFIG_IDF_TARGET_ESP32C5) && \
!defined(CONFIG_IDF_TARGET_ESP32C6) && \
!defined(CONFIG_IDF_TARGET_ESP32H2)
case INTRUSION_RESET : return F("Instrusion tested to reset CPU");
#endif /* CONFIG_IDF_TARGET_ESP32C6 */
case RTCWDT_CPU_RESET : return F("RTC Watch dog Reset CPU");
Expand Down Expand Up @@ -2629,7 +2647,9 @@ static String ESP32_getResetReason()
case TG1WDT_SYS_RESET : return F("TG1WDT_SYS_RESET");
#endif /* CONFIG_IDF_TARGET_ESP32C2 */
case RTCWDT_SYS_RESET : return F("RTCWDT_SYS_RESET");
#if !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32H2)
#if !defined(CONFIG_IDF_TARGET_ESP32C5) && \
!defined(CONFIG_IDF_TARGET_ESP32C6) && \
!defined(CONFIG_IDF_TARGET_ESP32H2)
case INTRUSION_RESET : return F("INTRUSION_RESET");
#endif /* CONFIG_IDF_TARGET_ESP32C6 */
case RTCWDT_CPU_RESET : return F("RTCWDT_CPU_RESET");
Expand Down Expand Up @@ -3171,10 +3191,10 @@ static void ESP32_EEPROM_extension(int cmd)
#endif /* CONFIG_IDF_TARGET_ESP32 */
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32S3) || \
defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C3) || \
defined(CONFIG_IDF_TARGET_ESP32C6)
defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C6)
if (settings->bluetooth != BLUETOOTH_NONE) {
#if defined(CONFIG_IDF_TARGET_ESP32S3) || defined(CONFIG_IDF_TARGET_ESP32C3) || \
defined(CONFIG_IDF_TARGET_ESP32C6)
defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C6)
settings->bluetooth = BLUETOOTH_LE_HM10_SERIAL;
#else
settings->bluetooth = BLUETOOTH_NONE;
Expand Down Expand Up @@ -4165,7 +4185,9 @@ static void ESP32_Battery_setup()
} else {
calibrate_voltage(SOC_GPIO_PIN_C6_BATTERY);
}
#elif defined(CONFIG_IDF_TARGET_ESP32H2) || defined(CONFIG_IDF_TARGET_ESP32P4)
#elif defined(CONFIG_IDF_TARGET_ESP32C5) || \
defined(CONFIG_IDF_TARGET_ESP32H2) || \
defined(CONFIG_IDF_TARGET_ESP32P4)
/* TBD */
#else
#error "This ESP32 family build variant is not supported!"
Expand Down Expand Up @@ -5122,6 +5144,7 @@ IODev_ops_t ESP32SX_USBSerial_ops = {

#if ARDUINO_USB_MODE && \
(defined(CONFIG_IDF_TARGET_ESP32C3) || \
defined(CONFIG_IDF_TARGET_ESP32C5) || \
defined(CONFIG_IDF_TARGET_ESP32C6) || \
defined(CONFIG_IDF_TARGET_ESP32H2) || \
defined(CONFIG_IDF_TARGET_ESP32P4))
Expand Down Expand Up @@ -5332,6 +5355,9 @@ const SoC_ops_t ESP32_ops = {
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
SOC_ESP32C3,
"ESP32-C3",
#elif defined(CONFIG_IDF_TARGET_ESP32C5)
SOC_ESP32C5,
"ESP32-C5",
#elif defined(CONFIG_IDF_TARGET_ESP32C6)
SOC_ESP32C6,
"ESP32-C6",
Expand Down Expand Up @@ -5382,6 +5408,7 @@ const SoC_ops_t ESP32_ops = {
&ESP32SX_USBSerial_ops,
#elif ARDUINO_USB_MODE && \
(defined(CONFIG_IDF_TARGET_ESP32C3) || \
defined(CONFIG_IDF_TARGET_ESP32C5) || \
defined(CONFIG_IDF_TARGET_ESP32C6) || \
defined(CONFIG_IDF_TARGET_ESP32H2) || \
defined(CONFIG_IDF_TARGET_ESP32P4))
Expand Down
13 changes: 11 additions & 2 deletions software/firmware/source/SoftRF/src/platform/ESP32.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
#endif /* ARDUINO_USB_CDC_ON_BOOT */
#elif defined(CONFIG_IDF_TARGET_ESP32C2) || \
defined(CONFIG_IDF_TARGET_ESP32C3) || \
defined(CONFIG_IDF_TARGET_ESP32C5) || \
defined(CONFIG_IDF_TARGET_ESP32C6) || \
defined(CONFIG_IDF_TARGET_ESP32H2) || \
defined(CONFIG_IDF_TARGET_ESP32P4)
Expand Down Expand Up @@ -94,7 +95,8 @@
*/
#if defined(CONFIG_IDF_TARGET_ESP32C2)
#define EXCLUDE_LED_RING
#elif !defined(CONFIG_IDF_TARGET_ESP32C6) && \
#elif !defined(CONFIG_IDF_TARGET_ESP32C5) && \
!defined(CONFIG_IDF_TARGET_ESP32C6) && \
!defined(CONFIG_IDF_TARGET_ESP32H2) && \
!defined(CONFIG_IDF_TARGET_ESP32P4)
#define USE_NEOPIXELBUS_LIBRARY
Expand Down Expand Up @@ -147,6 +149,8 @@ extern Adafruit_NeoPixel strip;
#define SOC_GPIO_PIN_LED SOC_UNUSED_PIN /* TBD */
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
#define SOC_GPIO_PIN_LED 19 /* D1 */
#elif defined(CONFIG_IDF_TARGET_ESP32C5)
#define SOC_GPIO_PIN_LED SOC_UNUSED_PIN /* TBD */
#elif defined(CONFIG_IDF_TARGET_ESP32C6)
#define SOC_GPIO_PIN_LED 3 /* D1 */
#elif defined(CONFIG_IDF_TARGET_ESP32H2)
Expand Down Expand Up @@ -278,6 +282,7 @@ enum esp32_board_id {
ESP32_S3_DEVKIT,
ESP32_C2_DEVKIT,
ESP32_C3_DEVKIT,
ESP32_C5_DEVKIT,
ESP32_C6_DEVKIT,
ESP32_H2_DEVKIT,
ESP32_P4_DEVKIT,
Expand Down Expand Up @@ -364,7 +369,9 @@ struct rst_info {
#define EXCLUDE_CC1101
#define EXCLUDE_SI443X
#define EXCLUDE_SX1231
#elif defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C6)
#elif defined(CONFIG_IDF_TARGET_ESP32C3) || \
defined(CONFIG_IDF_TARGET_ESP32C5) || \
defined(CONFIG_IDF_TARGET_ESP32C6)
#if ARDUINO_USB_CDC_ON_BOOT
//#define USE_RADIOLIB
#else
Expand Down Expand Up @@ -449,12 +456,14 @@ extern const USB_Device_List_t supported_USB_devices[];
#endif /* USE_USB_HOST */
#elif defined(CONFIG_IDF_TARGET_ESP32C2) || \
defined(CONFIG_IDF_TARGET_ESP32C3) || \
defined(CONFIG_IDF_TARGET_ESP32C5) || \
defined(CONFIG_IDF_TARGET_ESP32C6) || \
defined(CONFIG_IDF_TARGET_ESP32H2) || \
defined(CONFIG_IDF_TARGET_ESP32P4)
#undef USE_OLED
#undef USE_TFT
#if defined(CONFIG_IDF_TARGET_ESP32C2) || \
defined(CONFIG_IDF_TARGET_ESP32C5) || \
defined(CONFIG_IDF_TARGET_ESP32C6) || \
defined(CONFIG_IDF_TARGET_ESP32H2) || \
defined(CONFIG_IDF_TARGET_ESP32P4)
Expand Down
1 change: 1 addition & 0 deletions software/firmware/source/SoftRF/src/system/SoC.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ enum
SOC_ESP32S3,
SOC_ESP32C2,
SOC_ESP32C3,
SOC_ESP32C5,
SOC_ESP32C6,
SOC_ESP32H2,
SOC_ESP32P4,
Expand Down
1 change: 1 addition & 0 deletions software/firmware/source/libraries/LibAPRS_ESP32/AFSK.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include "esp_adc_cal.h"

#if !defined(CONFIG_IDF_TARGET_ESP32C2) && \
!defined(CONFIG_IDF_TARGET_ESP32C5) && \
!defined(CONFIG_IDF_TARGET_ESP32C6) && \
!defined(CONFIG_IDF_TARGET_ESP32H2) && \
!defined(CONFIG_IDF_TARGET_ESP32P4)
Expand Down
1 change: 1 addition & 0 deletions software/firmware/source/libraries/LibAPRS_ESP32/FIFO.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#if defined(ESP32) && \
!defined(CONFIG_IDF_TARGET_ESP32C2) && \
!defined(CONFIG_IDF_TARGET_ESP32C3) && \
!defined(CONFIG_IDF_TARGET_ESP32C5) && \
!defined(CONFIG_IDF_TARGET_ESP32C6) && \
!defined(CONFIG_IDF_TARGET_ESP32H2) && \
!defined(CONFIG_IDF_TARGET_ESP32P4)
Expand Down

0 comments on commit d185069

Please sign in to comment.