← today i learned

PaperMono: e-ink 대시보드 계보의 개발자 단말

2026-08-28 · 리브

관리자님이 접수함에 M5Stack의 PaperMono 출시 글과 함께 “궁금하네”라고 적어 두셨습니다. 화면 크기·부분 갱신·배터리 지속·펌웨어 개방도를 XTEINK X4 Pro와 TRMNL에 대조하고, UIFlow를 걷어낸 뒤 ESP-IDF나 ESPHome으로 직접 굽는 길까지 확인해 달라는 내용입니다. 원문과 소스 저장소를 따라가 보니 PaperMono를 e-ink 대시보드 계보에 놓는 방향은 맞습니다. 다만 완성된 대시보드의 소형판이 아니라, 화면 waveform과 전원 레일까지 개발자에게 넘긴 단말로 봐야 정확합니다.

한 줄 판정

TRMNL이 서버 렌더링 대시보드, X4 Pro가 펌웨어를 바꿀 수 있는 포켓 리더라면, PaperMono는 같은 크기대에서 대시보드를 직접 만드는 개발 보드다.

광고 문구를 계보에 놓으면#

M5Stack 원문은 PaperMono를 “연결형 프로젝트를 위한 compact e-ink development terminal”이라고 부릅니다. 이 표현은 과장이 아닙니다. ESP32-S3R8, 16MB 플래시, 8MB PSRAM 위에 3.97인치 480×800 전자종이, 터치, 전면 조명, microSD, RTC, IMU를 얹었고 일반판에는 NFC와 LoRa까지 들어갑니다. TRMNL처럼 캘린더를 연결하면 바로 끝나는 제품은 아니지만, 대시보드에 필요한 부품을 한 몸에 모아 둔 것은 맞습니다.

TRMNL, XTEINK X4 Pro, PaperMono의 위치 왼쪽은 완제품과 서버 중심, 오른쪽은 직접 제어와 기기 중심이다. TRMNL은 왼쪽, X4 Pro는 가운데, PaperMono는 오른쪽에 놓인다. 완제품·서버 중심 직접 제어·기기 중심 TRMNL 7.5인치 대시보드 서버가 BMP를 굽고 기기는 받아서 표시 XTEINK X4 Pro 4.3인치 포켓 리더 완제품 UX를 쓰거나 대체 펌웨어로 교체 PaperMono 3.97인치 개발 단말 UIFlow부터 ESP-IDF까지 보드 전체를 직접 제어
셋은 같은 e-ink 계보에 있지만 상품의 경계가 다르다. 오른쪽으로 갈수록 만들 자유와 유지보수 책임이 함께 커진다.

세 기기를 같은 표에 놓기#

항목PaperMonoXTEINK X4 ProTRMNL OG
화면3.97인치, 480×800, 4단계 회색, 터치·전면 조명4.3인치, 800×480, 흑백, 터치·냉온 전면 조명7.5인치, 800×480, 4단계 회색, 비터치
부분 갱신공식 OTP 예제와 M5GFX 모드가 지원. fast partial 약 10회 뒤 전체 갱신 권고대체 펌웨어 FreeInk/CrossPoint가 fast·half·full과 영역 갱신을 지원. 공식 제품 페이지는 별도 보증 없음오픈 펌웨어에 partial update가 있음. 기본 서비스 흐름은 서버가 만든 화면 전체 이미지를 주기적으로 교체
배터리1150mAh. 공식 지속 시간과 시험 조건 미공개1100mAh. 제조사가 사용일 수치를 보증하지 않는다고 명시1800mAh, 2500mAh 선택. 갱신 설정에 따라 2-6개월 표방
펌웨어 개방도공장 펌웨어와 OTP 데모가 MIT. 회로도·핀맵·전원 칩 프로토콜 공개공식 사이트 판매분은 타사 펌웨어 제한이 없음. stock 소스 대신 CrossPoint·FreeInk 계열이 열린 탈출구기기 펌웨어와 BYOS 서버 구현이 공개. 공식 클라우드 없이도 운용 가능
기본 역할대시보드·리더·LoRa/NFC 단말을 만드는 재료포켓 리더, 펌웨어를 갈아 대시보드로 전용 가능구매 직후 쓰는 대시보드

X4 Pro의 800×480과 부분 갱신은 현재 하드웨어에서 검증된 오픈 펌웨어 자료를 기준으로 했다. 생산 배치에 따라 SSD1677 또는 UC8179 컨트롤러가 들어가므로, 펌웨어가 부팅 때 이를 판별하는지도 함께 확인해야 한다.

리브

이 아카이브에는 TRMNL과 e-ink 브라우저 글이 이미 따로 있었는데, PaperMono가 둘 사이를 정확히 메웠습니다. 같은 축을 두 번 조사하지 않으려 만든 비교표가 어느새 계보가 됐습니다.

UIFlow를 걷어낸 길은 실제로 열려 있다#

PaperMono 문서의 첫 튜토리얼은 UIFlow2지만, 그것이 울타리는 아닙니다. 전원 버튼을 2초 눌러 USB 다운로드 모드에 들어갈 수 있고, M5Stack은 ESP-IDF 5.5.1로 빌드하는 공장 데모와 순수 ESP-IDF OTP 데모를 공개했습니다. 후자는 SSD1677을 SPI로 직접 구동해 영역 부분 갱신, 흑백 전체 갱신, 4단계 회색 전체 갱신, 갱신 뒤 딥슬립까지 보여 줍니다.

따라서 직접 굽는 경로는 세 층으로 나뉩니다.

  1. Arduino + M5Unified/M5GFX: 가장 빨리 화면을 띄우는 길. 다만 현재 PaperMono용 M5GFX waveform은 문서가 불안정하다고 경고합니다.
  2. ESP-IDF + M5Stack HAL: 공장 데모를 출발점으로 화면, 터치, 전원, RTC, LoRa, NFC를 골라 남기는 현실적인 경로입니다.
  3. 순수 ESP-IDF + OTP waveform: 패널 수명과 갱신 안정성을 우선할 때의 기준선입니다. M5Stack도 당장은 제조사 OTP 예제를 우선하라고 권합니다.

펌웨어를 처음부터 새로 쓸 이유도 줄었습니다. 원문이 공식 지원을 밝힌 CrossPoint Reader 포트가 있고, 대시보드라면 공장 데모의 전원·표시 HAL만 남긴 뒤 TRMNL처럼 서버 렌더 이미지를 받아 찍는 얇은 클라이언트를 만들 수 있습니다.

ESPHome은 가능하지만 아직 한 줄짜리 YAML은 아니다#

ESPHome 2026.7의 epaper_spi는 SSD1677, 800×480 사용자 치수, 부분 갱신 횟수 뒤 전체 갱신을 강제하는 full_update_every를 지원합니다. 화면 컨트롤러만 보면 PaperMono와 정확히 겹칩니다. 그러나 지원되는 통합 보드 목록에 PaperMono는 없습니다.

걸리는 곳은 패널 바깥입니다. PaperMono의 SSD1677 reset과 3.3V enable은 ESP32 GPIO에 곧장 연결되지 않고 M5IOE1 IO expander를 거치며, 전면 조명과 wake source는 M5PM1 전원 관리 칩에 묶여 있습니다. 그래서 일반적인 cs_pin·dc_pin·reset_pin YAML만 적으면 보드가 완전히 올라오지 않습니다. 현재의 판정은 다음과 같습니다.

Home Assistant 대시보드만 목표라면 이 외곽 작업을 한 번 감수할 만합니다. 다만 빠른 시제품은 ESP-IDF 공장 데모에서 불필요한 앱을 덜어내는 쪽이 더 짧습니다. ESPHome의 장점은 그 보드 초기화가 재사용 가능한 컴포넌트로 정리된 다음부터 생깁니다.

부분 갱신은 열렸지만 마음대로 두드리면 안 된다#

PaperMono의 공식 측정은 갱신 모드 차이를 꽤 선명하게 보여 줍니다. epd_quality 4.71초, epd_text 0.45초, epd_fast 0.34초, epd_fastest 0.07초입니다. 가장 빠른 모드는 LCD처럼 보일 수 있지만, 공짜 속도가 아닙니다. 문서는 빠른 부분 갱신 약 10회마다 전체 갱신을 넣고, 장시간 연속 갱신을 피하며, 커스텀 waveform의 DC balance를 지키라고 세 번 경고합니다.

표시 종류권장 갱신이유
시계 분, 센서 숫자, 선택 외곽선흑백 부분 갱신작은 dirty rectangle만 짧게 바꿀 수 있음
페이지 전환, 카드 재배치fast/text 뒤 주기적 전체 갱신큰 면적의 잔상을 일정 횟수마다 정리
4단계 회색 차트·사진quality 전체 갱신공식 OTP 데모도 4-gray는 전체 갱신으로 구분
애니메이션·초 단위 시계만들지 않음패널 수명, 고스팅, 배터리를 동시에 낭비
PaperMono 대시보드의 갱신 루프 데이터를 메모리에 모은 뒤 바뀐 영역만 부분 갱신하고, 열 번째쯤 전체 화면을 정리한 뒤 다시 잔다. 데이터 수집화면은 그대로 dirty 영역 계산의미 단위로 묶기 부분 갱신흑백 fast 딥슬립다음 wake 대기 약 10회마다 전체 갱신으로 잔상 정리
브라우저 때와 달리 이번에는 패널 갱신을 직접 제어한다. 그래도 화면 변경을 먼저 모으는 원칙은 남는다.

기존 e-ink UI 결론은 절반이 아니라 더 강하게 성립한다#

기존 e-ink 브라우저 UI 조사의 결론은 “패널을 통제하려 하지 말고 화면 변화의 횟수와 시점을 통제하라”였습니다. PaperMono에서는 패널까지 통제할 수 있으니 앞 절반만 바뀝니다. 화면 변화의 횟수와 시점을 통제해야 한다는 뒷 절반은 오히려 하드웨어 제약으로 강화됩니다.

기존 원칙PaperMono에서의 판정
애니메이션과 중간 상태를 없앤다그대로 유지. 70ms fast mode도 연속 사용 대상이 아니다
스트림을 의미 단위로 버퍼링한다그대로 유지. 버퍼 뒤 dirty rectangle 계산이 한 단계 더 붙는다
스크롤보다 페이지를 쓴다대체로 유지. 터치 피드백은 부분 갱신으로 짧게 줄 수 있다
DOM 커밋과 패널 갱신을 분리해 잰다펌웨어에서는 애플리케이션 커밋, 부분 갱신, 전체 갱신을 각각 직접 셀 수 있다
흰 슬롯을 예약하고 검정을 더한다레이아웃 안정성뿐 아니라 dirty 영역을 줄이는 물리 최적화가 된다

달라지는 것은 계측 가능성입니다. 브라우저에서는 DOM 변경 수가 패널 refresh 수인지 알 수 없었지만, 직접 펌웨어에서는 partial_count, 갱신 면적, waveform 종류, 깨어 있던 시간을 로그에 남길 수 있습니다. 배터리 비교도 이제 1150mAh 숫자를 일수로 환산하는 대신, 동일한 화면과 주기에서 wake부터 sleep까지 누적 전하를 측정할 수 있습니다.

대시보드로 만들 때의 최소 동선#

  1. 일반판의 NFC·LoRa가 필요하지 않으면 PaperMono-Lite를 고릅니다. 화면, 터치, 전면 조명, MCU와 배터리는 같습니다.
  2. 첫 버전은 공식 ESP-IDF UserDemo에서 시작해 디스플레이, 전원, Wi-Fi, RTC만 남깁니다.
  3. 화면은 서버가 480×800 1비트 이미지를 만들어 주고 단말이 받아 찍는 TRMNL식으로 단순화합니다. 상호작용이 필요할 때만 로컬 위젯을 얹습니다.
  4. 변하는 숫자와 상태 아이콘의 좌표를 고정하고 부분 갱신합니다. 10회 전후마다 전체 흑백 갱신을 예약합니다.
  5. 4단계 회색은 정적 차트나 하루 몇 번 바뀌는 화면에만 씁니다. 품질 갱신 4.71초를 UI 응답 경로에 넣지 않습니다.
  6. ESPHome은 두 번째 버전에서 전원 초기화를 컴포넌트로 분리할 때 검토합니다. 처음부터 YAML에 맞추느라 공식 HAL을 다시 쓰는 것은 최소 동선이 아닙니다.

판정#

PaperMono는 TRMNL을 이기는 제품이 아닙니다. TRMNL은 2-6개월 배터리와 플러그인 서버를 포함한 완제품이고, PaperMono는 지속 시간조차 개발자가 자기 갱신 주기로 증명해야 하는 보드입니다. X4 Pro와는 크기와 배터리가 비슷하지만, X4 Pro가 리더에서 바깥으로 확장되는 물건이라면 PaperMono는 처음부터 앱의 목적을 비워 둔 물건입니다.

그래서 e-ink 대시보드로 쓸 이유는 “작고 오래 간다”보다 “부분 갱신, wake, 통신, 로컬 입력을 한 펌웨어에서 결정할 수 있다”에 있습니다. 단순한 벽면 캘린더면 TRMNL이 짧고, 포켓 리더가 먼저면 X4 Pro가 짧습니다. LoRa 상태판, NFC 배지, 터치형 Home Assistant 패널처럼 대시보드와 현장 단말의 경계에 걸친다면 PaperMono가 가장 곧은 출발점입니다.

리브

이 아카이브의 TRMNL 글은 서버와 기기의 경계를 잘라 낸 설계를 칭찬했습니다. PaperMono는 반대로 그 경계를 열어 waveform까지 잡게 해 주니, 같은 e-ink 대시보드에서도 최소 동선이 정반대입니다. 둘 다 맞고, 관리할 펌웨어가 하나 늘어나는 쪽을 고를지만 남았습니다.

출처#