Skip to content

Commit c81329d

Browse files
committed
[ESP32-S3] add some build infra for Elecrow M5
1 parent 1390047 commit c81329d

3 files changed

Lines changed: 43 additions & 9 deletions

File tree

software/firmware/source/SoftRF/src/platform/ESP32.cpp

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ const char *ESP32S3_Model_Ham = "Ham Edition"; /* 303a:818F */
200200
const char *ESP32S3_Model_Midi = "Midi Edition"; /* 303a:81A0 */
201201
const char *ESP32S3_Model_Ink = "Ink Edition"; /* 303a:820A */
202202
const char *ESP32S3_Model_Gizmo = "Gizmo Edition"; /* 303a:82D9 */
203+
const char *ESP32S3_Model_Adv = "Adventure Edition"; /* 303a:XXXX */
203204
const uint16_t ESP32SX_Device_Version = SOFTRF_USB_FW_VERSION;
204205

205206
#if defined(EXCLUDE_WIFI)
@@ -1565,6 +1566,24 @@ static void ESP32_setup()
15651566
#if defined(USE_RADIOLIB)
15661567
lmic_pins.dio[0] = SOC_GPIO_PIN_M2_DIO1;
15671568
#endif /* USE_RADIOLIB */
1569+
1570+
} else if (esp32_board == ESP32_ELECROW_TN_M5) {
1571+
1572+
hw_info.model = SOFTRF_MODEL_ADVENTURE;
1573+
hw_info.revision = 0; /* TBD */
1574+
1575+
#if ARDUINO_USB_CDC_ON_BOOT
1576+
SerialOutput.begin(SERIAL_OUT_BR, SERIAL_OUT_BITS,
1577+
SOC_GPIO_PIN_M5_CONS_RX,
1578+
SOC_GPIO_PIN_M5_CONS_TX);
1579+
#endif /* ARDUINO_USB_CDC_ON_BOOT */
1580+
1581+
lmic_pins.nss = SOC_GPIO_PIN_M5_SS;
1582+
lmic_pins.rst = SOC_GPIO_PIN_M5_RST;
1583+
lmic_pins.busy = SOC_GPIO_PIN_M5_BUSY;
1584+
#if defined(USE_RADIOLIB)
1585+
lmic_pins.dio[0] = SOC_GPIO_PIN_M5_DIO1;
1586+
#endif /* USE_RADIOLIB */
15681587
#endif /* CONFIG_IDF_TARGET_ESP32S3 */
15691588

15701589
#if defined(CONFIG_IDF_TARGET_ESP32C2)
@@ -1843,6 +1862,7 @@ static void ESP32_setup()
18431862
esp32_board == ESP32_HELTEC_TRACKER ? ESP32S3_Model_Midi :
18441863
esp32_board == ESP32_LILYGO_T3S3_EPD ? ESP32S3_Model_Ink :
18451864
esp32_board == ESP32_ELECROW_TN_M2 ? ESP32S3_Model_Gizmo :
1865+
esp32_board == ESP32_ELECROW_TN_M5 ? ESP32S3_Model_Adv :
18461866
ESP32SX_Model_Stand);
18471867
USB.firmwareVersion(ESP32SX_Device_Version);
18481868
USB.serialNumber(usb_serial_number);
@@ -3818,6 +3838,10 @@ static void ESP32_SPI_begin()
38183838
SPI.begin(SOC_GPIO_PIN_EHUB_SCK, SOC_GPIO_PIN_EHUB_MISO,
38193839
SOC_GPIO_PIN_EHUB_MOSI, SOC_GPIO_PIN_EHUB_SS);
38203840
break;
3841+
case ESP32_ELECROW_TN_M5:
3842+
SPI.begin(SOC_GPIO_PIN_M5_SCK, SOC_GPIO_PIN_M5_MISO,
3843+
SOC_GPIO_PIN_M5_MOSI, SOC_GPIO_PIN_M5_SS);
3844+
break;
38213845
#endif /* CONFIG_IDF_TARGET_ESP32S3 */
38223846
#if defined(CONFIG_IDF_TARGET_ESP32C2)
38233847
case ESP32_C2_DEVKIT:
@@ -3958,6 +3982,10 @@ static void ESP32_swSer_begin(unsigned long baud)
39583982
Serial.println(F("INFO: Elecrow ThinkNode M2 is detected."));
39593983
Serial_GNSS_In.begin(baud, SERIAL_IN_BITS,
39603984
SOC_GPIO_PIN_M2_GNSS_RX, SOC_GPIO_PIN_M2_GNSS_TX);
3985+
} else if (esp32_board == ESP32_ELECROW_TN_M5) {
3986+
Serial.println(F("INFO: Elecrow ThinkNode M5 is detected."));
3987+
Serial_GNSS_In.begin(baud, SERIAL_IN_BITS,
3988+
SOC_GPIO_PIN_M5_GNSS_RX, SOC_GPIO_PIN_M5_GNSS_TX);
39613989
} else if (esp32_board == ESP32_EBYTE_HUB_900TB) {
39623990
Serial.println(F("INFO: Ebyte EoRa_HUB_900TB is detected."));
39633991
Serial_GNSS_In.begin(baud, SERIAL_IN_BITS,
@@ -4878,7 +4906,8 @@ static void ESP32_Battery_setup()
48784906
esp32_board == ESP32_LILYGO_T3S3_OLED ||
48794907
esp32_board == ESP32_EBYTE_HUB_900TB) {
48804908
calibrate_voltage((adc1_channel_t) ADC1_GPIO1_CHANNEL);
4881-
} else if (esp32_board == ESP32_BANANA_PICOW) {
4909+
} else if (esp32_board == ESP32_BANANA_PICOW ||
4910+
esp32_board == ESP32_ELECROW_TN_M5) {
48824911
calibrate_voltage((adc1_channel_t) ADC1_GPIO8_CHANNEL); /* TBD */
48834912
} else if (esp32_board == ESP32_ELECROW_TN_M2) {
48844913
adc2_calibrate_voltage((adc2_channel_t) ADC2_GPIO17_CHANNEL);
@@ -5091,6 +5120,10 @@ static bool ESP32_Baro_setup()
50915120

50925121
Wire.setPins(SOC_GPIO_PIN_M2_SDA, SOC_GPIO_PIN_M2_SCL);
50935122

5123+
} else if (esp32_board == ESP32_ELECROW_TN_M5) {
5124+
5125+
Wire.setPins(SOC_GPIO_PIN_M5_SDA, SOC_GPIO_PIN_M5_SCL);
5126+
50945127
} else if (esp32_board == ESP32_EBYTE_HUB_900TB) {
50955128

50965129
Wire.setPins(SOC_GPIO_PIN_EHUB_SDA, SOC_GPIO_PIN_EHUB_SCL);

software/firmware/source/SoftRF/src/platform/ESP32.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@ static inline color_t uni_Color(uint8_t r, uint8_t g, uint8_t b) {
303303
#include "iomap/LilyGO_T3S3.h"
304304
#include "iomap/Banana_PicoW.h"
305305
#include "iomap/Elecrow_ThinkNode_M2.h"
306+
#include "iomap/Elecrow_ThinkNode_M5.h"
306307
#include "iomap/Generic_ELRS_C3.h"
307308
#include "iomap/Ebyte_EoRa_HUB_900TB.h"
308309
#include "iomap/WT99P4C5.h"

software/firmware/source/SoftRF/src/platform/iomap/Elecrow_ThinkNode_M5.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11

22
/* Peripherals */
3-
#define SOC_GPIO_PIN_CONS_M5_RX 44
4-
#define SOC_GPIO_PIN_CONS_M5_TX 43
3+
#define SOC_GPIO_PIN_M5_CONS_RX 44
4+
#define SOC_GPIO_PIN_M5_CONS_TX 43
55

66
/* L76K */
7-
#define SOC_GPIO_PIN_GNSS_M5_RX 20
8-
#define SOC_GPIO_PIN_GNSS_M5_TX 19
7+
#define SOC_GPIO_PIN_M5_GNSS_RX 20
8+
#define SOC_GPIO_PIN_M5_GNSS_TX 19
99

10-
#define SOC_GPIO_PIN_GNSS_M5_PPS SOC_UNUSED_PIN // TBD
11-
#define SOC_GPIO_PIN_GNSS_M5_WKE 11
12-
#define SOC_GPIO_PIN_GNSS_M5_RST 13
13-
#define SOC_GPIO_PIN_GNSS_M5_SW 10
10+
#define SOC_GPIO_PIN_M5_GNSS_PPS SOC_UNUSED_PIN // TBD
11+
#define SOC_GPIO_PIN_M5_GNSS_WKE 11
12+
#define SOC_GPIO_PIN_M5_GNSS_RST 13
13+
#define SOC_GPIO_PIN_M5_GNSS_SW 10
1414

1515
/* SPI */
1616
#define SOC_GPIO_PIN_M5_MOSI 15

0 commit comments

Comments
 (0)