Free Ink
- title
- Free Ink
- type
- toolbox
- summary
- Open e-reader stack β CrossPoint firmware for Xteink devices, a hardware-independent e-paper firmware SDK, and de-link, a $60 hand-solderable ESP32-S3 reader board
- tags
- hardware, firmware, embedded, e-paper, cpp, watchlist
- homepage
- https://freeink.org
- language
- C++
- license
- MIT
- created
- 2026-07-21
- updated
- 2026-09-13
Free Ink is an open-source collective building the software, firmware and hardware for e-paper readers, with every layer shipped in the open. It's three separate projects that stack:
| Layer | Project | Stars | License |
|---|---|---|---|
| Firmware for existing devices | CrossPoint Reader (Xteink X3 / X4) | 6.2kβ | MIT |
| Hardware-independent SDK | freeink-sdk | 38β | MIT |
| Open hardware | de-link ESP32-S3 board | 330β | β |
The star distribution tells you the actual shape of the thing: CrossPoint is the project with users β replacement firmware for cheap Xteink readers β and the SDK is the recent attempt (June 2026) to generalize what CrossPoint learned so the same codebase can drive other panels and boards.
The SDK's design bet
Every device-specific detail lives behind small injectable interfaces: display controller, waveforms and LUTs, GPIOs, bus speeds, touch, frontlight, audio. Firmware calls one generic API β EInkDisplay, InputManager, BatteryMonitor, SDCardManager, BoardConfig β and gets device-specific behavior underneath.
The consequence they lead with is the interesting one: new devices are data, not code. Adding a board means adding a profile and a driver config supplying pins, geometry, waveforms and voltages as values, rather than editing the generic driver. Per-device tuning stays out of the shared code path, and related devices can share one firmware build with runtime detection, while a genuinely new controller slots in as a standalone driver behind the same facade.
Builds compose along two axes, devices Γ capabilities: touch, frontlight, color and audio are flag-gated and default on only where a device needs them, so each binary stays tight. Capacitive touch covers CHSC6x and GT911 controllers; the frontlight is PWM with warm/cool control.
One detail worth keeping for anyone doing embedded TLS: SecureNet bundles wolfSSL compiled from source for TLS 1.3 + PSA, bypassing the stubbed system mbedTLS, specifically so the reader can reach TLS-1.3-only servers β KOReader's sync service being the motivating case. That's a concrete instance of a vendor SDK's stubbed crypto forcing you to carry your own stack.
Reader features
EPUB 2 and 3 with embedded CSS applied, laid out in your chosen font, size and margins, with pages cached to SD on first open so reopening is near-instant. Noto Serif and Noto Sans built in plus any font from the SD card, with control over size, spacing, margins, hyphenation, alignment and anti-aliasing. A WiFi upload server so you can drop EPUBs in from a browser or send straight from Calibre, plus KOReader sync for position across devices. Bookmarks that remember page and reading percentage. A bionic-reading mode that bolds word-openings, with grayscale anti-aliasing and tiled rendering for fast page turns. Full RTL layout for Hebrew and Arabic, and translated menus in Spanish, French, German, Italian, Portuguese, Russian, Ukrainian, Polish and more.
de-link
The open hardware core: a compact, hand-solderable ESP32-S3 board with published KiCad schematics and a full BOM, buildable for around $60. ESP32-S3 at 240 MHz dual-core with WiFi, BLE, 16 MB flash and optional PSRAM; 24-pin SPI e-paper for GoodDisplay panels from 3.97β³ up through 7.5β³ and larger; microSD over 4-bit SDMMC; bring-your-own LiPo charged over USB-C with an MCP73832 charge controller and DW01A + FS8205A cell protection; an optional series-LED frontlight with cool/warm PWM control; dual 4-switch resistor ladders plus reset.
Assessment
The appeal is the whole-stack openness β books as plain files on an SD card in open formats, permissively licensed software and firmware, a published BOM and a swappable battery so you repair rather than landfill, and no accounts or subscriptions. That's a coherent answer to the same ownership complaint that motivates paper-computer, from the hardware side rather than the workflow side.
The realistic read: CrossPoint is usable today if you own an Xteink X3 or X4, and e-reader-ipp-printer is a worked example of extending it: an X3 that accepts IPP print jobs from macOS. The SDK is seven weeks old with 38 stars and its generalization claim is unproven across boards it wasn't extracted from β the hard part of a hardware abstraction is the second and third vendor's panel, not the first. de-link hasn't been pushed to since April 2026 and carries no license file, which matters for open hardware.
On watchlist β the SDK is the piece to watch, and the question is whether "new devices are data, not code" survives a controller family GoodDisplay didn't make.
MIT (SDK and CrossPoint). Site: https://freeink.org Β· SDK: https://github.com/Free-Ink/freeink-sdk