mirror of
https://github.com/meshtastic/firmware.git
synced 2025-08-02 11:55:56 +00:00
35 lines
866 B
C
35 lines
866 B
C
#pragma once
|
|
|
|
#include "configuration.h"
|
|
|
|
enum class EInkDetectionResult : uint8_t {
|
|
LCMEN213EFC1 = 0, // Initial version
|
|
E0213A367 = 1, // E213 PCB marked V1.1 (Mid 2025)
|
|
};
|
|
|
|
EInkDetectionResult detectEInk()
|
|
{
|
|
// Test 1: Logic of BUSY pin
|
|
|
|
// Determines controller IC manufacturer
|
|
// Fitipower: busy when LOW
|
|
// Solomon Systech: busy when HIGH
|
|
|
|
// Force display BUSY by holding reset pin active
|
|
pinMode(PIN_EINK_RES, OUTPUT);
|
|
digitalWrite(PIN_EINK_RES, LOW);
|
|
|
|
delay(10);
|
|
|
|
// Read whether pin is HIGH or LOW while busy
|
|
pinMode(PIN_EINK_BUSY, INPUT);
|
|
bool busyLogic = digitalRead(PIN_EINK_BUSY);
|
|
|
|
// Test complete. Release pin
|
|
pinMode(PIN_EINK_RES, INPUT);
|
|
|
|
if (busyLogic == LOW)
|
|
return EInkDetectionResult::LCMEN213EFC1;
|
|
else // busy HIGH
|
|
return EInkDetectionResult::E0213A367;
|
|
} |