TImpulsePlusBoard.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #pragma once
  2. #include <MeshCore.h>
  3. #include <Arduino.h>
  4. #include <helpers/NRF52Board.h>
  5. class TImpulsePlusBoard : public NRF52BoardDCDC {
  6. protected:
  7. uint8_t btn_prev_state;
  8. public:
  9. TImpulsePlusBoard() : NRF52Board("T-Impulse-Plus OTA") {}
  10. void begin();
  11. #if defined(P_LORA_TX_LED)
  12. void onBeforeTransmit() override {
  13. digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED on
  14. }
  15. void onAfterTransmit() override {
  16. digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED off
  17. }
  18. #endif
  19. uint16_t getBattMilliVolts() override {
  20. // enable battery voltage measurement
  21. digitalWrite(BATTERY_MEASUREMENT_CONTROL, HIGH);
  22. delay(100);
  23. analogReadResolution(12);
  24. analogReference(AR_INTERNAL);
  25. delay(10);
  26. // read battery voltage
  27. int adcvalue = 0;
  28. analogReadResolution(12);
  29. analogReference(AR_INTERNAL_3_0);
  30. delay(10);
  31. adcvalue = analogRead(BATTERY_ADC_DATA);
  32. // disable battery voltage measurement
  33. digitalWrite(BATTERY_MEASUREMENT_CONTROL, LOW);
  34. return ((adcvalue * ((3000.0 / 4096.0)))) * 2.0;
  35. }
  36. const char* getManufacturerName() const override {
  37. return "LilyGo T-Impulse-Plus";
  38. }
  39. void powerOff() override {
  40. sd_power_system_off();
  41. }
  42. };