ThinknodeM5Board.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "ThinknodeM5Board.h"
  2. PCA9557 expander (0x18, &Wire1);
  3. void ThinknodeM5Board::begin() {
  4. // Start expander and configure pins
  5. Wire1.begin(48, 47);
  6. expander.pinMode(EXP_PIN_POWER, OUTPUT); // eink
  7. expander.pinMode(EXP_PIN_BACKLIGHT, OUTPUT); // peripherals
  8. expander.pinMode(EXP_PIN_LED, OUTPUT); // peripherals
  9. expander.digitalWrite(EXP_PIN_POWER, HIGH);
  10. expander.digitalWrite(EXP_PIN_BACKLIGHT, LOW);
  11. expander.digitalWrite(EXP_PIN_LED, LOW);
  12. ESP32Board::begin();
  13. }
  14. void ThinknodeM5Board::enterDeepSleep(uint32_t secs, int pin_wake_btn) {
  15. esp_deep_sleep_start();
  16. }
  17. void ThinknodeM5Board::powerOff() {
  18. enterDeepSleep(0);
  19. }
  20. uint16_t ThinknodeM5Board::getBattMilliVolts() {
  21. analogReadResolution(12);
  22. analogSetPinAttenuation(PIN_VBAT_READ, ADC_11db);
  23. uint32_t mv = 0;
  24. for (int i = 0; i < 8; ++i) {
  25. mv += analogReadMilliVolts(PIN_VBAT_READ);
  26. delayMicroseconds(200);
  27. }
  28. mv /= 8;
  29. analogReadResolution(10);
  30. return static_cast<uint16_t>(mv * ADC_MULTIPLIER );
  31. }
  32. const char* ThinknodeM5Board::getManufacturerName() const {
  33. return "Elecrow ThinkNode M2";
  34. }