Open-source e-reader firmware for Xteink X3 and X4.
Based on CrossPoint and designed for a focused, button-driven reading experience.
CrossVi extends CrossPoint Reader with a richer library, reading statistics, configurable Home layouts, and additional safeguards for data stored on the SD card.
Warning
CrossVi has not yet been validated on every newer X3/X4 hardware revision. Read Hardware compatibility before flashing.
Download v1.0.1 · Installation · User Guide · Report a Bug · Contributing
- Reading: EPUB, TXT, Markdown, XTC, XTCH, and BMP.
- Library: Four Home layouts, list and cover views, search, sorting, paging, pinning, incremental updates, EPUB image optimization, and reusable cover caches.
- Reader tools: Bookmarks, highlights, dictionary lookup, in-book search, clipping export, screenshots, and device, book, and calendar statistics.
- Customization: Built-in and downloadable fonts up to 28 pt, per-book typography, margins, spacing, orientation, image handling, and reader dark mode.
- Connectivity: Wi-Fi file transfer, OPDS, Calibre/WebDAV, KOReader Sync, OTA, and Nearby Sync.
- Device and reliability: Configurable buttons, sleep screens, Quick Resume, clock, automatic and tilt page turns, plus transactional storage for important data.
Download firmware.bin
from the latest CrossVi release, then select
Custom .bin in the CrossPoint web flasher.
Back up the SD card before flashing.
CrossVi targets the Xteink X3 and X4, but production revisions may use different display or power hardware.
- New X3 units: If you have just received the device and have never flashed custom firmware, stay on stock firmware for now. New production runs may use the UC8279 display controller. CrossVi can detect it, but support still needs validation on the new hardware. See the upstream controller work.
- New X4 units: Some revisions require a battery-latch fix to remain powered without USB. CrossVi 1.0.1 includes that behavior, but it has not yet been validated on a new-revision X4.
Keep the SD card backed up and flash only a recoverable device.
Requirements: pioarduino, Python 3.8+, Git, and the repository submodules.
git clone --recursive https://github.com/tvhdc/crossvi.git
cd crossvi
pio run -e defaultThe firmware is written to .pio/build/default/firmware.bin.
The desktop simulator can check build, boot, UI, and basic application flows:
python3 scripts/run_simulator.py x3
python3 scripts/run_simulator.py x4Hardware-dependent behaviour such as e-paper refresh, ghosting, SD timing, power use, buttons, and sleep/wake must be tested on a physical device.
CrossVi is developed with AI assistance. AI tools help with code exploration, drafting changes, and reviewing tests. The maintainer makes the design decisions, reviews and validates every release, and remains responsible for the firmware.
CrossVi is a fork of CrossPoint Reader, which remains its technical foundation. It also adapts selected ideas from CrossInk, CPR-vCodex, and other community contributions where they fit the X3/X4 hardware.
CrossVi is licensed under the MIT License, preserves upstream attribution, and is not affiliated with Xteink.
