T1000eBoard.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #pragma once
  2. #include <MeshCore.h>
  3. #include <Arduino.h>
  4. #include <helpers/NRF52Board.h>
  5. class T1000eBoard : public NRF52BoardDCDC {
  6. protected:
  7. uint8_t btn_prev_state;
  8. public:
  9. void begin();
  10. uint16_t getBattMilliVolts() override {
  11. #ifdef BATTERY_PIN
  12. #ifdef PIN_3V3_EN
  13. digitalWrite(PIN_3V3_EN, HIGH);
  14. #endif
  15. analogReference(AR_INTERNAL_3_0);
  16. analogReadResolution(12);
  17. delay(10);
  18. float volts = (analogRead(BATTERY_PIN) * ADC_MULTIPLIER * AREF_VOLTAGE) / 4096;
  19. #ifdef PIN_3V3_EN
  20. digitalWrite(PIN_3V3_EN, LOW);
  21. #endif
  22. analogReference(AR_DEFAULT); // put back to default
  23. analogReadResolution(10);
  24. return volts * 1000;
  25. #else
  26. return 0;
  27. #endif
  28. }
  29. const char* getManufacturerName() const override {
  30. return "Seeed Tracker T1000-E";
  31. }
  32. int buttonStateChanged() {
  33. #ifdef BUTTON_PIN
  34. uint8_t v = digitalRead(BUTTON_PIN);
  35. if (v != btn_prev_state) {
  36. btn_prev_state = v;
  37. return (v == LOW) ? 1 : -1;
  38. }
  39. #endif
  40. return 0;
  41. }
  42. void powerOff() override {
  43. #ifdef HAS_GPS
  44. digitalWrite(GPS_VRTC_EN, LOW);
  45. digitalWrite(GPS_RESET, LOW);
  46. digitalWrite(GPS_SLEEP_INT, LOW);
  47. digitalWrite(GPS_RTC_INT, LOW);
  48. digitalWrite(GPS_EN, LOW);
  49. #endif
  50. #ifdef BUZZER_EN
  51. digitalWrite(BUZZER_EN, LOW);
  52. #endif
  53. #ifdef PIN_3V3_EN
  54. digitalWrite(PIN_3V3_EN, LOW);
  55. #endif
  56. #ifdef PIN_3V3_ACC_EN
  57. digitalWrite(PIN_3V3_ACC_EN, LOW);
  58. #endif
  59. #ifdef SENSOR_EN
  60. digitalWrite(SENSOR_EN, LOW);
  61. #endif
  62. // set led on and wait for button release before poweroff
  63. #ifdef LED_PIN
  64. digitalWrite(LED_PIN, HIGH);
  65. #endif
  66. #ifdef BUTTON_PIN
  67. while(digitalRead(BUTTON_PIN));
  68. #endif
  69. #ifdef LED_PIN
  70. digitalWrite(LED_PIN, LOW);
  71. #endif
  72. #ifdef BUTTON_PIN
  73. nrf_gpio_cfg_sense_input(BUTTON_PIN, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_HIGH);
  74. #endif
  75. sd_power_system_off();
  76. }
  77. // bool startOTAUpdate(const char* id, char reply[]) override;
  78. };