mirror of https://github.com/meshcore-dev/MeshCore
Browse Source
Elecrow ThinkNode M3, M6 build errors fix after NRF52Board base class migrationpull/1528/head
committed by
GitHub
7 changed files with 101 additions and 86 deletions
@ -0,0 +1,28 @@ |
|||||
|
#include <Arduino.h> |
||||
|
#include "ThinkNodeM3Board.h" |
||||
|
#include <Wire.h> |
||||
|
|
||||
|
#include <bluefruit.h> |
||||
|
|
||||
|
void ThinkNodeM3Board::begin() { |
||||
|
NRF52Board::begin(); |
||||
|
btn_prev_state = HIGH; |
||||
|
|
||||
|
Wire.begin(); |
||||
|
|
||||
|
delay(10); // give sx1262 some time to power up
|
||||
|
} |
||||
|
|
||||
|
uint16_t ThinkNodeM3Board::getBattMilliVolts() { |
||||
|
int adcvalue = 0; |
||||
|
|
||||
|
analogReference(AR_INTERNAL_2_4); |
||||
|
analogReadResolution(ADC_RESOLUTION); |
||||
|
delay(10); |
||||
|
|
||||
|
// ADC range is 0..2400mV and resolution is 12-bit (0..4095)
|
||||
|
adcvalue = analogRead(PIN_VBAT_READ); |
||||
|
// Convert the raw value to compensated mv, taking the resistor-
|
||||
|
// divider into account (providing the actual LIPO voltage)
|
||||
|
return (uint16_t)((float)adcvalue * ADC_FACTOR); |
||||
|
} |
||||
@ -0,0 +1,54 @@ |
|||||
|
#pragma once |
||||
|
|
||||
|
#include <Arduino.h> |
||||
|
#include <MeshCore.h> |
||||
|
#include <helpers/NRF52Board.h> |
||||
|
|
||||
|
#define ADC_FACTOR ((1000.0*ADC_MULTIPLIER*AREF_VOLTAGE)/ADC_MAX) |
||||
|
|
||||
|
class ThinkNodeM3Board : public NRF52BoardDCDC { |
||||
|
protected: |
||||
|
#if NRF52_POWER_MANAGEMENT |
||||
|
void initiateShutdown(uint8_t reason) override; |
||||
|
#endif |
||||
|
uint8_t btn_prev_state; |
||||
|
|
||||
|
public: |
||||
|
ThinkNodeM3Board() : NRF52Board("THINKNODE_M3_OTA") {} |
||||
|
void begin(); |
||||
|
uint16_t getBattMilliVolts() override; |
||||
|
|
||||
|
#if defined(P_LORA_TX_LED) |
||||
|
void onBeforeTransmit() override { |
||||
|
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED on
|
||||
|
} |
||||
|
void onAfterTransmit() override { |
||||
|
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED off
|
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
const char* getManufacturerName() const override { |
||||
|
return "Elecrow ThinkNode M3"; |
||||
|
} |
||||
|
|
||||
|
int buttonStateChanged() { |
||||
|
#ifdef BUTTON_PIN |
||||
|
uint8_t v = digitalRead(BUTTON_PIN); |
||||
|
if (v != btn_prev_state) { |
||||
|
btn_prev_state = v; |
||||
|
return (v == LOW) ? 1 : -1; |
||||
|
} |
||||
|
#endif |
||||
|
return 0; |
||||
|
} |
||||
|
|
||||
|
void powerOff() override { |
||||
|
// turn off all leds, sd_power_system_off will not do this for us
|
||||
|
#ifdef P_LORA_TX_LED |
||||
|
digitalWrite(P_LORA_TX_LED, LOW); |
||||
|
#endif |
||||
|
|
||||
|
// power off board
|
||||
|
sd_power_system_off(); |
||||
|
} |
||||
|
}; |
||||
@ -1,14 +0,0 @@ |
|||||
#include <Arduino.h> |
|
||||
#include "ThinknodeM3Board.h" |
|
||||
#include <Wire.h> |
|
||||
|
|
||||
#include <bluefruit.h> |
|
||||
|
|
||||
void ThinknodeM3Board::begin() { |
|
||||
Nrf52BoardDCDC::begin(); |
|
||||
btn_prev_state = HIGH; |
|
||||
|
|
||||
Wire.begin(); |
|
||||
|
|
||||
delay(10); // give sx1262 some time to power up
|
|
||||
} |
|
||||
@ -1,58 +0,0 @@ |
|||||
#pragma once |
|
||||
|
|
||||
#include <Arduino.h> |
|
||||
#include <MeshCore.h> |
|
||||
#include <helpers/NRF52Board.h> |
|
||||
|
|
||||
#define ADC_FACTOR ((1000.0*ADC_MULTIPLIER*AREF_VOLTAGE)/ADC_MAX) |
|
||||
|
|
||||
class ThinknodeM3Board : public Nrf52BoardDCDC { |
|
||||
protected: |
|
||||
uint8_t btn_prev_state; |
|
||||
|
|
||||
public: |
|
||||
void begin(); |
|
||||
|
|
||||
uint16_t getBattMilliVolts() override { |
|
||||
int adcvalue = 0; |
|
||||
|
|
||||
analogReference(AR_INTERNAL_2_4); |
|
||||
analogReadResolution(ADC_RESOLUTION); |
|
||||
delay(10); |
|
||||
|
|
||||
// ADC range is 0..2400mV and resolution is 12-bit (0..4095)
|
|
||||
adcvalue = analogRead(PIN_VBAT_READ); |
|
||||
// Convert the raw value to compensated mv, taking the resistor-
|
|
||||
// divider into account (providing the actual LIPO voltage)
|
|
||||
return (uint16_t)((float)adcvalue * ADC_FACTOR); |
|
||||
} |
|
||||
|
|
||||
#if defined(P_LORA_TX_LED) |
|
||||
#if !defined(P_LORA_TX_LED_ON) |
|
||||
#define P_LORA_TX_LED_ON HIGH |
|
||||
#endif |
|
||||
void onBeforeTransmit() override { |
|
||||
digitalWrite(P_LORA_TX_LED, P_LORA_TX_LED_ON); // turn TX LED on
|
|
||||
} |
|
||||
void onAfterTransmit() override { |
|
||||
digitalWrite(P_LORA_TX_LED, !P_LORA_TX_LED_ON); // turn TX LED off
|
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
const char* getManufacturerName() const override { |
|
||||
return "Elecrow ThinkNode M3"; |
|
||||
} |
|
||||
|
|
||||
int buttonStateChanged() { |
|
||||
#ifdef BUTTON_PIN |
|
||||
uint8_t v = digitalRead(BUTTON_PIN); |
|
||||
if (v != btn_prev_state) { |
|
||||
btn_prev_state = v; |
|
||||
return (v == LOW) ? 1 : -1; |
|
||||
} |
|
||||
#endif |
|
||||
return 0; |
|
||||
} |
|
||||
|
|
||||
void powerOff() override { sd_power_system_off(); } |
|
||||
}; |
|
||||
Loading…
Reference in new issue