mirror of
https://github.com/liberatedsystems/RNode_Firmware_CE.git
synced 2025-05-15 12:52:21 -04:00
Add XIAO ESP32S3 support (with Wio-SX1262 and Expansion Base support)
This commit is contained in:
parent
ffca977752
commit
ea77f3b32e
5 changed files with 102 additions and 4 deletions
79
Boards.h
79
Boards.h
|
@ -64,6 +64,10 @@
|
||||||
#define MODEL_DB 0xDB // LilyGO T-Beam Supreme, 433 MHz
|
#define MODEL_DB 0xDB // LilyGO T-Beam Supreme, 433 MHz
|
||||||
#define MODEL_DC 0xDC // LilyGO T-Beam Supreme, 868 MHz
|
#define MODEL_DC 0xDC // LilyGO T-Beam Supreme, 868 MHz
|
||||||
|
|
||||||
|
#define PRODUCT_XIAO_ESP32S3 0xEB // Xiao ESP32S3 - sold by Seeed Studio
|
||||||
|
#define BOARD_XIAO_ESP32S3 0x3E
|
||||||
|
#define MODEL_DD 0xDD // Xiao ESP32S3, 868 MHz
|
||||||
|
|
||||||
#define PRODUCT_T32_10 0xB2 // T3 v1.0 - sold by LilyGO
|
#define PRODUCT_T32_10 0xB2 // T3 v1.0 - sold by LilyGO
|
||||||
#define BOARD_LORA32_V1_0 0x39
|
#define BOARD_LORA32_V1_0 0x39
|
||||||
#define MODEL_BA 0xBA // LilyGO T3 v1.0, 433 MHz
|
#define MODEL_BA 0xBA // LilyGO T3 v1.0, 433 MHz
|
||||||
|
@ -90,7 +94,7 @@
|
||||||
#define MODEL_CA 0xCA // Heltec Lora32 v3, 868 MHz
|
#define MODEL_CA 0xCA // Heltec Lora32 v3, 868 MHz
|
||||||
|
|
||||||
#define PRODUCT_H_W_PAPER 0xC3
|
#define PRODUCT_H_W_PAPER 0xC3
|
||||||
#define BOARD_H_W_PAPER 0x3E
|
#define BOARD_H_W_PAPER 0x3F
|
||||||
#define MODEL_C8 0xC8
|
#define MODEL_C8 0xC8
|
||||||
|
|
||||||
#define PRODUCT_RAK4631 0x10 // RAK4631 - sold by RAKWireless
|
#define PRODUCT_RAK4631 0x10 // RAK4631 - sold by RAKWireless
|
||||||
|
@ -1023,6 +1027,79 @@
|
||||||
-1 // pin_tcxo_enable
|
-1 // pin_tcxo_enable
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
#elif BOARD_MODEL == BOARD_XIAO_ESP32S3
|
||||||
|
#define IS_ESP32S3 true
|
||||||
|
|
||||||
|
#define HAS_DISPLAY true
|
||||||
|
#define DISPLAY OLED
|
||||||
|
//#define HAS_CONSOLE true
|
||||||
|
#define HAS_BLUETOOTH false
|
||||||
|
#define HAS_BLE true
|
||||||
|
//#define HAS_PMU true
|
||||||
|
#define HAS_NP false
|
||||||
|
#define HAS_SD false
|
||||||
|
#define HAS_EEPROM true
|
||||||
|
|
||||||
|
#define HAS_INPUT true
|
||||||
|
#define HAS_SLEEP true
|
||||||
|
#define PIN_WAKEUP GPIO_NUM_21
|
||||||
|
#define WAKEUP_LEVEL 0
|
||||||
|
|
||||||
|
#define INTERFACE_COUNT 1
|
||||||
|
|
||||||
|
// #define PMU_IRQ 40
|
||||||
|
// #define I2C_SCL 41
|
||||||
|
// #define I2C_SDA 42
|
||||||
|
|
||||||
|
// Wio-SX1262 button pulls down GPIO21
|
||||||
|
// THis is shared with the Yellow LED
|
||||||
|
// on the ESP32S3 (also active Low)
|
||||||
|
const int pin_btn_usr1 = 21;
|
||||||
|
|
||||||
|
const uint8_t interfaces[INTERFACE_COUNT] = {SX1262};
|
||||||
|
const bool interface_cfg[INTERFACE_COUNT][3] = {
|
||||||
|
// SX1262
|
||||||
|
{
|
||||||
|
true, // DEFAULT_SPI
|
||||||
|
true, // HAS_TCXO
|
||||||
|
true // DIO2_AS_RF_SWITCH
|
||||||
|
},
|
||||||
|
};
|
||||||
|
const int8_t interface_pins[INTERFACE_COUNT][10] = {
|
||||||
|
// SX1262
|
||||||
|
{
|
||||||
|
41, // pin_ss
|
||||||
|
7, // pin_sclk
|
||||||
|
9, // pin_mosi
|
||||||
|
8, // pin_miso
|
||||||
|
40, // pin_busy
|
||||||
|
39, // pin_dio
|
||||||
|
42, // pin_reset
|
||||||
|
-1, // pin_txen
|
||||||
|
-1, // pin_rxen
|
||||||
|
-1 // pin_tcxo_enable
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// const int SD_MISO = 37;
|
||||||
|
// const int SD_MOSI = 35;
|
||||||
|
// const int SD_CLK = 36;
|
||||||
|
// const int SD_CS = 47;
|
||||||
|
|
||||||
|
// const int IMU_CS = 34;
|
||||||
|
|
||||||
|
// HAS LED/tx on Wio board - 48 Hi/ON
|
||||||
|
// LED 21 on ESP board - Lo/ON/Yellow
|
||||||
|
// shared with button input.
|
||||||
|
#if HAS_NP == false
|
||||||
|
#if defined(EXTERNAL_LEDS)
|
||||||
|
const int pin_led_rx = -1;
|
||||||
|
const int pin_led_tx = 48; //47;
|
||||||
|
#else
|
||||||
|
const int pin_led_rx = -1;
|
||||||
|
const int pin_led_tx = 48; //47;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
#error An unsupported ESP32 board was selected. Cannot compile RNode firmware.
|
#error An unsupported ESP32 board was selected. Cannot compile RNode firmware.
|
||||||
#endif
|
#endif
|
||||||
|
|
10
Makefile
10
Makefile
|
@ -128,6 +128,9 @@ firmware-heltec32_v3:
|
||||||
firmware-heltec_w_paper:
|
firmware-heltec_w_paper:
|
||||||
arduino-cli compile --fqbn esp32:esp32:heltec_wifi_lora_32_V3 $(COMMON_BUILD_FLAGS) --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x3E\""
|
arduino-cli compile --fqbn esp32:esp32:heltec_wifi_lora_32_V3 $(COMMON_BUILD_FLAGS) --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x3E\""
|
||||||
|
|
||||||
|
firmware-xiao_esp32s3:
|
||||||
|
arduino-cli compile --fqbn esp32:esp32:XIAO_ESP32S3 $(COMMON_BUILD_FLAGS) --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x3E\""
|
||||||
|
|
||||||
firmware-rnode_ng_20: check_bt_buffers
|
firmware-rnode_ng_20: check_bt_buffers
|
||||||
arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 $(COMMON_BUILD_FLAGS) --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x40\""
|
arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 $(COMMON_BUILD_FLAGS) --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x40\""
|
||||||
|
|
||||||
|
@ -246,6 +249,13 @@ upload-featheresp32:
|
||||||
@sleep 3
|
@sleep 3
|
||||||
python ./Release/esptool/esptool.py --port $(or $(port), /dev/ttyUSB0) $(COMMON_UPLOAD_FLAGS) ./Release/console_image.bin
|
python ./Release/esptool/esptool.py --port $(or $(port), /dev/ttyUSB0) $(COMMON_UPLOAD_FLAGS) ./Release/console_image.bin
|
||||||
|
|
||||||
|
upload-xiao_esp32s3:
|
||||||
|
arduino-cli upload -p $(or $(port), /dev/ttyACM0) --fqbn esp32:esp32:XIAO_ESP32S3
|
||||||
|
@sleep 1
|
||||||
|
rnodeconf $(or $(port), /dev/ttyACM0) --firmware-hash $$(./partition_hashes ./build/esp32.esp32.XIAO_ESP32S3/RNode_Firmware_CE.ino.bin)
|
||||||
|
@sleep 3
|
||||||
|
python ./Release/esptool/esptool.py --port $(or $(port), /dev/ttyACM0) --chip esp32-s3 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin
|
||||||
|
|
||||||
upload-opencom-xl upload-rak4631:
|
upload-opencom-xl upload-rak4631:
|
||||||
arduino-cli upload -p $(or $(port), /dev/ttyACM0) --fqbn rakwireless:nrf52:WisCoreRAK4631Board
|
arduino-cli upload -p $(or $(port), /dev/ttyACM0) --fqbn rakwireless:nrf52:WisCoreRAK4631Board
|
||||||
unzip -o build/rakwireless.nrf52.WisCoreRAK4631Board/RNode_Firmware_CE.ino.zip -d build/rakwireless.nrf52.WisCoreRAK4631Board
|
unzip -o build/rakwireless.nrf52.WisCoreRAK4631Board/RNode_Firmware_CE.ino.zip -d build/rakwireless.nrf52.WisCoreRAK4631Board
|
||||||
|
|
|
@ -1623,7 +1623,7 @@ void process_serial() {
|
||||||
void sleep_now() {
|
void sleep_now() {
|
||||||
#if HAS_SLEEP == true
|
#if HAS_SLEEP == true
|
||||||
#if PLATFORM == PLATFORM_ESP32
|
#if PLATFORM == PLATFORM_ESP32
|
||||||
#if BOARD_MODEL == BOARD_T3S3
|
#if BOARD_MODEL == BOARD_T3S3 || BOARD_MODEL == BOARD_XIAO_ESP32C3
|
||||||
display_intensity = 0;
|
display_intensity = 0;
|
||||||
update_display(true);
|
update_display(true);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -697,7 +697,7 @@ void sx126x::sleep()
|
||||||
|
|
||||||
void sx126x::enableTCXO() {
|
void sx126x::enableTCXO() {
|
||||||
if (_tcxo) {
|
if (_tcxo) {
|
||||||
#if BOARD_MODEL == BOARD_RAK4631 || BOARD_MODEL == BOARD_OPENCOM_XL || BOARD_MODEL == BOARD_HELTEC32_V3
|
#if BOARD_MODEL == BOARD_RAK4631 || BOARD_MODEL == BOARD_OPENCOM_XL || BOARD_MODEL == BOARD_HELTEC32_V3 || BOARD_MODEL == BOARD_XIAO_ESP32S3
|
||||||
uint8_t buf[4] = {MODE_TCXO_3_3V_6X, 0x00, 0x00, 0xFF};
|
uint8_t buf[4] = {MODE_TCXO_3_3V_6X, 0x00, 0x00, 0xFF};
|
||||||
#elif BOARD_MODEL == BOARD_TBEAM
|
#elif BOARD_MODEL == BOARD_TBEAM
|
||||||
uint8_t buf[4] = {MODE_TCXO_1_8V_6X, 0x00, 0x00, 0xFF};
|
uint8_t buf[4] = {MODE_TCXO_1_8V_6X, 0x00, 0x00, 0xFF};
|
||||||
|
|
13
Utilities.h
13
Utilities.h
|
@ -286,6 +286,13 @@ uint8_t boot_vector = 0x00;
|
||||||
void led_tx_off() { digitalWrite(pin_led_tx, LOW); }
|
void led_tx_off() { digitalWrite(pin_led_tx, LOW); }
|
||||||
void led_id_on() { }
|
void led_id_on() { }
|
||||||
void led_id_off() { }
|
void led_id_off() { }
|
||||||
|
#elif BOARD_MODEL == BOARD_XIAO_ESP32S3
|
||||||
|
void led_rx_on() {}
|
||||||
|
void led_rx_off() {}
|
||||||
|
void led_tx_on() { digitalWrite(pin_led_tx, LED_ON); }
|
||||||
|
void led_tx_off() { digitalWrite(pin_led_tx, LED_OFF); }
|
||||||
|
void led_id_on() {}
|
||||||
|
void led_id_off() {}
|
||||||
#elif BOARD_MODEL == BOARD_GENERIC_ESP32
|
#elif BOARD_MODEL == BOARD_GENERIC_ESP32
|
||||||
void led_rx_on() { digitalWrite(pin_led_rx, HIGH); }
|
void led_rx_on() { digitalWrite(pin_led_rx, HIGH); }
|
||||||
void led_rx_off() { digitalWrite(pin_led_rx, LOW); }
|
void led_rx_off() { digitalWrite(pin_led_rx, LOW); }
|
||||||
|
@ -1243,6 +1250,8 @@ void setTXPower(RadioInterface* radio, int txp) {
|
||||||
if (model == MODEL_DB) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN);
|
if (model == MODEL_DB) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN);
|
||||||
if (model == MODEL_DC) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN);
|
if (model == MODEL_DC) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN);
|
||||||
|
|
||||||
|
if (model == MODEL_DD) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN);
|
||||||
|
|
||||||
if (model == MODEL_E4) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN);
|
if (model == MODEL_E4) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN);
|
||||||
if (model == MODEL_E9) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN);
|
if (model == MODEL_E9) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN);
|
||||||
if (model == MODEL_E3) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN);
|
if (model == MODEL_E3) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN);
|
||||||
|
@ -1472,7 +1481,7 @@ bool eeprom_product_valid() {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if PLATFORM == PLATFORM_ESP32
|
#if PLATFORM == PLATFORM_ESP32
|
||||||
if (rval == PRODUCT_RNODE || rval == BOARD_RNODE_NG_20 || rval == BOARD_RNODE_NG_21 || rval == PRODUCT_HMBRW || rval == PRODUCT_TBEAM || rval == PRODUCT_T32_10 || rval == PRODUCT_T32_20 || rval == PRODUCT_T32_21 || rval == PRODUCT_H32_V2 || rval == PRODUCT_H32_V3 || rval == PRODUCT_TDECK_V1 || rval == PRODUCT_TBEAM_S_V1 || rval == PRODUCT_H_W_PAPER) {
|
if (rval == PRODUCT_RNODE || rval == BOARD_RNODE_NG_20 || rval == BOARD_RNODE_NG_21 || rval == PRODUCT_HMBRW || rval == PRODUCT_TBEAM || rval == PRODUCT_T32_10 || rval == PRODUCT_T32_20 || rval == PRODUCT_T32_21 || rval == PRODUCT_H32_V2 || rval == PRODUCT_H32_V3 || rval == PRODUCT_TDECK_V1 || rval == PRODUCT_TBEAM_S_V1 || rval == PRODUCT_H_W_PAPER || rval == PRODUCT_XIAO_ESP32S3) {
|
||||||
#elif PLATFORM == PLATFORM_NRF52
|
#elif PLATFORM == PLATFORM_NRF52
|
||||||
if (rval == PRODUCT_RAK4631 || rval == PRODUCT_HELTEC_T114 || rval == PRODUCT_OPENCOM_XL || rval == PRODUCT_TECHO || rval == PRODUCT_HMBRW) {
|
if (rval == PRODUCT_RAK4631 || rval == PRODUCT_HELTEC_T114 || rval == PRODUCT_OPENCOM_XL || rval == PRODUCT_TECHO || rval == PRODUCT_HMBRW) {
|
||||||
#else
|
#else
|
||||||
|
@ -1508,6 +1517,8 @@ bool eeprom_model_valid() {
|
||||||
if (model == MODEL_16 || model == MODEL_17) {
|
if (model == MODEL_16 || model == MODEL_17) {
|
||||||
#elif BOARD_MODEL == BOARD_TBEAM_S_V1
|
#elif BOARD_MODEL == BOARD_TBEAM_S_V1
|
||||||
if (model == MODEL_DB || model == MODEL_DC) {
|
if (model == MODEL_DB || model == MODEL_DC) {
|
||||||
|
#elif BOARD_MODEL == BOARD_XIAO_ESP32S3
|
||||||
|
if (model == MODEL_DD) {
|
||||||
#elif BOARD_MODEL == BOARD_LORA32_V1_0
|
#elif BOARD_MODEL == BOARD_LORA32_V1_0
|
||||||
if (model == MODEL_BA || model == MODEL_BB) {
|
if (model == MODEL_BA || model == MODEL_BB) {
|
||||||
#elif BOARD_MODEL == BOARD_LORA32_V2_0
|
#elif BOARD_MODEL == BOARD_LORA32_V2_0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue