mirror of
https://github.com/markqvist/RNode_Firmware.git
synced 2025-04-15 13:33:19 -04:00
Merge pull request #106 from cobraPA/seeed_esp32s3_1
Seeed esp32s3 with Wio-SX1262 board support
This commit is contained in:
commit
698c6faa3f
71
Boards.h
71
Boards.h
@ -65,6 +65,10 @@
|
||||
#define MODEL_DB 0xDB // LilyGO T-Beam Supreme, 433 MHz
|
||||
#define MODEL_DC 0xDC // LilyGO T-Beam Supreme, 868 MHz
|
||||
|
||||
#define PRODUCT_SEEED_XIAO_ESP32S3 0xEB
|
||||
#define BOARD_SEEED_XIAO_ESP32S3 0x3E
|
||||
#define MODEL_DD 0xDD
|
||||
|
||||
#define PRODUCT_T32_10 0xB2
|
||||
#define BOARD_LORA32_V1_0 0x39
|
||||
#define MODEL_BA 0xBA // LilyGO T3 v1.0, 433 MHz
|
||||
@ -140,6 +144,10 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// test build - KJB
|
||||
#define BOARD_MODEL BOARD_SEEED_XIAO_ESP32S3
|
||||
//#define BOARD_MODEL BOARD_HELTEC32_V3
|
||||
|
||||
#define HAS_DISPLAY false
|
||||
#define HAS_BLUETOOTH false
|
||||
#define HAS_BLE false
|
||||
@ -150,7 +158,8 @@
|
||||
#define HAS_INPUT false
|
||||
#define HAS_SLEEP false
|
||||
#define PIN_DISP_SLEEP -1
|
||||
#define VALIDATE_FIRMWARE true
|
||||
//#define VALIDATE_FIRMWARE true
|
||||
#define VALIDATE_FIRMWARE false
|
||||
|
||||
#if defined(ENABLE_TCXO)
|
||||
#define HAS_TCXO true
|
||||
@ -593,6 +602,66 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#elif BOARD_MODEL == BOARD_SEEED_XIAO_ESP32S3
|
||||
#define IS_ESP32S3 true
|
||||
#define MODEM SX1262
|
||||
#define DIO2_AS_RF_SWITCH true
|
||||
#define HAS_BUSY true
|
||||
#define HAS_TCXO true
|
||||
// #define OCP_TUNED 0x38
|
||||
|
||||
#define HAS_DISPLAY true
|
||||
// #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 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 int pin_cs = 41; //16;
|
||||
const int pin_reset = 42; //14;
|
||||
const int pin_sclk = 7; //11;
|
||||
const int pin_mosi = 9; //15;
|
||||
const int pin_miso = 8; //13;
|
||||
const int pin_tcxo_enable = -1;
|
||||
const int pin_dio = 39; //21;
|
||||
const int pin_busy = 40; //18;
|
||||
|
||||
// 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
|
||||
#error An unsupported ESP32 board was selected. Cannot compile RNode firmware.
|
||||
#endif
|
||||
|
@ -1612,7 +1612,7 @@ void loop() {
|
||||
void sleep_now() {
|
||||
#if HAS_SLEEP == true
|
||||
#if PLATFORM == PLATFORM_ESP32
|
||||
#if BOARD_MODEL == BOARD_T3S3
|
||||
#if BOARD_MODEL == BOARD_T3S3 || BOARD_MODEL == BOARD_SEEED_XIAO_ESP32S3
|
||||
display_intensity = 0;
|
||||
update_display(true);
|
||||
#endif
|
||||
@ -1626,6 +1626,7 @@ void sleep_now() {
|
||||
delay(100);
|
||||
}
|
||||
#endif
|
||||
stopRadio();
|
||||
esp_sleep_enable_ext0_wakeup(PIN_WAKEUP, WAKEUP_LEVEL);
|
||||
esp_deep_sleep_start();
|
||||
#elif PLATFORM == PLATFORM_NRF52
|
||||
|
17
Utilities.h
17
Utilities.h
@ -285,6 +285,17 @@ uint8_t boot_vector = 0x00;
|
||||
void led_tx_off() { digitalWrite(pin_led_tx, LOW); }
|
||||
void led_id_on() { }
|
||||
void led_id_off() { }
|
||||
#elif BOARD_MODEL == BOARD_SEEED_XIAO_ESP32S3
|
||||
// tx pin is active high, rx pin is active low....
|
||||
// but shared with LED, choose button for now
|
||||
// void led_rx_on() { pinMode(pin_led_rx, OUTPUT); digitalWrite(pin_led_rx, LOW); }
|
||||
// void led_rx_off() { digitalWrite(pin_led_rx, HIGH); pinMode(pin_led_rx, INPUT); }
|
||||
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_HUZZAH32
|
||||
void led_rx_on() { digitalWrite(pin_led_rx, HIGH); }
|
||||
void led_rx_off() { digitalWrite(pin_led_rx, LOW); }
|
||||
@ -1264,6 +1275,8 @@ void setTXPower() {
|
||||
if (model == MODEL_DB) LoRa->setTxPower(lora_txp, PA_OUTPUT_PA_BOOST_PIN);
|
||||
if (model == MODEL_DC) LoRa->setTxPower(lora_txp, PA_OUTPUT_PA_BOOST_PIN);
|
||||
|
||||
if (model == MODEL_DD) LoRa->setTxPower(lora_txp, PA_OUTPUT_PA_BOOST_PIN);
|
||||
|
||||
if (model == MODEL_E4) LoRa->setTxPower(lora_txp, PA_OUTPUT_PA_BOOST_PIN);
|
||||
if (model == MODEL_E9) LoRa->setTxPower(lora_txp, PA_OUTPUT_PA_BOOST_PIN);
|
||||
if (model == MODEL_E3) LoRa->setTxPower(lora_txp, PA_OUTPUT_PA_BOOST_PIN);
|
||||
@ -1467,7 +1480,7 @@ bool eeprom_product_valid() {
|
||||
#if PLATFORM == PLATFORM_AVR
|
||||
if (rval == PRODUCT_RNODE || rval == PRODUCT_HMBRW) {
|
||||
#elif 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) {
|
||||
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_SEEED_XIAO_ESP32S3) {
|
||||
#elif PLATFORM == PLATFORM_NRF52
|
||||
if (rval == PRODUCT_RAK4631 || rval == PRODUCT_HELTEC_T114 || rval == PRODUCT_TECHO || rval == PRODUCT_HMBRW) {
|
||||
#else
|
||||
@ -1503,6 +1516,8 @@ bool eeprom_model_valid() {
|
||||
if (model == MODEL_16 || model == MODEL_17) {
|
||||
#elif BOARD_MODEL == BOARD_TBEAM_S_V1
|
||||
if (model == MODEL_DB || model == MODEL_DC) {
|
||||
#elif BOARD_MODEL == BOARD_SEEED_XIAO_ESP32S3
|
||||
if (model == MODEL_DD) {
|
||||
#elif BOARD_MODEL == BOARD_LORA32_V1_0
|
||||
if (model == MODEL_BA || model == MODEL_BB) {
|
||||
#elif BOARD_MODEL == BOARD_LORA32_V2_0
|
||||
|
10
sx126x.cpp
10
sx126x.cpp
@ -122,6 +122,13 @@ sx126x::sx126x() :
|
||||
{ setTimeout(0); }
|
||||
|
||||
bool sx126x::preInit() {
|
||||
#if BOARD_MODEL == BOARD_SEEED_XIAO_ESP32S3
|
||||
// Improve wakeup from sleep
|
||||
delay(300);
|
||||
reset();
|
||||
delay(100);
|
||||
#endif
|
||||
|
||||
pinMode(_ss, OUTPUT);
|
||||
digitalWrite(_ss, HIGH);
|
||||
|
||||
@ -146,6 +153,7 @@ bool sx126x::preInit() {
|
||||
break;
|
||||
}
|
||||
delay(100);
|
||||
Serial.println( uint16_t(syncmsb << 8 | synclsb) );
|
||||
}
|
||||
if ( uint16_t(syncmsb << 8 | synclsb) != 0x1424 && uint16_t(syncmsb << 8 | synclsb) != 0x4434) {
|
||||
return false;
|
||||
@ -570,7 +578,7 @@ void sx126x::sleep() { uint8_t byte = 0x00; executeOpcode(OP_SLEEP_6X, &byte, 1)
|
||||
|
||||
void sx126x::enableTCXO() {
|
||||
#if HAS_TCXO
|
||||
#if BOARD_MODEL == BOARD_RAK4631 || BOARD_MODEL == BOARD_HELTEC32_V3
|
||||
#if BOARD_MODEL == BOARD_RAK4631 || BOARD_MODEL == BOARD_HELTEC32_V3 || BOARD_MODEL == BOARD_SEEED_XIAO_ESP32S3
|
||||
uint8_t buf[4] = {MODE_TCXO_3_3V_6X, 0x00, 0x00, 0xFF};
|
||||
#elif BOARD_MODEL == BOARD_TBEAM
|
||||
uint8_t buf[4] = {MODE_TCXO_1_8V_6X, 0x00, 0x00, 0xFF};
|
||||
|
Loading…
x
Reference in New Issue
Block a user