FreeInk - 전자책 리더를 위한 개방형 생태계

6 hours ago 2
  • 전자종이 리더의 소프트웨어·펌웨어·하드웨어 전 계층을 공개해 누구나 기기를 확장하거나 직접 만들 수 있는 오픈소스 생태계임
  • CrossPoint Reader는 EPUB 2·3 렌더링과 글꼴 설정, WiFi 전송, KOReader 동기화, 북마크, Focus Reading, 다국어 및 오른쪽에서 왼쪽으로 쓰는 언어의 레이아웃을 지원함
  • 하드웨어 독립형 FreeInk SDK가 컨트롤러·파형·핀·주변장치를 안정적인 API로 추상화해, 코드 재작성 없이 프로필과 설정만으로 새 보드를 추가할 수 있음
  • 오픈 하드웨어 de-link는 ESP32-S3와 전자종이 인터페이스, 충전·배터리 보호, 선택형 전면 조명을 단일 PCB에 통합했으며 약 60달러에 직접 제작 가능함
  • 책을 SD 카드의 공개 형식 파일로 보관하고 공개 회로도·BOM과 교체형 배터리를 제공해, 계정이나 구독 없이 기기를 소유·수리·개조할 수 있게 함

소프트웨어부터 하드웨어까지 열린 전자책 리더 스택

  • FreeInk는 전자종이 리더용 소프트웨어·펌웨어·하드웨어를 함께 개발하는 오픈소스 공동체임
  • 모든 계층을 공개해 누구나 가져와 확장하고 필요에 맞게 바꿀 수 있음
  • Xteink와 Seeed Studio가 공식 파트너로 참여함

CrossPoint Reader 소프트웨어

  • CrossPoint Reader는 저가형 전자종이 리더를 위한 커뮤니티 기반 완전 오픈소스 펌웨어로, 사용자가 기능을 제어하고 확장할 수 있는 기반을 제공함
  • EPUB 2·3 렌더링을 지원함
    • EPUB에 포함된 CSS를 적용하고 사용자가 선택한 글꼴·크기·여백에 맞춰 장을 배치함
    • 처음 연 페이지를 SD 카드에 캐시해 다시 열 때 거의 즉시 표시함
  • Noto Serif와 Noto Sans를 내장하며 SD 카드에 추가한 임의의 글꼴도 사용할 수 있음
    • 크기, 간격, 여백, 하이픈 처리, 정렬, 안티앨리어싱을 조정 가능함
  • WiFi에서 업로드 서버를 실행해 브라우저로 EPUB을 전송하거나 Calibre에서 직접 보낼 수 있음
    • KOReader 동기화로 여러 기기에서 읽던 위치를 유지함
  • Confirm 버튼을 길게 누르면 어느 구절에서든 북마크를 만들 수 있음
    • 저장된 위치에는 페이지와 독서 진행률이 함께 기록됨
  • Focus Reading은 각 단어의 앞부분을 굵게 표시해 시선 이동과 읽기 속도를 유도함
    • 회색조 안티앨리어싱과 타일 렌더링으로 빠르고 선명한 페이지 전환을 지원함
  • 히브리어와 아랍어를 위한 완전한 오른쪽에서 왼쪽 레이아웃을 제공함
    • 메뉴는 스페인어, 프랑스어, 독일어, 이탈리아어, 포르투갈어, 러시아어, 우크라이나어, 폴란드어 등 10개 이상의 언어로 번역됨

하드웨어 독립형 FreeInk SDK

  • FreeInk SDK는 전자종이 리더 펌웨어를 만들기 위한 하드웨어 독립형 개발 기반임
    • 컨트롤러, 파형, 핀, 주변장치를 안정적인 추상화 계층 뒤로 분리함
    • 하나의 범용 코드베이스로 여러 기기를 구동하며, 새 보드는 전체 재작성 없이 프로필과 설정으로 추가함
  • 기기별 세부 사항은 작고 주입 가능한 인터페이스로 나뉨
    • 디스플레이 컨트롤러, 파형과 LUT, GPIO, 버스 속도, 터치, 전면 조명, 오디오를 각각 캡슐화함
    • 펌웨어는 하나의 범용 API를 호출하면서 기기에 맞는 동작을 얻음
  • EInkDisplay, InputManager, BatteryMonitor, SDCardManager, BoardConfig에 걸쳐 작고 일관된 API를 제공함
    • 펌웨어가 단일 라이브러리 경로를 대상으로 하므로 하부 하드웨어와 분리된 상태를 유지할 수 있음
  • 새 보드는 범용 드라이버를 수정하는 대신 프로필과 드라이버 설정을 추가하는 방식으로 지원함
    • 핀, 화면 크기, 파형, 전압을 데이터 값으로 공급해 기기별 조정이 공유 코드 경로에 섞이지 않게 함
  • 빌드는 기기와 기능이라는 두 축으로 구성됨
    • 터치, 전면 조명, 컬러, 오디오는 플래그로 제어하고 필요한 기기에서만 기본 활성화해 바이너리 크기를 줄임
  • CHSC6x와 GT911 컨트롤러용 정전식 터치를 지원함
    • InputManager는 가공하지 않은 터치 좌표를 제공하고, 화면 회전은 애플리케이션이 처리함
  • PWM 전면 조명은 따뜻한 색과 차가운 색 제어를 지원함
  • SecureNet은 소스에서 컴파일한 wolfSSL을 묶어 TLS 1.3과 PSA를 제공함
    • 기능이 제한된 시스템 mbedTLS를 우회해 KOReader 동기화처럼 TLS 1.3 전용 서버에 접속할 수 있음

완전 지원 기기와 런타임 구성

  • 현재 다음 기기를 Full 상태로 지원함
기기 MCU 컨트롤러 패널
Xteink X4 ESP32-C3 SSD1677 800×480 흑백·4단계 회색조
Xteink X3 ESP32-C3 UC8253 792×528 흑백·4단계 회색조
de-link ESP32-S3 SSD1677 800×480 흑백·회색조·전면 조명
M5Stack PaperColor ESP32-S3 ED2208 400×600 Spectra-6 컬러
Murphy M3 ESP32-S3 UC8253 240×416 흑백·터치·전면 조명
LilyGo T5 S3 ESP32-S3 ED047TC1 960×540 16단계 회색조·터치·I²C 게이지
Sticky ESP32-S3 SSD1677 3.97인치 800×480 흑백·GT911 터치·센서 모음
M5Paper v1.1 ESP32(클래식) IT8951E 540×960 16단계 회색조·GT911 터치
  • 서로 연관된 기기는 하나의 펌웨어 빌드를 공유하며 실행 시점에 감지하고 설정할 수 있음
  • 새 컨트롤러는 추상화 계층 뒤에 독립형 드라이버로 추가됨

직접 제작할 수 있는 de-link 하드웨어

  • de-link는 프로젝트의 오픈 하드웨어 코어로, 손으로 납땜할 수 있는 소형 ESP32-S3 보드임
    • KiCad 회로도와 전체 BOM을 공개함
    • 충전, 배터리 보호, 선택형 전면 조명, 24핀 전자종이 인터페이스를 단일 PCB에 통합함
    • 직접 제작하는 데 드는 비용은 약 60달러
  • 연산부에는 240MHz 듀얼 코어 ESP32-S3를 사용함
    • WiFi, BLE, 16MB 플래시와 선택형 PSRAM을 제공함
  • 디스플레이는 GoodDisplay의 3.97인치, 4.26인치, 7.5인치 이상 패널을 위한 24핀 SPI 전자종이 인터페이스를 사용함
  • 저장장치는 4비트 SDMMC 인터페이스의 microSD이며 전체 서재를 오프라인으로 보관할 수 있음
  • 사용자가 선택한 LiPo 배터리를 연결하고 USB-C OTG로 충전함
    • MCP73832 충전 컨트롤러와 DW01A·FS8205A로 과충전 및 과방전을 방지함
  • 선택형 직렬 LED 전면 조명은 차가운 색·따뜻한 색 전환과 PWM 밝기 조절을 지원함
  • 조작부는 각각 스위치 4개를 갖춘 저항식 래더 2개와 리셋 버튼으로 구성됨
  • 다기능 GPIO를 외부에 노출해 모듈 연결과 사용자 개조에 활용할 수 있음

소유하고 수리하며 개조할 수 있는 기반

  • 렌더링 엔진부터 충전 회로까지 모든 계층을 문서화하고 공개해 커뮤니티가 함께 구축·수정·확장할 수 있음
  • 책은 SD 카드에 공개 표준의 일반 파일로 저장됨
    • 어느 기기에서든 읽고 복사하며 계속 보관할 수 있음
  • 소프트웨어·펌웨어·하드웨어를 모두 공개하고 허용적인 라이선스로 배포함
    • 포크, 감사, 재사용이 가능함
  • 손으로 납땜할 수 있는 부품과 공개 BOM, 교체형 배터리를 사용해 폐기하는 대신 수리할 수 있도록 설계함
  • 계정이나 구독 없이 기기와 소프트웨어를 완전히 소유할 수 있음
  • 독자와 하드웨어 개조자들이 공개적으로 개발에 참여함
    • 나이틀리 빌드와 공유 테마를 제공하고 외부 기여를 받음
  • 여분의 GPIO, 사용자 글꼴, 테마 적용형 메뉴를 활용해 자유롭게 개조 가능함
  • 전체 스택은 회로도와 BOM까지 100% 공개되며 USB-C 표준 케이블 충전을 지원함
  • 릴리스는 v0.1부터 v1.2까지 누적되어 있음
Read Entire Article