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