mirror of
https://github.com/meshtastic/firmware.git
synced 2025-07-31 02:45:41 +00:00

Some checks are pending
CI / setup (check) (push) Waiting to run
CI / setup (esp32) (push) Waiting to run
CI / setup (esp32c3) (push) Waiting to run
CI / setup (esp32c6) (push) Waiting to run
CI / setup (esp32s3) (push) Waiting to run
CI / setup (nrf52840) (push) Waiting to run
CI / setup (rp2040) (push) Waiting to run
CI / setup (stm32) (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build-esp32 (push) Blocked by required conditions
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / build-debian-src (push) Waiting to run
CI / package-pio-deps-native-tft (push) Waiting to run
CI / test-native (push) Waiting to run
CI / docker-deb-amd64 (push) Waiting to run
CI / docker-deb-amd64-tft (push) Waiting to run
CI / docker-alp-amd64 (push) Waiting to run
CI / docker-alp-amd64-tft (push) Waiting to run
CI / docker-deb-arm64 (push) Waiting to run
CI / docker-deb-armv7 (push) Waiting to run
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
CI / publish-firmware (push) Blocked by required conditions
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;
|
|
} |