본문으로 건너뛰기

CrossPoint Reader CJK

Vertical text and CJK reading, added to e-ink reader firmware

CrossPoint Reader is open-source firmware that replaces the stock software on Xteink X3 and X4 e-ink readers. It handles EPUB rendering, wireless transfer, OPDS, and ships 24 UI languages with RTL support — but it does not deal with CJK scripts. This fork adds CJK reading on top of it.

What I added

  • Vertical text (縦書き) — Japanese books read in their intended direction. Vertical typesetting is not a matter of rotating glyphs; each character class needs its own treatment
  • Bracket rotation and padding — corner brackets like 「」『』 must be offset rather than rotated, and opening and closing brackets need different padding
  • Tate-chu-yoko (縦中横) — one- and two-digit numbers stay horizontal inside vertical text; three digits and up go back to stacking upright
  • CJK font rendering — a built-in CJK font, SD card .epdfont support, and fallback lookup for glyphs a font is missing
  • Lazy loading for large fonts — CJK fonts are far larger than Latin ones, and the ESP32C3 does not have memory to spare
  • Korean UI — interface translation and font fallback
  • Word lookup and vocabulary — select a range in the text to look up a word, then review what you collected as flashcards
  • Dictionary conversion tools — scripts that turn JMdict and the Japanese Wiktionary into a format the device can read

Why I built it

An e-ink reader is unusable if the firmware does not support your language, however good the hardware is. Fixing the firmware was faster than replacing the device.

I built on top of the original rather than rewriting it. Upstream keeps moving, and I need to be able to follow — this fork has merged upstream several times since.

C++ESP-IDFFreeTypePython
2025–2026
CJK 렌더링 · 세로쓰기 · 단어 조회

Back to all projects