Files
MeshCore/variants/thinknode_m5/ThinknodeM5Board.cpp
2025-11-28 09:57:58 +01:00

44 lines
1.1 KiB
C++

#include "ThinknodeM5Board.h"
PCA9557 expander (0x18, &Wire1);
void ThinknodeM5Board::begin() {
// Start expander
Wire1.begin(48, 47);
expander.pinMode(EXP_PIN_POWER, OUTPUT); // eink
expander.pinMode(EXP_PIN_BACKLIGHT, OUTPUT); // peripherals
expander.pinMode(EXP_PIN_LED, OUTPUT); // peripherals
expander.digitalWrite(EXP_PIN_POWER, HIGH);
expander.digitalWrite(EXP_PIN_BACKLIGHT, LOW);
expander.digitalWrite(EXP_PIN_LED, LOW);
ESP32Board::begin();
}
void ThinknodeM5Board::enterDeepSleep(uint32_t secs, int pin_wake_btn) {
esp_deep_sleep_start();
}
void ThinknodeM5Board::powerOff() {
enterDeepSleep(0);
}
uint16_t ThinknodeM5Board::getBattMilliVolts() {
analogReadResolution(12);
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* ThinknodeM5Board::getManufacturerName() const {
return "Elecrow ThinkNode M2";
}