mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-09-25 12:16:38 +00:00
Merge pull request #2887 from spinda/thinknode-m3-dev
Fix GPS and LEDs on ThinkNode M3
This commit is contained in:
@@ -13,8 +13,12 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PIN_GPS_EN_ACTIVE
|
#ifndef GPS_EN_ACTIVE
|
||||||
#define PIN_GPS_EN_ACTIVE HIGH
|
#ifdef PIN_GPS_EN_ACTIVE
|
||||||
|
#define GPS_EN_ACTIVE PIN_GPS_EN_ACTIVE
|
||||||
|
#else
|
||||||
|
#define GPS_EN_ACTIVE HIGH
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef GPS_RESET
|
#ifndef GPS_RESET
|
||||||
@@ -25,11 +29,11 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef GPS_RESET_FORCE
|
#ifndef GPS_RESET_ACTIVE
|
||||||
#ifdef PIN_GPS_RESET_ACTIVE
|
#ifdef PIN_GPS_RESET_ACTIVE
|
||||||
#define GPS_RESET_FORCE PIN_GPS_RESET_ACTIVE
|
#define GPS_RESET_ACTIVE PIN_GPS_RESET_ACTIVE
|
||||||
#else
|
#else
|
||||||
#define GPS_RESET_FORCE LOW
|
#define GPS_RESET_ACTIVE LOW
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -52,11 +56,11 @@ public :
|
|||||||
nmea(_nmeaBuffer, sizeof(_nmeaBuffer)), _clock(clock), _gps_serial(&ser), _peripher_power(peripher_power), _pin_reset(pin_reset), _pin_en(pin_en) {
|
nmea(_nmeaBuffer, sizeof(_nmeaBuffer)), _clock(clock), _gps_serial(&ser), _peripher_power(peripher_power), _pin_reset(pin_reset), _pin_en(pin_en) {
|
||||||
if (_pin_reset != -1) {
|
if (_pin_reset != -1) {
|
||||||
pinMode(_pin_reset, OUTPUT);
|
pinMode(_pin_reset, OUTPUT);
|
||||||
digitalWrite(_pin_reset, GPS_RESET_FORCE);
|
digitalWrite(_pin_reset, GPS_RESET_ACTIVE);
|
||||||
}
|
}
|
||||||
if (_pin_en != -1) {
|
if (_pin_en != -1) {
|
||||||
pinMode(_pin_en, OUTPUT);
|
pinMode(_pin_en, OUTPUT);
|
||||||
digitalWrite(_pin_en, LOW);
|
digitalWrite(_pin_en, !GPS_EN_ACTIVE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,27 +78,27 @@ public :
|
|||||||
void begin() override {
|
void begin() override {
|
||||||
claim();
|
claim();
|
||||||
if (_pin_en != -1) {
|
if (_pin_en != -1) {
|
||||||
digitalWrite(_pin_en, PIN_GPS_EN_ACTIVE);
|
digitalWrite(_pin_en, GPS_EN_ACTIVE);
|
||||||
}
|
}
|
||||||
if (_pin_reset != -1) {
|
if (_pin_reset != -1) {
|
||||||
digitalWrite(_pin_reset, !GPS_RESET_FORCE);
|
digitalWrite(_pin_reset, !GPS_RESET_ACTIVE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset() override {
|
void reset() override {
|
||||||
if (_pin_reset != -1) {
|
if (_pin_reset != -1) {
|
||||||
digitalWrite(_pin_reset, GPS_RESET_FORCE);
|
digitalWrite(_pin_reset, GPS_RESET_ACTIVE);
|
||||||
delay(10);
|
delay(10);
|
||||||
digitalWrite(_pin_reset, !GPS_RESET_FORCE);
|
digitalWrite(_pin_reset, !GPS_RESET_ACTIVE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void stop() override {
|
void stop() override {
|
||||||
if (_pin_en != -1) {
|
if (_pin_en != -1) {
|
||||||
digitalWrite(_pin_en, !PIN_GPS_EN_ACTIVE);
|
digitalWrite(_pin_en, !GPS_EN_ACTIVE);
|
||||||
}
|
}
|
||||||
if (_pin_reset != -1) {
|
if (_pin_reset != -1) {
|
||||||
digitalWrite(_pin_reset, GPS_RESET_FORCE);
|
digitalWrite(_pin_reset, GPS_RESET_ACTIVE);
|
||||||
}
|
}
|
||||||
release();
|
release();
|
||||||
}
|
}
|
||||||
@@ -103,7 +107,7 @@ public :
|
|||||||
// directly read the enable pin if present as gps can be
|
// directly read the enable pin if present as gps can be
|
||||||
// activated/deactivated outside of here ...
|
// activated/deactivated outside of here ...
|
||||||
if (_pin_en != -1) {
|
if (_pin_en != -1) {
|
||||||
return digitalRead(_pin_en) == PIN_GPS_EN_ACTIVE;
|
return digitalRead(_pin_en) == GPS_EN_ACTIVE;
|
||||||
} else {
|
} else {
|
||||||
return true; // no enable so must be active
|
return true; // no enable so must be active
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,12 +18,12 @@ public:
|
|||||||
void begin();
|
void begin();
|
||||||
uint16_t getBattMilliVolts() override;
|
uint16_t getBattMilliVolts() override;
|
||||||
|
|
||||||
#if defined(P_LORA_TX_LED)
|
#ifdef P_LORA_TX_LED
|
||||||
void onBeforeTransmit() override {
|
void onBeforeTransmit() override {
|
||||||
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED on
|
digitalWrite(P_LORA_TX_LED, LED_STATE_ON); // turn TX LED on
|
||||||
}
|
}
|
||||||
void onAfterTransmit() override {
|
void onAfterTransmit() override {
|
||||||
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED off
|
digitalWrite(P_LORA_TX_LED, !LED_STATE_ON); // turn TX LED off
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -44,9 +44,9 @@ public:
|
|||||||
|
|
||||||
void powerOff() override {
|
void powerOff() override {
|
||||||
// turn off all leds, sd_power_system_off will not do this for us
|
// turn off all leds, sd_power_system_off will not do this for us
|
||||||
#ifdef P_LORA_TX_LED
|
digitalWrite(PIN_LED_BLUE, !LED_STATE_ON);
|
||||||
digitalWrite(P_LORA_TX_LED, LOW);
|
digitalWrite(PIN_LED_GREEN, !LED_STATE_ON);
|
||||||
#endif
|
digitalWrite(PIN_LED_RED, !LED_STATE_ON);
|
||||||
|
|
||||||
// power off board
|
// power off board
|
||||||
NRF52Board::powerOff();
|
NRF52Board::powerOff();
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ build_flags = ${nrf52_base.build_flags}
|
|||||||
-D P_LORA_MOSI=46
|
-D P_LORA_MOSI=46
|
||||||
-D P_LORA_RESET=42
|
-D P_LORA_RESET=42
|
||||||
-D P_LORA_TX_LED=PIN_LED_BLUE
|
-D P_LORA_TX_LED=PIN_LED_BLUE
|
||||||
-D P_LORA_TX_LED_ON=LOW
|
|
||||||
-D LR11X0_DIO_AS_RF_SWITCH=true
|
-D LR11X0_DIO_AS_RF_SWITCH=true
|
||||||
-D LR11X0_DIO3_TCXO_VOLTAGE=3.3
|
-D LR11X0_DIO3_TCXO_VOLTAGE=3.3
|
||||||
-D MESH_DEBUG=1
|
-D MESH_DEBUG=1
|
||||||
@@ -105,7 +104,6 @@ build_flags = ${ThinkNode_M3.build_flags}
|
|||||||
-D BLE_TX_POWER=0
|
-D BLE_TX_POWER=0
|
||||||
; -D BLE_DEBUG_LOGGING=1
|
; -D BLE_DEBUG_LOGGING=1
|
||||||
; -D MESH_PACKET_LOGGING=1
|
; -D MESH_PACKET_LOGGING=1
|
||||||
-D GPS_NMEA_DEBUG
|
|
||||||
-D OFFLINE_QUEUE_SIZE=256
|
-D OFFLINE_QUEUE_SIZE=256
|
||||||
-D DISPLAY_CLASS=NullDisplayDriver
|
-D DISPLAY_CLASS=NullDisplayDriver
|
||||||
-D PIN_BUZZER=23
|
-D PIN_BUZZER=23
|
||||||
|
|||||||
@@ -80,16 +80,18 @@ void initVariant()
|
|||||||
digitalWrite(LED_POWER, HIGH);
|
digitalWrite(LED_POWER, HIGH);
|
||||||
|
|
||||||
pinMode(PIN_LED_BLUE, OUTPUT);
|
pinMode(PIN_LED_BLUE, OUTPUT);
|
||||||
|
digitalWrite(PIN_LED_BLUE, !LED_STATE_ON);
|
||||||
pinMode(PIN_LED_GREEN, OUTPUT);
|
pinMode(PIN_LED_GREEN, OUTPUT);
|
||||||
|
digitalWrite(PIN_LED_GREEN, !LED_STATE_ON);
|
||||||
pinMode(PIN_LED_RED, OUTPUT);
|
pinMode(PIN_LED_RED, OUTPUT);
|
||||||
|
digitalWrite(PIN_LED_RED, !LED_STATE_ON);
|
||||||
|
|
||||||
pinMode(BUTTON_PIN, INPUT_PULLUP);
|
pinMode(BUTTON_PIN, INPUT_PULLUP);
|
||||||
|
|
||||||
pinMode(PIN_GPS_POWER, OUTPUT);
|
pinMode(PIN_GPS_POWER, OUTPUT);
|
||||||
pinMode(PIN_GPS_EN, OUTPUT);
|
pinMode(PIN_GPS_EN, OUTPUT);
|
||||||
pinMode(PIN_GPS_RESET, OUTPUT);
|
|
||||||
|
|
||||||
// Power on gps but in standby
|
// Power on gps but in standby
|
||||||
digitalWrite(PIN_GPS_EN, LOW);
|
digitalWrite(PIN_GPS_EN, !GPS_EN_ACTIVE);
|
||||||
digitalWrite(PIN_GPS_POWER, HIGH);
|
digitalWrite(PIN_GPS_POWER, GPS_POWER_ACTIVE);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,8 +98,9 @@
|
|||||||
#define PIN_GPS_POWER (14)
|
#define PIN_GPS_POWER (14)
|
||||||
#define PIN_GPS_EN (21) // STANDBY
|
#define PIN_GPS_EN (21) // STANDBY
|
||||||
#define PIN_GPS_RESET (25) // REINIT
|
#define PIN_GPS_RESET (25) // REINIT
|
||||||
#define GPS_RESET_ACTIVE LOW
|
#define GPS_POWER_ACTIVE HIGH
|
||||||
#define GPS_EN_ACTIVE HIGH
|
#define GPS_EN_ACTIVE HIGH
|
||||||
|
#define GPS_RESET (-1)
|
||||||
#define GPS_BAUDRATE 9600
|
#define GPS_BAUDRATE 9600
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
Reference in New Issue
Block a user