Reimagined. Improved. Simplified.
Inx is a community firmware for Xteink e-paper readers. It is focused on a cleaner reading experience, better EPUB support, native image rendering, SD-card fonts, and practical device tools.
This project is a fork of CrossPoint and is not affiliated with Xteink.

/sleep/, /sleep.bmp, /sleep.jpg, or /sleep.jpeg.Settings are split into simple System and Reader panels.
System settings include:
Reader settings include:
The local web interface includes:
/sleep, and set folder thumbnails./fonts.Inx supports EPUB dictionary lookup with StarDict dictionaries stored on the SD card.
You can download a ready-to-use dictionary pack here:
To install a dictionary:
/dictionaries/ on the SD card..ifo, .idx, and .dict files.Example SD-card layout:
/dictionaries/
English/
dictionary.ifo
dictionary.idx
dictionary.dict
Only uncompressed .dict files are supported. Compressed .dict.dz dictionaries are not supported/must be uncompressed.
Inx includes built-in Literata and Atkinson Hyperlegible reader fonts.
You can also install fonts on the SD card:
/fonts/
MyFont/
Regular_10.bin
Regular_12.bin
Regular_14.bin
Bold_14.bin
Italic_14.bin
BoldItalic_14.bin
The web font manager converts TTF/OTF files into the .bin format used by the reader. Regular is required; bold, italic, and bold italic are optional.
Put sleep images on the SD card:
/sleep/
image1.bmp
image2.jpg
image3.png
/sleep.bmp
/sleep.jpg
/sleep.jpeg
You can choose a fixed sleep image from settings, or let the device pick one randomly.
Inx uses SD-card cache files to save RAM and speed up repeated work.
Main cache locations:
/.metadata/ EPUB metadata, layout, progress, stats, annotations
/.metadata/xtc/ XTC / XTCH metadata and progress
/.system/cache/ Display and image cache
/.system/ Settings, TXT cache, and system data
/fonts/ SD-card reader fonts
/dictionaries/ StarDict dictionaries for EPUB lookup
/sleep/ Custom sleep images
You can clear cache from Settings -> Actions -> Delete Cache.
Deleting /.metadata will force EPUB layout data to be rebuilt.
firmware.bin from the releases page.To return to the official firmware, flash the latest official firmware from xteink.dve.al or use the debug page to swap boot partitions.
pio) or VS Code with PlatformIO.git clone --recursive https://github.com/obijuankenobiii/inx
cd inx
If you already cloned without submodules:
git submodule update --init --recursive
pio run
pio run --target upload
The firmware embeds the HTML and JS from src/network/html and data/js.
python3 scripts/build_html.py
pio run also regenerates these files before compiling.
Inx includes two native simulator targets based on the CrossPoint simulator.
For the full SDL/device UI simulator:
CROSSPOINT_SIM_SD=./fs_ pio run -e simulator -t run_simulator
For dashboard-only testing:
CROSSPOINT_SIM_SD=./fs_ pio run -e simulator_web -t run_simulator
The simulator stores its SD-card data in the folder passed through CROSSPOINT_SIM_SD. The firmware web server is exposed at http://127.0.0.1:8080/ when the simulated device starts a hotspot or local network server.
On macOS, SDL2 is required:
brew install sdl2
For more simulator details, see the CrossPoint simulator project.
Install the monitor dependencies:
python3 -m pip install pyserial colorama matplotlib
Run the monitor:
# Linux
python3 scripts/debugging_monitor.py
# macOS example
python3 scripts/debugging_monitor.py /dev/cu.usbmodem2101
Contributions are welcome.
31 commits
C
69.7%
C++
28.5%
Reimagined. Improved. Simplified.
Inx is a community firmware for Xteink e-paper readers. It is focused on a cleaner reading experience, better EPUB support, native image rendering, SD-card fonts, and practical device tools.
This project is a fork of CrossPoint and is not affiliated with Xteink.

/sleep/, /sleep.bmp, /sleep.jpg, or /sleep.jpeg.Settings are split into simple System and Reader panels.
System settings include:
Reader settings include:
The local web interface includes:
/sleep, and set folder thumbnails./fonts.Inx supports EPUB dictionary lookup with StarDict dictionaries stored on the SD card.
You can download a ready-to-use dictionary pack here:
To install a dictionary:
/dictionaries/ on the SD card..ifo, .idx, and .dict files.Example SD-card layout:
/dictionaries/
English/
dictionary.ifo
dictionary.idx
dictionary.dict
Only uncompressed .dict files are supported. Compressed .dict.dz dictionaries are not supported/must be uncompressed.
Inx includes built-in Literata and Atkinson Hyperlegible reader fonts.
You can also install fonts on the SD card:
/fonts/
MyFont/
Regular_10.bin
Regular_12.bin
Regular_14.bin
Bold_14.bin
Italic_14.bin
BoldItalic_14.bin
The web font manager converts TTF/OTF files into the .bin format used by the reader. Regular is required; bold, italic, and bold italic are optional.
Put sleep images on the SD card:
/sleep/
image1.bmp
image2.jpg
image3.png
/sleep.bmp
/sleep.jpg
/sleep.jpeg
You can choose a fixed sleep image from settings, or let the device pick one randomly.
Inx uses SD-card cache files to save RAM and speed up repeated work.
Main cache locations:
/.metadata/ EPUB metadata, layout, progress, stats, annotations
/.metadata/xtc/ XTC / XTCH metadata and progress
/.system/cache/ Display and image cache
/.system/ Settings, TXT cache, and system data
/fonts/ SD-card reader fonts
/dictionaries/ StarDict dictionaries for EPUB lookup
/sleep/ Custom sleep images
You can clear cache from Settings -> Actions -> Delete Cache.
Deleting /.metadata will force EPUB layout data to be rebuilt.
firmware.bin from the releases page.To return to the official firmware, flash the latest official firmware from xteink.dve.al or use the debug page to swap boot partitions.
pio) or VS Code with PlatformIO.git clone --recursive https://github.com/obijuankenobiii/inx
cd inx
If you already cloned without submodules:
git submodule update --init --recursive
pio run
pio run --target upload
The firmware embeds the HTML and JS from src/network/html and data/js.
python3 scripts/build_html.py
pio run also regenerates these files before compiling.
Inx includes two native simulator targets based on the CrossPoint simulator.
For the full SDL/device UI simulator:
CROSSPOINT_SIM_SD=./fs_ pio run -e simulator -t run_simulator
For dashboard-only testing:
CROSSPOINT_SIM_SD=./fs_ pio run -e simulator_web -t run_simulator
The simulator stores its SD-card data in the folder passed through CROSSPOINT_SIM_SD. The firmware web server is exposed at http://127.0.0.1:8080/ when the simulated device starts a hotspot or local network server.
On macOS, SDL2 is required:
brew install sdl2
For more simulator details, see the CrossPoint simulator project.
Install the monitor dependencies:
python3 -m pip install pyserial colorama matplotlib
Run the monitor:
# Linux
python3 scripts/debugging_monitor.py
# macOS example
python3 scripts/debugging_monitor.py /dev/cu.usbmodem2101
Contributions are welcome.
31 commits
C
69.7%
C++
28.5%