TechoBoard.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #pragma once
  2. #include <MeshCore.h>
  3. #include <Arduino.h>
  4. // built-ins
  5. #define VBAT_MV_PER_LSB (0.73242188F) // 3.0V ADC range and 12-bit ADC resolution = 3000mV/4096
  6. #define VBAT_DIVIDER (0.5F) // 150K + 150K voltage divider on VBAT
  7. #define VBAT_DIVIDER_COMP (2.0F) // Compensation factor for the VBAT divider
  8. #define PIN_VBAT_READ (4)
  9. #define REAL_VBAT_MV_PER_LSB (VBAT_DIVIDER_COMP * VBAT_MV_PER_LSB)
  10. class TechoBoard : public mesh::MainBoard {
  11. protected:
  12. uint8_t startup_reason;
  13. public:
  14. void begin();
  15. uint16_t getBattMilliVolts() override;
  16. bool startOTAUpdate(const char* id, char reply[]) override;
  17. uint8_t getStartupReason() const override {
  18. return startup_reason;
  19. }
  20. const char* getManufacturerName() const override {
  21. return "LilyGo T-Echo";
  22. }
  23. void powerOff() override {
  24. #ifdef LED_RED
  25. digitalWrite(LED_RED, LOW);
  26. #endif
  27. #ifdef LED_GREEN
  28. digitalWrite(LED_GREEN, LOW);
  29. #endif
  30. #ifdef LED_BLUE
  31. digitalWrite(LED_BLUE, LOW);
  32. #endif
  33. #ifdef DISP_BACKLIGHT
  34. digitalWrite(DISP_BACKLIGHT, LOW);
  35. #endif
  36. #ifdef PIN_PWR_EN
  37. digitalWrite(PIN_PWR_EN, LOW);
  38. #endif
  39. sd_power_system_off();
  40. }
  41. void reboot() override {
  42. NVIC_SystemReset();
  43. }
  44. };