From 41267a42f77e3e863cc2eddbf93e2197bf652ab7 Mon Sep 17 00:00:00 2001 From: Mykhailo Lesyk Date: Sat, 22 Oct 2022 17:55:34 -0700 Subject: [PATCH] [rak4630] enable 3.3v periphery before scan for i2c devices (#1847) Co-authored-by: Ben Meadors --- src/main.cpp | 6 ++++++ variants/rak4631/variant.h | 5 ++++- variants/rak4631_epaper/variant.h | 5 ++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 104731ef3..d40a1bdf0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -242,6 +242,12 @@ void setup() delay(1); #endif +#ifdef RAK4630 + // We need to enable 3.3V periphery in order to scan it + pinMode(PIN_3V3_EN, OUTPUT); + digitalWrite(PIN_3V3_EN, 1); +#endif + // We need to scan here to decide if we have a screen for nodeDB.init() scanI2Cdevice(); #ifdef RAK4630 diff --git a/variants/rak4631/variant.h b/variants/rak4631/variant.h index 3648b8510..b42163fbb 100644 --- a/variants/rak4631/variant.h +++ b/variants/rak4631/variant.h @@ -185,6 +185,9 @@ static const uint8_t SCK = PIN_SPI_SCK; #define SX126X_RXEN (37) #define SX126X_E22 // DIO2 controlls an antenna switch and the TCXO voltage is controlled by DIO3 +// enables 3.3V periphery like GPS or IO Module +#define PIN_3V3_EN (34) + // RAK1910 GPS module // If using the wisblock GPS module and pluged into Port A on WisBlock base // IO1 is hooked to PPS (pin 12 on header) = gpio 17 @@ -192,7 +195,7 @@ static const uint8_t SCK = PIN_SPI_SCK; // Therefore must be 1 to keep peripherals powered // Power is on the controllable 3V3_S rail // #define PIN_GPS_RESET (34) -#define PIN_GPS_EN (34) +#define PIN_GPS_EN PIN_3V3_EN #define PIN_GPS_PPS (17) // Pulse per second input from the GPS #define GPS_RX_PIN PIN_SERIAL1_RX diff --git a/variants/rak4631_epaper/variant.h b/variants/rak4631_epaper/variant.h index df68dac41..cf1b8b07d 100644 --- a/variants/rak4631_epaper/variant.h +++ b/variants/rak4631_epaper/variant.h @@ -185,6 +185,9 @@ static const uint8_t SCK = PIN_SPI_SCK; #define SX126X_RXEN (37) #define SX126X_E22 // DIO2 controlls an antenna switch and the TCXO voltage is controlled by DIO3 +// enables 3.3V periphery like GPS or IO Module +#define PIN_3V3_EN (34) + // RAK1910 GPS module // If using the wisblock GPS module and pluged into Port A on WisBlock base // IO1 is hooked to PPS (pin 12 on header) = gpio 17 @@ -192,7 +195,7 @@ static const uint8_t SCK = PIN_SPI_SCK; // Therefore must be 1 to keep peripherals powered // Power is on the controllable 3V3_S rail // #define PIN_GPS_RESET (34) -#define PIN_GPS_EN (34) +#define PIN_GPS_EN PIN_3V3_EN #define PIN_GPS_PPS (17) // Pulse per second input from the GPS #define GPS_RX_PIN PIN_SERIAL1_RX