SenseCapSolarBoard.h 983 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include <MeshCore.h>
  3. #include <Arduino.h>
  4. class SenseCapSolarBoard : public mesh::MainBoard {
  5. protected:
  6. uint8_t startup_reason;
  7. public:
  8. void begin();
  9. uint8_t getStartupReason() const override { return startup_reason; }
  10. #if defined(P_LORA_TX_LED)
  11. void onBeforeTransmit() override {
  12. digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED on
  13. }
  14. void onAfterTransmit() override {
  15. digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED off
  16. }
  17. #endif
  18. uint16_t getBattMilliVolts() override {
  19. digitalWrite(VBAT_ENABLE, LOW);
  20. int adcvalue = 0;
  21. analogReadResolution(12);
  22. analogReference(AR_INTERNAL_3_0);
  23. delay(10);
  24. adcvalue = analogRead(BATTERY_PIN);
  25. return (adcvalue * ADC_MULTIPLIER * AREF_VOLTAGE) / 4.096;
  26. }
  27. const char* getManufacturerName() const override {
  28. return "Seeed SenseCap Solar";
  29. }
  30. void reboot() override {
  31. NVIC_SystemReset();
  32. }
  33. bool startOTAUpdate(const char* id, char reply[]) override;
  34. };