|
|
|
@ -17,30 +17,18 @@ |
|
|
|
#define SX126X_DIO2_AS_RF_SWITCH true |
|
|
|
#define SX126X_DIO3_TCXO_VOLTAGE (1.8f) |
|
|
|
|
|
|
|
#define PIN_OLED_RESET -1 // shared VCC
|
|
|
|
|
|
|
|
#define PIN_VBAT_READ 17 |
|
|
|
#define ADC_MULTIPLIER (1.815f) // dependent on voltage divider resistors. TODO: more accurate battery tracking
|
|
|
|
|
|
|
|
class faketecBoard : public mesh::MainBoard { |
|
|
|
protected: |
|
|
|
uint8_t startup_reason; |
|
|
|
uint8_t btn_prev_state; |
|
|
|
|
|
|
|
public: |
|
|
|
void begin() { |
|
|
|
// for future use, sub-classes SHOULD call this from their begin()
|
|
|
|
startup_reason = BD_STARTUP_NORMAL; |
|
|
|
|
|
|
|
pinMode(PIN_VBAT_READ, INPUT); |
|
|
|
|
|
|
|
#if defined(PIN_BOARD_SDA) && defined(PIN_BOARD_SCL) |
|
|
|
Wire.setPins(PIN_BOARD_SDA, PIN_BOARD_SCL) |
|
|
|
#endif |
|
|
|
|
|
|
|
Wire.begin(); |
|
|
|
|
|
|
|
pinMode(SX126X_POWER_EN, OUTPUT); |
|
|
|
digitalWrite(SX126X_POWER_EN, HIGH); |
|
|
|
delay(10); // give sx1262 some time to power up
|
|
|
|
} |
|
|
|
void begin(); |
|
|
|
|
|
|
|
uint8_t getStartupReason() const override { return startup_reason; } |
|
|
|
|
|
|
|
@ -61,6 +49,17 @@ public: |
|
|
|
return "Faketec DIY"; |
|
|
|
} |
|
|
|
|
|
|
|
int buttonStateChanged() { |
|
|
|
#ifdef BUTTON_PIN |
|
|
|
uint8_t v = digitalRead(BUTTON_PIN); |
|
|
|
if (v != btn_prev_state) { |
|
|
|
btn_prev_state = v; |
|
|
|
return (v == LOW) ? 1 : -1; |
|
|
|
} |
|
|
|
#endif |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
void reboot() override { |
|
|
|
NVIC_SystemReset(); |
|
|
|
} |
|
|
|
|