Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 20 additions & 12 deletions variants/thinknode_m2/ThinknodeM2Board.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@


void ThinknodeM2Board::begin() {
pinMode(PIN_VEXT_EN, OUTPUT);
digitalWrite(PIN_VEXT_EN, !PIN_VEXT_EN_ACTIVE); // force power cycle
delay(20); // allow power rail to discharge
digitalWrite(PIN_VEXT_EN, PIN_VEXT_EN_ACTIVE); // turn backlight back on
delay(120); // give display time to bias on cold boot
ESP32Board::begin();
pinMode(PIN_VEXT_EN, OUTPUT); // init display
digitalWrite(PIN_VEXT_EN, PIN_VEXT_EN_ACTIVE); // pin needs to be high
delay(10);
digitalWrite(PIN_VEXT_EN, PIN_VEXT_EN_ACTIVE); // need to do this twice. do not know why..
pinMode(PIN_STATUS_LED, OUTPUT); // init power led
pinMode(PIN_STATUS_LED, OUTPUT); // init power led
}

void ThinknodeM2Board::enterDeepSleep(uint32_t secs, int pin_wake_btn) {
Expand All @@ -19,14 +20,21 @@ void ThinknodeM2Board::begin() {
enterDeepSleep(0);
}

uint16_t ThinknodeM2Board::getBattMilliVolts() {
uint16_t ThinknodeM2Board::getBattMilliVolts() {
analogReadResolution(12);
delay(10);
float volts = (analogRead(PIN_VBAT_READ) * ADC_MULTIPLIER * AREF_VOLTAGE) / 4096;
analogReadResolution(10);
return volts * 1000;
}
analogSetPinAttenuation(PIN_VBAT_READ, ADC_11db);

uint32_t mv = 0;
for (int i = 0; i < 8; ++i) {
mv += analogReadMilliVolts(PIN_VBAT_READ);
delayMicroseconds(200);
}
mv /= 8;

analogReadResolution(10);
return static_cast<uint16_t>(mv * ADC_MULTIPLIER );
}

const char* ThinknodeM2Board::getManufacturerName() const {
return "Elecrow ThinkNode M2";
}
}
7 changes: 2 additions & 5 deletions variants/thinknode_m2/variant.h
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
#define I2C_SCL 15
#define I2C_SDA 16
#define PIN_VBAT_READ 17
#define PIN_VBAT_READ 17
#define AREF_VOLTAGE (3.0)
#define ADC_MULTIPLIER (1.548F)
#define ADC_MULTIPLIER (1.509F)
#define PIN_BUZZER 5
#define PIN_VEXT_EN_ACTIVE HIGH
#define PIN_VEXT_EN 46
#define PIN_USER_BTN 47
#define PIN_LED 6
#define PIN_STATUS_LED 6
#define PIN_PWRBTN 4