mirror of
https://github.com/liberatedsystems/RNode_Firmware_CE.git
synced 2024-12-26 07:59:23 -05:00
Added support for LoRa32 v2.1 boards
This commit is contained in:
parent
01babb84f1
commit
044cb33948
11
Config.h
11
Config.h
@ -4,7 +4,7 @@
|
|||||||
#define CONFIG_H
|
#define CONFIG_H
|
||||||
|
|
||||||
#define MAJ_VERS 0x01
|
#define MAJ_VERS 0x01
|
||||||
#define MIN_VERS 0x18
|
#define MIN_VERS 0x19
|
||||||
|
|
||||||
#define PLATFORM_AVR 0x90
|
#define PLATFORM_AVR 0x90
|
||||||
#define PLATFORM_ESP32 0x80
|
#define PLATFORM_ESP32 0x80
|
||||||
@ -109,8 +109,13 @@
|
|||||||
const int pin_cs = 18;
|
const int pin_cs = 18;
|
||||||
const int pin_reset = 23;
|
const int pin_reset = 23;
|
||||||
const int pin_dio = 26;
|
const int pin_dio = 26;
|
||||||
const int pin_led_rx = 2;
|
#if defined(EXTERNAL_LEDS)
|
||||||
const int pin_led_tx = 25;
|
const int pin_led_rx = 15;
|
||||||
|
const int pin_led_tx = 4;
|
||||||
|
#else
|
||||||
|
const int pin_led_rx = 25;
|
||||||
|
const int pin_led_tx = 25;
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
#error An unsupported board was selected. Cannot compile RNode firmware.
|
#error An unsupported board was selected. Cannot compile RNode firmware.
|
||||||
#endif
|
#endif
|
||||||
|
5
Makefile
5
Makefile
@ -24,6 +24,9 @@ firmware-lora32_v20:
|
|||||||
firmware-lora32_v21:
|
firmware-lora32_v21:
|
||||||
arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x37\""
|
arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x37\""
|
||||||
|
|
||||||
|
firmware-lora32_v21_extled:
|
||||||
|
arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x37\" \"-DEXTERNAL_LEDS=true\""
|
||||||
|
|
||||||
firmware-featheresp32:
|
firmware-featheresp32:
|
||||||
arduino-cli compile --fqbn esp32:esp32:featheresp32 --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x34\""
|
arduino-cli compile --fqbn esp32:esp32:featheresp32 --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x34\""
|
||||||
|
|
||||||
@ -53,6 +56,8 @@ upload-featheresp32:
|
|||||||
upload-mega2560:
|
upload-mega2560:
|
||||||
arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:avr:mega
|
arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:avr:mega
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
release-all: release-rnode release-tbeam release-lora32_v21 release-featheresp32 release-genericesp32
|
release-all: release-rnode release-tbeam release-lora32_v21 release-featheresp32 release-genericesp32
|
||||||
|
|
||||||
release-rnode:
|
release-rnode:
|
||||||
|
@ -250,6 +250,7 @@ bool startRadio() {
|
|||||||
|
|
||||||
// Flash an info pattern to indicate
|
// Flash an info pattern to indicate
|
||||||
// that the radio is now on
|
// that the radio is now on
|
||||||
|
kiss_indicate_radiostate();
|
||||||
led_indicate_info(3);
|
led_indicate_info(3);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -258,12 +259,15 @@ bool startRadio() {
|
|||||||
// Flash a warning pattern to indicate
|
// Flash a warning pattern to indicate
|
||||||
// that the radio was locked, and thus
|
// that the radio was locked, and thus
|
||||||
// not started
|
// not started
|
||||||
|
radio_online = false;
|
||||||
|
kiss_indicate_radiostate();
|
||||||
led_indicate_warning(3);
|
led_indicate_warning(3);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// If radio is already on, we silently
|
// If radio is already on, we silently
|
||||||
// ignore the request.
|
// ignore the request.
|
||||||
|
kiss_indicate_radiostate();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
12
ROM.h
12
ROM.h
@ -3,11 +3,17 @@
|
|||||||
|
|
||||||
#define CHECKSUMMED_SIZE 0x0B
|
#define CHECKSUMMED_SIZE 0x0B
|
||||||
|
|
||||||
#define PRODUCT_RNODE 0x03
|
#define PRODUCT_RNODE 0x03
|
||||||
#define PRODUCT_HMBRW 0xF0
|
#define PRODUCT_HMBRW 0xF0
|
||||||
#define PRODUCT_TBEAM 0xE0
|
#define PRODUCT_TBEAM 0xE0
|
||||||
|
#define PRODUCT_T32_20 0xB0
|
||||||
|
#define PRODUCT_T32_21 0xB1
|
||||||
#define MODEL_A4 0xA4
|
#define MODEL_A4 0xA4
|
||||||
#define MODEL_A9 0xA9
|
#define MODEL_A9 0xA9
|
||||||
|
#define MODEL_B3 0xB3
|
||||||
|
#define MODEL_B8 0xB8
|
||||||
|
#define MODEL_B4 0xB4
|
||||||
|
#define MODEL_B9 0xB9
|
||||||
#define MODEL_E4 0xE4
|
#define MODEL_E4 0xE4
|
||||||
#define MODEL_E9 0xE9
|
#define MODEL_E9 0xE9
|
||||||
#define MODEL_FF 0xFF
|
#define MODEL_FF 0xFF
|
||||||
|
74
Utilities.h
74
Utilities.h
@ -49,8 +49,8 @@ uint8_t boot_vector = 0x00;
|
|||||||
#elif BOARD_MODEL == BOARD_LORA32_V2_1
|
#elif BOARD_MODEL == BOARD_LORA32_V2_1
|
||||||
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); }
|
||||||
void led_tx_on() { digitalWrite(pin_led_tx, LOW); }
|
void led_tx_on() { digitalWrite(pin_led_tx, HIGH); }
|
||||||
void led_tx_off() { digitalWrite(pin_led_tx, HIGH); }
|
void led_tx_off() { digitalWrite(pin_led_tx, LOW); }
|
||||||
#elif BOARD_MODEL == BOARD_HUZZAH32
|
#elif BOARD_MODEL == BOARD_HUZZAH32
|
||||||
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); }
|
||||||
@ -130,18 +130,33 @@ void led_indicate_warning(int cycles) {
|
|||||||
led_rx_off();
|
led_rx_off();
|
||||||
}
|
}
|
||||||
#elif MCU_VARIANT == MCU_ESP32
|
#elif MCU_VARIANT == MCU_ESP32
|
||||||
void led_indicate_info(int cycles) {
|
#if BOARD_MODEL == BOARD_LORA32_V2_1
|
||||||
bool forever = (cycles == 0) ? true : false;
|
void led_indicate_info(int cycles) {
|
||||||
cycles = forever ? 1 : cycles;
|
bool forever = (cycles == 0) ? true : false;
|
||||||
while(cycles > 0) {
|
cycles = forever ? 1 : cycles;
|
||||||
led_tx_off();
|
while(cycles > 0) {
|
||||||
delay(100);
|
led_rx_off();
|
||||||
led_tx_on();
|
delay(100);
|
||||||
delay(100);
|
led_rx_on();
|
||||||
if (!forever) cycles--;
|
delay(100);
|
||||||
}
|
if (!forever) cycles--;
|
||||||
led_tx_off();
|
}
|
||||||
}
|
led_rx_off();
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
void led_indicate_info(int cycles) {
|
||||||
|
bool forever = (cycles == 0) ? true : false;
|
||||||
|
cycles = forever ? 1 : cycles;
|
||||||
|
while(cycles > 0) {
|
||||||
|
led_tx_off();
|
||||||
|
delay(100);
|
||||||
|
led_tx_on();
|
||||||
|
delay(100);
|
||||||
|
if (!forever) cycles--;
|
||||||
|
}
|
||||||
|
led_tx_off();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -195,7 +210,13 @@ int8_t led_standby_direction = 0;
|
|||||||
} else {
|
} else {
|
||||||
led_tx_off();
|
led_tx_off();
|
||||||
}
|
}
|
||||||
led_rx_off();
|
#if BOARD_MODEL == BOARD_LORA32_V2_1
|
||||||
|
#if defined(EXTERNAL_LEDS)
|
||||||
|
led_rx_off();
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
led_rx_off();
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -564,7 +585,14 @@ bool eeprom_lock_set() {
|
|||||||
|
|
||||||
bool eeprom_product_valid() {
|
bool eeprom_product_valid() {
|
||||||
uint8_t rval = EEPROM.read(eeprom_addr(ADDR_PRODUCT));
|
uint8_t rval = EEPROM.read(eeprom_addr(ADDR_PRODUCT));
|
||||||
if (rval == PRODUCT_RNODE || rval == PRODUCT_HMBRW || rval == PRODUCT_TBEAM) {
|
|
||||||
|
#if PLATFORM == PLATFORM_AVR
|
||||||
|
if (rval == PRODUCT_RNODE || rval == PRODUCT_HMBRW) {
|
||||||
|
#elif PLATFORM == PLATFORM_ESP32
|
||||||
|
if (rval == PRODUCT_RNODE || rval == PRODUCT_HMBRW || rval == PRODUCT_TBEAM || rval == PRODUCT_T32_20 || rval == PRODUCT_T32_21) {
|
||||||
|
#else
|
||||||
|
if (false) {
|
||||||
|
#endif
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
@ -573,7 +601,19 @@ bool eeprom_product_valid() {
|
|||||||
|
|
||||||
bool eeprom_model_valid() {
|
bool eeprom_model_valid() {
|
||||||
model = EEPROM.read(eeprom_addr(ADDR_MODEL));
|
model = EEPROM.read(eeprom_addr(ADDR_MODEL));
|
||||||
if (model == MODEL_A4 || model == MODEL_A9 || model == MODEL_FF || model == MODEL_E4 || model == MODEL_E9) {
|
#if BOARD_MODEL == BOARD_RNODE
|
||||||
|
if (model == MODEL_A4 || model == MODEL_A9) {
|
||||||
|
#elif BOARD_MODEL == BOARD_HMBRW
|
||||||
|
if (model == MODEL_FF) {
|
||||||
|
#elif BOARD_MODEL == BOARD_TBEAM
|
||||||
|
if (model == MODEL_E4 || model == MODEL_E9) {
|
||||||
|
#elif BOARD_MODEL == BOARD_LORA32_V2_0
|
||||||
|
if (model == MODEL_B3 || model == MODEL_B8) {
|
||||||
|
#elif BOARD_MODEL == BOARD_LORA32_V2_1
|
||||||
|
if (model == MODEL_B4 || model == MODEL_B9) {
|
||||||
|
#else
|
||||||
|
if (false) {
|
||||||
|
#endif
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user