mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-07-26 14:58:12 +00:00
Fixed DIO0, DIO1 and RESET for Heltec v2
This commit is contained in:
@@ -17,12 +17,12 @@ public:
|
|||||||
esp_reset_reason_t reason = esp_reset_reason();
|
esp_reset_reason_t reason = esp_reset_reason();
|
||||||
if (reason == ESP_RST_DEEPSLEEP) {
|
if (reason == ESP_RST_DEEPSLEEP) {
|
||||||
long wakeup_source = esp_sleep_get_ext1_wakeup_status();
|
long wakeup_source = esp_sleep_get_ext1_wakeup_status();
|
||||||
if (wakeup_source & (1 << P_LORA_DIO_1)) { // received a LoRa packet (while in deep sleep)
|
if (wakeup_source & (1 << P_LORA_DIO_0)) { // received a LoRa packet (while in deep sleep)
|
||||||
startup_reason = BD_STARTUP_RX_PACKET;
|
startup_reason = BD_STARTUP_RX_PACKET;
|
||||||
}
|
}
|
||||||
|
|
||||||
rtc_gpio_hold_dis((gpio_num_t)P_LORA_NSS);
|
rtc_gpio_hold_dis((gpio_num_t)P_LORA_NSS);
|
||||||
rtc_gpio_deinit((gpio_num_t)P_LORA_DIO_1);
|
rtc_gpio_deinit((gpio_num_t)P_LORA_DIO_0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,15 +30,15 @@ public:
|
|||||||
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
||||||
|
|
||||||
// Make sure the DIO1 and NSS GPIOs are hold on required levels during deep sleep
|
// Make sure the DIO1 and NSS GPIOs are hold on required levels during deep sleep
|
||||||
rtc_gpio_set_direction((gpio_num_t)P_LORA_DIO_1, RTC_GPIO_MODE_INPUT_ONLY);
|
rtc_gpio_set_direction((gpio_num_t)P_LORA_DIO_0, RTC_GPIO_MODE_INPUT_ONLY);
|
||||||
rtc_gpio_pulldown_en((gpio_num_t)P_LORA_DIO_1);
|
rtc_gpio_pulldown_en((gpio_num_t)P_LORA_DIO_0);
|
||||||
|
|
||||||
rtc_gpio_hold_en((gpio_num_t)P_LORA_NSS);
|
rtc_gpio_hold_en((gpio_num_t)P_LORA_NSS);
|
||||||
|
|
||||||
if (pin_wake_btn < 0) {
|
if (pin_wake_btn < 0) {
|
||||||
esp_sleep_enable_ext1_wakeup( (1L << P_LORA_DIO_1), ESP_EXT1_WAKEUP_ANY_HIGH); // wake up on: recv LoRa packet
|
esp_sleep_enable_ext1_wakeup( (1L << P_LORA_DIO_0), ESP_EXT1_WAKEUP_ANY_HIGH); // wake up on: recv LoRa packet
|
||||||
} else {
|
} else {
|
||||||
esp_sleep_enable_ext1_wakeup( (1L << P_LORA_DIO_1) | (1L << pin_wake_btn), ESP_EXT1_WAKEUP_ANY_HIGH); // wake up on: recv LoRa packet OR wake btn
|
esp_sleep_enable_ext1_wakeup( (1L << P_LORA_DIO_0) | (1L << pin_wake_btn), ESP_EXT1_WAKEUP_ANY_HIGH); // wake up on: recv LoRa packet OR wake btn
|
||||||
}
|
}
|
||||||
|
|
||||||
if (secs > 0) {
|
if (secs > 0) {
|
||||||
@@ -64,4 +64,8 @@ public:
|
|||||||
const char* getManufacturerName() const override {
|
const char* getManufacturerName() const override {
|
||||||
return "Heltec V2";
|
return "Heltec V2";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t getIRQGpio() override {
|
||||||
|
return P_LORA_DIO_0; // default for SX1276
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ build_flags =
|
|||||||
-D HELTEC_LORA_V2
|
-D HELTEC_LORA_V2
|
||||||
-D RADIO_CLASS=CustomSX1276
|
-D RADIO_CLASS=CustomSX1276
|
||||||
-D WRAPPER_CLASS=CustomSX1276Wrapper
|
-D WRAPPER_CLASS=CustomSX1276Wrapper
|
||||||
-D P_LORA_DIO_1=26
|
-D P_LORA_DIO_0=26
|
||||||
|
-D P_LORA_DIO_1=35
|
||||||
-D P_LORA_NSS=18
|
-D P_LORA_NSS=18
|
||||||
-D P_LORA_RESET=RADIOLIB_NC
|
-D P_LORA_RESET=14
|
||||||
-D P_LORA_BUSY=RADIOLIB_NC
|
|
||||||
-D P_LORA_SCLK=5
|
-D P_LORA_SCLK=5
|
||||||
-D P_LORA_MISO=19
|
-D P_LORA_MISO=19
|
||||||
-D P_LORA_MOSI=27
|
-D P_LORA_MOSI=27
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ HeltecV2Board board;
|
|||||||
|
|
||||||
#if defined(P_LORA_SCLK)
|
#if defined(P_LORA_SCLK)
|
||||||
static SPIClass spi;
|
static SPIClass spi;
|
||||||
RADIO_CLASS radio = new Module(P_LORA_NSS, P_LORA_DIO_1, P_LORA_RESET, P_LORA_BUSY, spi);
|
RADIO_CLASS radio = new Module(P_LORA_NSS, P_LORA_DIO_0, P_LORA_RESET, P_LORA_DIO_1, spi);
|
||||||
#else
|
#else
|
||||||
RADIO_CLASS radio = new Module(P_LORA_NSS, P_LORA_DIO_1, P_LORA_RESET, P_LORA_BUSY);
|
RADIO_CLASS radio = new Module(P_LORA_NSS, P_LORA_DIO_0, P_LORA_RESET, P_LORA_DIO_1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
WRAPPER_CLASS radio_driver(radio, board);
|
WRAPPER_CLASS radio_driver(radio, board);
|
||||||
|
|||||||
Reference in New Issue
Block a user