| title | User Guide |
|---|---|
| nav_order | 1.5 |
This guide covers day-to-day device use. For focused reference material, see Reader Features, Controls, SD Card Fonts, File Transfer, and Troubleshooting. For Dashboard and Minimal Home-screen gestures, see Touch Navigation.
- CrossInk User Guide
- 1. Hardware Overview
- 2. Power & Startup
- 3. Screens
- 3.1 Home Screen
- 3.2 Reading Mode
- 3.3 Browse Files Screen
- 3.4 Recent Books Screen
- 3.5 File Transfer Screen
- 3.5.1 Calibre Wireless Transfers
- 3.6 Settings
- 3.7 Sleep Screen
- 3.8 Boot Screen
- 3.9 Custom Fonts (SD Card)
- 4. Reading Mode
- 5. Reader Menu
- 6. Current Limitations & Roadmap
- 7. Troubleshooting Issues & Escaping Bootloop
CrossInk supports many devices with various button layouts. For the X3/X4 devices with front buttons, by default they will use the following layout from left to right, and this guide will refer to them by those names.
| Default Front Button Mapping | |||
|---|---|---|---|
| Back | Confirm | Left | Right |
For devices with buttons on either side of the device, this guide may refer to the buttons as follows:
| Location | Button Mapping |
|---|---|
| Left Side | Left/Up |
| Right Side | Right/Down |
Button layout can be customized in Settings > Controls.
When the Power Button and Down button are pressed at the same time, it will take a screenshot and save it in the folder screenshots/.
Alternatively, while reading a book, press the Confirm button to open the reader menu and select Take screenshot.
By default, press and hold the Power button for approximately half a second to put the device to sleep or wake it. In Settings > Controls > Power Button, you can configure the short-press and long-press actions separately. A short press wakes the device only when Short-press Action is set to Sleep/Wake or Wake; otherwise, hold Power for about half a second to wake it. See Controls for details.
To reboot the device (for example after a firmware update or if it's frozen), press and release the Reset button, and then quickly press and hold the Power button for a few seconds.
Upon turning the device on for the first time, you will be placed on the Home screen.
Note
On subsequent restarts, the firmware will automatically reopen the last book you were reading.
The Home screen is the main entry point to the firmware. From here you can navigate to Reading Mode with the most recently read book, the Browse Files screen, the Recent Books screen, the File Transfer screen, or Settings.
See Reading Mode below for more information.
The Browse Files screen acts as a file and folder browser. The full path to the current directory is shown at the top of the screen. File extensions are displayed alongside each filename, and directories are shown with brackets (e.g. [folder-name]). Hidden directories can be shown from settings.
- Navigate List: Use Left (or Up), or Right (or Down) to move the selection cursor up and down through folders and books. You can also long-press these buttons to scroll a full page up or down.
- Open Selection: Press Confirm to open a folder or start reading a selected book. Selecting a
.bmpfile will open the image viewer. - Delete Files or Folders: Hold and release Confirm to open the selected file or folder action menu, then choose Delete. You will be given an option to either confirm or cancel. Folder deletion is limited to empty folders.
- Book Actions: EPUB and XTC files can also show options such as Delete Cache, Mark Finished, and Track Reading Stats from the same action menu. Turning tracking off for a book keeps its saved stats; it only stops new tracking for that book.
The Recent Books screen lists the most recently opened books in a chronological view, displaying title and author.
The File Transfer screen allows you to upload and manage files on the device. Choose Join a Network, Calibre Wireless, or Create Hotspot to start the web server for the selected mode.
See the File Transfer guide for connection and upload details.
The web file manager can upload, download, rename, move, and delete files on the device.
The web interface also supports WebDAV, allowing you to mount the device as a network drive and manage files directly from your computer's file manager.
Download links for files already on the device are available in the web interface, so you can retrieve books or screenshots over Wi-Fi without connecting a cable.
A Wi-Fi signal strength indicator (dBm) is displayed on-screen during joined-network web server sessions.
The same screen also has Receive File, which receives a supported book or image directly from another nearby CrossInk reader without joining a Wi-Fi network. See Nearby File Transfer for the complete sender and receiver workflow.
On X4 Pro, the screen also includes USB Drive. This exposes the reader's SD card to a computer over USB for direct file management. See the USB Drive instructions for the safe-eject and disconnect behavior.
Tip
Advanced users can manage files programmatically with the same HTTP endpoints used by the web interface. The browser interface is the supported path for normal file management.
CrossInk supports sending books from Calibre using the CrossPoint Reader device plugin.
- Download the current
crosspoint_readerplugin ZIP from the CrossPoint Reader plugin releases. - In Calibre, open Preferences > Plugins > Load plugin from file and select that ZIP. Restart Calibre if it asks you to.
- On the device, open File Transfer > Calibre Wireless and join the same 2.4 GHz Wi-Fi network as the computer.
- Keep the Calibre Wireless screen open, then use Calibre's Send to device action. The device screen shows the transfer progress and completion notice.
The Settings screen groups options by purpose. The exact choices can vary by device model and build.
-
Sleep Screen: Which sleep screen to display when the device sleeps:
- "Dark" (default) - The default dark CrossInk logo sleep screen
- "Light" - The same default sleep screen, on a white background
- "Custom" - Custom images from the SD card; see Sleep Screen below for more information
- "Cover" - The book cover image (Note: this is experimental and may not work as expected)
- "None" - A blank screen
- "Cover + Custom" - The book cover image while actively reading, falls back to "Custom" behavior otherwise
- "Page Overlay" - Uses an image to overlay on top of the current page. Best used with transparent
.pngfiles or black and white.bmpfiles. - "Reading Stats" - Recent reading stats on the sleep screen; falls back to Minimal while tracking is off for the device or recent book
- "Minimal" - A minimal sleep screen
- "Minimal Stats" - A minimal stats sleep screen on supported devices; falls back to Minimal while tracking is off for the device or recent book
- "Dashboard" - A dashboard-style sleep screen based on the Dashboard theme
- "Quick Resume" - Keeps the current content visible while sleeping
-
Sleep Screen Cover Mode: How to display the book cover when "Cover" sleep screen is selected:
- "Fit" (default) - Scale the image down to fit centered on the screen, padding with white borders as necessary
- "Crop" - Scale the image down and crop as necessary to try to fill the screen (Note: this is experimental and may not work as expected)
- "Extend" - Fit the image, then fill the empty margins by repeating the cover's edge pixels
- "Extend Mirror" - Fit the image, then fill the empty margins by reflecting the cover's edge content
-
Sleep Screen Cover Filter: What filter will be applied to the book cover when "Cover" sleep screen is selected:
- "None" (default) - The cover image will be converted to a grayscale image and displayed as it is
- "Contrast" - The image will be displayed as a black & white image without grayscale conversion
- "Inverted" - The image will be inverted as in white & black and will be displayed without grayscale conversion
-
Quick Resume on Timeout: Whether to enable the "Quick Resume" sleep screen when the device goes to sleep due to inactivity (System > Time to Sleep). This is useful for quickly resuming reading without waiting for the device to fully wake up and load the book. This overwrites the Sleep Screen Cover Mode when enabled.
-
Hide Battery %: Configure where to suppress the battery percentage display in the status bar; the battery icon will still be shown:
- "Never" (default) - Always show battery percentage
- "In Reader" - Show battery percentage everywhere except in reading mode
- "Always" - Always hide battery percentage
-
Hide Clock: On devices with a real-time clock, choose whether the clock is shown everywhere, hidden only in the reader, or always hidden.
-
Refresh Frequency: Set how often the screen does a full refresh while reading to reduce ghosting; options are every 1, 5, 10, 15, or 30 pages.
-
UI Theme: Set which UI theme to use:
- "Classic" - The original CrossInk theme
- "Minimal" - A minimal theme with a large book cover
- "Dashboard" - A dashboard-style home layout
- "Lyra" - A theme with simple icons featuring your current book
- "Lyra Extended" - Lyra, but displays 3 books instead of 1 on the Home Screen
- "Lyra Carousel" - A carousel-based Lyra home layout
- "RoundedRaff" - A rounded theme with additional visual styling
Themes that show reading stats hide those stats while Track Reading Stats is off.
-
Recent Books View: Choose whether the Recent Books screen uses a list or grid layout.
-
Sunlight Fading Fix: Configure whether to enable a software-fix for the issue where white X4 models may fade when used in direct sunlight:
- "OFF" (default) - Disable the fix
- "ON" - Enable the fix
-
Frontlight and wake schedule (on supported devices with a frontlight and real-time clock): Open Settings > Display > Frontlight.
- Restore Light on Wake: When enabled, a frontlight that was on before sleep is turned back on when the device wakes. If the light was off before sleep, a complete schedule can still decide whether it should turn on.
- Frontlight Schedule: Enable the daily wake schedule, then set Start and End in local time. Times use one-minute increments. The schedule includes the Start time and excludes the End time, and it can cross midnight (for example, 9:00 PM to 7:00 AM). Start and End must both be set and different; otherwise the schedule is inactive.
- The schedule is checked when the device boots or wakes, not continuously
while it is already awake. Restore on Wake takes precedence when the light
was on before sleep. Set the device's local time and UTC offset under
Settings > System > Device so the schedule uses the expected clock.
When the schedule is disabled or an endpoint is unset, the endpoint value
is shown as
--; saved endpoint times are retained for later re-enabling.
Note
A battery charging indicator is shown on the battery icon whenever the device is actively charging.
Global settings and individual books: Choices under Settings > Reader are the defaults for your EPUB books. Layout choices such as font family, font size, and margins can be saved for one book from its Reader Options menu. A saved book choice takes precedence over the matching global setting; layout choices you have not changed for that book still follow the global defaults. For example, a book with its own font size can still pick up a later change to your global margins. Dark Reader Mode and Stable Page Numbers remain global even when changed from inside a book.
If a global change does not affect one EPUB, find it in Browse Files, open its book actions, and choose Reset Book Reader Settings. This removes that book's saved reader choices so it follows the current global defaults again; it does not reset your other books or global settings. Older saved books may need this reset before they can inherit individual global changes. Delete Book Cache does not reset these choices.
-
Reader Font Family: Choose the font used for reading:
- "Lexend Deca" (default)
- "Bitter"
-
Reader Font Size: Adjust the text size for reading, built-in font sizes include: 10, 12, 14, and 16 pt.
-
Reader Line Spacing: Adjust the line height as a percentage.
-
Word Spacing: In EPUB books, choose Normal or one of four wider spacing levels between words. Open the reader menu, then select Reader Options > Font Options > Word Spacing. Changing it reflows the current book, so page positions may change; it is not available for TXT books.
-
Reader Screen Margin: Controls the screen margins in Reading Mode between 5 and 40 pixels in 5-pixel increments.
-
Reader Paragraph Alignment: Set the alignment of paragraphs; options are "Justified" (default), "Left", "Center", "Right", or "Book's Style".
-
Publisher Page Numbers: Show page numbers supplied by the EPUB when the book includes them.
Note: This reserves 5px of left margin to your screen to provide space for the page numbers. This is only noticeable if your
Left/Rightmargins are set to5. If the page has no publisher page number, your margins may appear uneven. -
Hyphenation: Whether to hyphenate text in Reading Mode; options are "ON" or "OFF". Korean text wraps at spaces when "OFF"; when "ON", a Korean word may also split at a line end without drawing a hyphen.
-
Reading Orientation: Set the screen orientation for reading EPUB files:
- "Portrait" (default) - Standard portrait orientation
- "Landscape CW" - Landscape, rotated clockwise
- "Portrait 180" - Portrait, upside down
- "Landscape CCW" - Landscape, rotated counter-clockwise
-
Extra Paragraph Spacing: Set how to handle paragraph breaks:
- "ON" - Vertical space will be added between paragraphs in Reading Mode
- "OFF" - Paragraphs will not have vertical space added, but will have first-line indentation
-
Reader Dark Mode, Embedded Style, Images, Focus Reading, and Guide Dots are directly available from the Reader settings. See Reader Features for their behavior, including the Focus Reading guide.
-
Touch Reader Controls: Enable or disable touchscreen page turns and reader-menu swipe gestures on supported devices. Device-specific full-screen Home and frontlight gestures remain available as described in Touch Reader Controls. Disable Touchscreen blocks touch input while a book is open, while leaving touch available in reader menus so you can turn it back on.
-
Status Bars: Configure the status bars displayed while reading:
- Top and bottom bars each have three left slots, one center slot, and three right slots.
- Chapter Page Count - Show/Hide the current page in the chapter (ex: 5/25). Page count may change based on the font size and margins set.
- Book Progress Percentage - Show/Hide the current percent progress in the book.
- Percentage Format - Show book progress as
10%(default),10.1%, or10.12%. - Progress Bar - Show/Hide a progress bar for either the book or chapter.
- Progress Bar Thickness - Set the thickness of the progress bar
- Title - Display the chapter or book title
- Time Left - Display the estimated reading time left for the book or chapter
- Battery - Show/Hide the battery indicator
- XTC Status Bar - Show/Hide a status bar for XTC files
On touchscreen readers, when Tap to Hide Status Bar is enabled (the default in Settings > Controls > Taps & Gestures), tap the status-bar area while reading to show or hide the entire status bar for the current reading session. This tap is available while Touch Reader Controls is enabled. The quick toggle does not change the page layout or page breaks; tap the same status-bar region again to restore a hidden bar. Use Status Bars to choose which status-bar items are shown.
-
Power Button: Configure short-press and long-press actions independently. On supported devices, you can also configure the Power + Up shortcut.
-
Front Buttons: Configure front-button remapping, orientation awareness, reader-only long-press behavior, Back action, and Menu action.
-
Side Buttons: Configure side-button layout, orientation awareness, and side-button long-press behavior.
-
Side Button Layout (reader): Swap the order of the up and down buttons from "Prev/Next" (default) to "Next/Prev" or "Next/Next". You can also disable them entirely. This change is only in effect when reading.
-
Long-press Behavior: Set whether long-pressing front page-turn buttons does nothing, skips to the next/previous chapter, or changes reader orientation.
-
Side Button Long-press Action: Set whether long-pressing side buttons does nothing, skips chapters, changes font size, or changes orientation.
-
Short-press Action / Long-press Action: Choose what a short press or a hold of about 0.4 seconds does. Available actions include:
- "Ignore" (default short-press action) - Do nothing for this press length
- "Sleep/Wake" (default long-press action) - Put the awake device to sleep; when selected as Short-press Action, also allow a short press to wake it
- "Sleep" - Put the awake device to sleep without enabling short-press wake
- "Wake" - When selected as Short-press Action, allow a short press to wake the device; does nothing while the device is awake
- "Page Turn" - Turn to the next page while reading
- "Toggle Bookmark", "Reading Stats", "Mark Finished", "Refresh", "Change Font", "Guide Dots", "Focus Reading", "Auto Page Turn", "Sync Progress", "File Transfer", "Calibre Wireless", "Join a Network", "Create Hotspot", "Screenshot", "Dark Mode", "Browse Files", or "Save Clipping" - Run the matching action
- "Footnotes" - A short press in reading mode opens the footnotes submenu; if only one footnote is present on the page, the referenced page is opened directly. The short press on the power button can be used to select the footnote in the submenu, and to go back to the original page after finish reading the footnote (like the back button).
-
Quick-return from Footnotes: This setting appears under Settings > Controls > Power Button after you assign Footnotes to the short- or long-press Power action, or to the long-press Back or Menu action. When enabled, a short Power press returns from a footnote page to the original reading page.
-
Taps & Gestures (touchscreen devices): Configure the touch interactions available while reading from Settings > Controls > Taps & Gestures. The submenu includes:
- Next Page and Previous Page: Choose which taps and swipes advance or go back one page. Each direction can be set to Tap & Swipe (default), Tap Only, Swipe Only, Inverted Tap, or Disabled independently.
- Pinch to Resize Font (multi-touch devices): Enable or disable changing the font size with a two-finger pinch in EPUB and TXT readers.
- Two-finger Screen Rotation (multi-touch devices): Enable or disable twisting two fingers to rotate the reading orientation in EPUB and TXT readers.
- Tap to Hide Status Bar: Enable or disable tapping the visible status-bar area to show or hide it for the current reading session.
- Two-finger Swipe (multi-touch devices): Assign an action to each two-finger swipe direction. The available actions depend on the device and reader format. The submenu is not shown on devices without a touchscreen, and the multi-touch entries appear only when the hardware supports them. See Touch Reader Controls for the gesture details.
-
Time to Sleep: Set the duration of inactivity before the device automatically goes to sleep. Values are in minutes, with a "Never" option at the end of the range.
-
Custom Boot Screen: Enable or disable custom boot screens (enabled by default). When disabled, CrossInk uses the standard logo on cold boot and keeps the current sleep screen visible on power-button wake, even if a custom image or boot-screen folder is configured. Disabling this does not remove the selected image or the folders; turn it back on to use them again.
-
Device: Set the device name and time-to-sleep timeout. Devices with a real-time clock also expose clock format, UTC offset, and a sync action.
-
Files & Cache: Configure hidden files, file extensions, file-browser view, finished-book behavior, and clear the reading cache.
-
Reading Stats: Turn device-wide stats tracking on or off, configure idle-time filtering, and access all-time stats backup/reset actions. Turning tracking off pauses new per-book and all-time stats but keeps the history and Time Left pace estimates already saved on the device. Stats entries and recorded-stat displays in menus and themes are hidden while tracking is off; the Dashboard can still show a saved Time Left estimate. Turn tracking back on to see the saved history and resume recording. Time and pages from the off period are not added later. See Reader Features for per-book controls.
-
Wi-Fi Networks: Connect to Wi-Fi networks for file transfers and firmware updates.
-
KOReader Sync: Options for setting up KOReader for syncing book progress. Smart sync is the default for new configurations and auto-resolves simple push/pull decisions. Existing credential files retain Ask every time when migrated; you can switch Sync Behavior at any time if you prefer manual confirmation.
-
OPDS Servers: Manage one or more OPDS (Open Publication Distribution System) libraries for browsing and downloading books. See OPDS Servers (Multiple Libraries) below.
-
Check for Updates and SD Firmware Update: Check for firmware updates over Wi-Fi or install a
firmware.binplaced on the SD card. -
Language: Set the UI language. CrossInk supports 28 languages: English, Spanish, French, German, Czech, Brazilian Portuguese, Russian, Swedish, Romanian, Catalan, Ukrainian, Belarusian, Italian, Polish, Finnish, Danish, Dutch, Turkish, Kazakh, Hungarian, Lithuanian, Slovenian, Valencian, Hebrew, Vietnamese, Slovak, Portuguese (Portugal), and Arabic.
CrossInk supports saving multiple OPDS servers and switching between them when browsing catalogs.
-
Open Settings -> System -> OPDS Servers.
-
Select Add Server to create a new entry, or select an existing server to edit it.
-
Configure these fields:
-
Server Name: Optional display name (for example, "Home Calibre" or "Public Catalog").
-
OPDS Server URL: Full catalog root URL (for Calibre Content Server, usually ends with
/opds). -
Username / Password: Optional credentials for authenticated servers.
-
-
Use Delete Server inside a server entry to remove it.
Behavior notes:
- You can store up to 8 OPDS servers.
- OPDS authentication supports HTTP Basic auth. If you use Calibre Content Server with authentication enabled, set it to Basic (not Digest).
You can also manage OPDS servers from the web interface while in File Transfer mode:
- Connect to the device web UI.
- Open
http://<device-ip>/settings. - Use the OPDS Servers card to add, edit, or delete entries.
For web-based Wi-Fi network management, see File Transfer.
While in File Transfer mode, the web settings page includes management cards for both Wi-Fi Networks and OPDS Servers.
- On device: open File Transfer and connect through Join a Network or Create Hotspot.
- In a browser, open
http://<device-ip>/settingsorhttp://crosspoint.local/settings. - In Wi-Fi Networks, add, edit, or delete saved network entries (SSID + optional password).
- In OPDS Servers, add, edit, or delete OPDS catalogs.
Behavior notes:
- Passwords are never shown back in the web UI after saving.
- Leaving Password blank while editing keeps the existing saved password unchanged.
- The web UI can save hidden-network SSIDs, but connecting to hidden networks still depends on the device-side Wi-Fi connection flow.
CrossInk can sync reading progress with KOReader-compatible sync servers. It also interoperates with KOReader apps/devices when they use the same server and credentials.
When Sync Server URL is left empty, CrossInk uses the free CrossPoint sync server at https://sync.crosspointreader.com. It speaks the standard KOReader sync protocol (so KOReader apps can use it too) and additionally stores an exact spine/page position for lossless CrossInk-to-CrossInk sync.
- On each CrossInk device:
-
Go to Settings -> System -> KOReader Sync.
-
Set Username and Password (enter the plain password; CrossInk computes MD5 internally, and use the same values on all devices).
-
Leave Sync Server URL empty (or set it to
https://sync.crosspointreader.com). -
On the first device, run Sign Up once to create the account directly from the device. On every other device, just run Authenticate.
-
Accounts are per server. Existing sync.koreader.rocks credentials do not exist on the CrossPoint server; either sign up again with the same username/password or use Option B to keep using the legacy server.
Use this if you already sync KOReader devices against the official public server.
-
On each CrossInk device:
-
Go to Settings -> System -> KOReader Sync.
-
Set Sync Server URL to
https://sync.koreader.rocks(required; an empty URL now points at the CrossPoint server instead). -
Set Username and Password to your existing KOReader Sync credentials.
-
Run Authenticate.
-
-
If you do not have an account yet, run Sign Up on the device, or register once with curl:
USERNAME="user"
PASSWORD="pass"
PASSWORD_MD5="$(printf '%s' "$PASSWORD" | openssl md5 | awk '{print $2}')"
curl -i "https://sync.koreader.rocks/users/create" \
-H "Accept: application/vnd.koreader.v1+json" \
-H "Content-Type: application/json" \
--data "{\"username\":\"$USERNAME\",\"password\":\"$PASSWORD_MD5\"}"When this returns HTTP 402 with {"code":2002,"message":"Username is already registered."}, pick a different username or use that existing account.
- Start a sync server:
mkdir -p kosync-quickstart
cd kosync-quickstart
cat > compose.yaml <<'YAML'
services:
kosync:
image: koreader/kosync:latest
ports:
- "7200:7200"
- "17200:17200"
volumes:
- ./data/redis:/var/lib/redis
environment:
- ENABLE_USER_REGISTRATION=true
restart: unless-stopped
YAML
# Docker
docker compose up -d
# Podman (alternative)
podman compose up -dNote
ENABLE_USER_REGISTRATION=true is convenient for first setup. After creating your users, set it to false (or remove it) to avoid unexpected registrations.
- Verify the server:
curl -H "Accept: application/vnd.koreader.v1+json" "http://<server-ip>:17200/healthcheck"
# Expected: {"state":"OK"}- Register a user once.
CrossInk authenticates against KOReader Sync (
koreader/kosync) using an MD5 key, so register using the MD5 of your password:
Warning
Sending a reusable MD5-derived password over plain HTTP is insecure.
Create unique sync-only credentials and do not reuse main account passwords.
Prefer https://<server-ip>:7200 whenever traffic leaves a fully trusted LAN or when using untrusted networks.
Use curl -k only for self-signed certificate testing.
USERNAME="user"
PASSWORD="pass"
PASSWORD_MD5="$(printf '%s' "$PASSWORD" | openssl md5 | awk '{print $2}')"
curl -i "http://<server-ip>:17200/users/create" \
-H "Accept: application/vnd.koreader.v1+json" \
-H "Content-Type: application/json" \
--data "{\"username\":\"$USERNAME\",\"password\":\"$PASSWORD_MD5\"}"If this returns HTTP 402 with {"code":2002,"message":"Username is already registered."}, the account already exists.
- On each device:
-
Go to Settings -> System -> KOReader Sync.
-
Set Username and Password (enter the plain password; CrossInk computes MD5 internally, and use the same values on all devices).
-
Set Sync Server URL to
http://<server-ip>:17200. -
Run Authenticate.
-
If you use the HTTPS listener, use https://<server-ip>:7200 (curl -k only for self-signed certificate testing).
Once any of the options above is set up, press Confirm while reading to open the reader menu, then select Sync Progress. Alternatively, set Settings -> Controls -> Long-press Menu to KOSync and hold Confirm to launch sync directly.
- With Sync Behavior set to Ask every time, choose Apply Remote to jump to remote progress or Upload Local to push current progress.
- With Sync Behavior set to Smart sync, CrossInk auto-resolves simple cases: upload when no remote progress exists, confirm and leave both unchanged when local and remote progress are already synchronized, upload when local progress is further ahead, or apply remote when remote progress is further ahead.
The Sleep Screen setting controls what is displayed when the device goes to sleep:
| Mode | Behavior |
|---|---|
| Dark (default) | The CrossInk logo on a dark background. |
| Light | The CrossInk logo on a white background. |
| Custom | A custom image from the SD card (see below). Falls back to Dark if no custom image is found. |
| Cover | The cover of the currently open book. Falls back to Dark if no book is open. |
| Cover + Custom | The cover of the currently open book, shown only while actively reading. Falls back to Custom behavior when not reading. |
| Page Overlay | Keeps the current reader page visible and draws a sleep wallpaper over it. If no wallpaper is available, the page remains visible while reading. |
| Minimal | A compact sleep screen based on the Minimal home layout. |
| Minimal Stats | A compact sleep screen with recent reading stats, on supported devices; falls back to Minimal while tracking is off for the device or recent book. |
| None | A blank screen. |
When using Cover or Cover + Custom, two additional settings apply:
- Sleep Screen Cover Mode: Fit (scale to fit, white borders), Crop (scale and crop to fill the screen), Extend (fit, then repeat the edge pixels into the margins), or Extend Mirror (fit, then reflect the edges into the margins).
- Sleep Screen Cover Filter: None (grayscale), Contrast (black & white), or Inverted (inverted black & white).
To use custom sleep images, set the sleep screen mode to Custom, Cover + Custom, or Page Overlay, then place images on the SD card:
- Multiple Images (recommended): Create a
.sleepdirectory in the root of the SD card and place any number of.bmpimages inside. In Page Overlay mode,.pngimages are also supported. One image will be randomly selected each time the device sleeps. (A directory namedsleepis also accepted as a fallback.) - Single Image: Place a file named
sleep.bmpin the root directory. In Page Overlay mode,sleep.pngis also supported. These files are used as fallbacks if no valid image is found in the.sleep/sleepdirectory.
In Page Overlay mode, white BMP pixels and transparent PNG pixels let the current reader page show through; the remaining wallpaper pixels are drawn over the page. PNG wallpapers are supported only in this mode.
Tip
For best results:
- Use uncompressed BMP files with 24-bit color depth
- X4: Use a resolution of 480x800 pixels to match the device's screen resolution.
- X3: Use a resolution of 528x792 pixels to match the device's screen resolution.
Tip
You can set an image as the sleep screen cover directly from the BMP image viewer in the Browse Files screen.
The Custom Boot Screen toggle is in Settings -> System and is enabled by default. When it is on, you can replace the default CrossInk logo shown during a cold boot with BMP images stored on the SD card. A configured custom boot screen is also shown after a power-button wake. This is separate from the sleep screen.
CrossInk supports two ways to choose a custom boot screen:
-
One fixed image: In Browse Files, open a BMP image from any folder, open its context menu, and choose Set Boot Screen. This selected image always takes priority over a boot-screen folder. To stop using it, open the same image and choose Clear Boot Screen.
-
Rotating images: Create a
/.bootscreenfolder in the root of the SD card and place BMP files directly inside it. CrossInk randomly selects an image each time it starts and avoids recently used images where possible. A/bootscreenfolder is also supported. Folder names are case-insensitive; if both folders exist,/.bootscreentakes priority.
CrossInk caches folder contents for faster startup. If you add BMP files directly to an already-used folder while the device is off, the new files may not be selected until the index is rebuilt. Upload them through the File Transfer web file manager or Nearby File Transfer to invalidate the index automatically.
The selection and fallback order is:
- A selected BMP set with Set Boot Screen.
- A usable BMP selected from the active root-level boot-screen folder.
- The standard CrossInk logo.
On a cold boot, if a selected image or the active folder is missing, unreadable,
empty, or contains no usable BMP, CrossInk falls back to the next option in the
order above. If both folder names exist, /.bootscreen masks /bootscreen
even when the hidden folder is empty or unusable; remove or rename it to use
/bootscreen instead.
On a power-button wake, an existing selected BMP or boot-screen folder (even an empty or unusable folder) runs the boot-screen flow and then falls back to the standard logo if no image can be shown. If the selected file was removed and no boot-screen folder exists, the wake is splashless and keeps the current sleep screen visible. With no selected image or boot-screen folder, a power-button wake is also splashless.
Tip
Use an uncompressed BMP at your device's screen resolution for the best result: 480x800 pixels on X4 or 528x792 pixels on X3. Images with other dimensions are centered and scaled down as needed.
CrossInk supports loading additional fonts from the SD card, extending beyond the built-in Lexend Deca and Bitter families. Custom fonts can include extended Unicode coverage, enabling CJK (Chinese, Japanese, Korean) and other scripts.
There are three ways to install fonts:
- Manual SD card copy (recommended): Download font files from Inky and copy them to
/.fonts/(preferred) or/fonts/on your SD card. - Download from device: Go to Settings -> Reader -> Font Options -> Manage Fonts, browse the available font families, and select one to download over Wi-Fi. Note that downloading over Wi-Fi can be unstable. If you experience download errors, please use one of the alternate methods.
- Upload via web interface: While in File Transfer mode, open the web UI in a browser and navigate to the Fonts tab to upload
.cpfontfiles. For supported devices,.ttffont files can also be uploaded.
Once installed, custom fonts appear in Settings -> Reader -> Font Options -> Font Family alongside the built-in fonts.
See SD Card Fonts for full installation details and SD card folder structure.
Once you have opened a book, the button layout changes to facilitate reading.
| Action | Buttons |
|---|---|
| Previous Page | Press Left or Up |
| Next Page | Press Right or Down |
The role of the side buttons can be swapped in Settings > Controls > Side Buttons.
If the Short-press Action setting is set to "Page Turn", you can also turn to the next page by briefly pressing the Power button.
- Next Chapter: Press and hold the Right (or Down) button briefly, then release.
- Previous Chapter: Press and hold the Left (or Up) button briefly, then release.
This feature can be disabled in Settings > Controls > Front Buttons to help avoid changing chapters by mistake.
Auto Page Turn automatically advances pages at a set interval, useful for hands-free reading. This feature can be enabled and configured from the Reader Menu while reading an EPUB.
On the Xteink X3 and Sticky, the gyroscope can be used to turn pages by tilting the device. This feature and its left-right or forward-back direction are available in Settings -> Controls.
On supported touchscreen devices, Touch Reader Controls is enabled by default. Next Page and Previous Page, in Settings > Controls, are configured independently and both default to Tap & Swipe:
| Option | Taps | Swipes |
|---|---|---|
| Tap & Swipe | Enabled | Enabled |
| Tap Only | Enabled | Disabled |
| Swipe Only | Disabled | Enabled |
| Inverted Tap | Enabled, with reversed tap zones | Disabled |
| Disabled | Disabled | Disabled |
Swipe left for the next page when Next Page allows swipes, or swipe right for the previous page when Previous Page allows swipes. When both directions allow taps, the normal zones are the left third for the previous page and the right two-thirds for the next page. If either of those settings is Inverted Tap, the shared zones become the left two-thirds for the next page and the right third for the previous page. If only one direction allows taps, taps across the page turn in that direction. The top and bottom gesture bands are reserved for vertical gestures, so taps in those bands do not turn pages.
For EPUB readers, vertical gestures depend on the device:
- On Sticky, swipe up to open the reader menu. Swipe down to open the reader-details/frontlight panel; use that panel's header to return Home.
- On X4 Pro, swipe up to open the reader menu and swipe down to open the frontlight panel. The capacitive Home key returns Home on a short press and opens the reader menu on a long press by default. Configure these actions, or disable the key while reading, in Settings > Controls > Home Button.
- On other touchscreen devices, swipe down to open the reader menu and swipe up to return Home.
XTC and TXT readers use narrower, format-specific vertical routing. For example, Sticky TXT has the down-swipe reader-details/frontlight panel but no swipe-to-menu or swipe-to-Home action; on X4 Pro, XTC keeps the swipe-up reader menu while its down-swipe frontlight panel is top-edge only, and TXT has no swipe-to-menu action. These vertical gestures are separate from the page-turn settings above.
Choose Disabled in Next Page or Previous Page to stop touch page turns in that direction without disabling the touchscreen's vertical reader-menu or frontlight gestures. Turn Touch Reader Controls off in Reader Options to disable one-finger page turns and reader-menu swipes; device-specific full-screen Home/frontlight gestures remain available. Disable Touchscreen prevents screen-touch input while a book is open but keeps it available in reader menus. For the different touch selection gestures used by dictionary lookup and clippings, see those feature guides.
On devices with multi-touch support, you can also assign actions to two-finger swipes from Settings > Controls > Taps & Gestures > Two-finger Swipe. Set an action for Swipe Up, Swipe Down, Swipe Left, or Swipe Right, then move two fingers together in that direction while reading. Available actions are Not Set, Increase Brightness, Decrease Brightness, Increase Warmth, Decrease Warmth, Next Chapter, Previous Chapter, Increase Font Size, and Decrease Font Size. Brightness and warmth options appear only when the hardware supports them; chapter options apply to EPUBs, and font size options apply to EPUB and TXT books. Each direction starts as Not Set, and each action can be assigned to only one direction; choosing it again moves it to the new direction. On image-based XTC books, chapter and font-size actions are consumed but cannot change the pre-rendered pages. See Two-finger Swipe Actions for the complete list and reader-specific limitations.
On supported multi-touch devices, enable Pinch to Resize Font in the same menu, then move two fingers apart to increase the font or together to decrease it. Each completed pinch changes one available font-size step. Pinch resizing works in EPUB and TXT readers; XTC pages are pre-rendered and cannot be resized. Pinch input also requires Touch Reader Controls to remain enabled.
For sliders with five-unit increments in the Reader Menu and Settings, tapping the slider track rounds the selected value to the nearest multiple of five.
When reading an EPUB that contains footnotes, you can navigate to the footnote text by selecting the footnote reference in the book. From the footnote, you can return to your original reading position.
If the device goes to sleep or you close the book while viewing a footnote, the book reopens to your original reading position, not the footnote.
- Return to Home: Press the Back button to close the book and return to the Home screen.
- Return to Browse Files: Press and hold the Back button to close the book and return to the Browse Files screen.
- Reader Menu: Press Confirm to open the Reader Menu, which includes chapter navigation, reading options, and more.
CrossInk renders text using the following Unicode character blocks, enabling support for a wide range of languages:
- Latin Script (Basic, Supplement, Extended-A/B): Covers English, German, French, Spanish, Portuguese, Italian, Dutch, Swedish, Norwegian, Danish, Finnish, Polish, Czech, Hungarian, Romanian, Slovak, Slovenian, Turkish, Catalan, and others.
- Cyrillic Script (Standard and Extended): Covers Russian, Ukrainian, Belarusian, Bulgarian, Serbian, Macedonian, Kazakh, Kyrgyz, Mongolian, and others.
- Vietnamese: Supported via extended Latin glyph coverage in the built-in reader fonts.
What is not supported with built-in reader fonts: Chinese, Japanese, Korean, Arabic, Greek, Hebrew, and Farsi. However, CJK, Hebrew, Greek, and other extended scripts can be enabled by installing custom SD card fonts — see Custom Fonts (SD Card).
Press Confirm while reading to open the Reader Menu. From here you can access reading utilities and navigation options without leaving the book.
Available options include:
- Select Chapter – Open the table of contents to jump to a specific chapter (see Chapter Selection below).
- Footnotes – Navigate to the footnotes for the current section (only shown in books that contain footnotes).
- Reader Options – Open reader-specific options without leaving the book.
- Controls – Open reader control options without leaving the book.
- Reading Orientation – Cycle through screen orientations without leaving the reader.
- Auto Turn Interval – Configure automatic page turns for hands-free reading.
- Go to % – Jump to a specific position in the book by percentage.
- Add Bookmark / Remove Bookmark – Toggle a bookmark on the current page.
- View Bookmarks / Delete Bookmarks – Manage existing bookmarks when the book has bookmarks.
- Take screenshot – Save a screenshot of the current page to the
screenshots/folder. - Show page as QR – Display a QR code encoding the current reading position.
- Delete Book Cache – Clear the cached layout data for the current book, forcing a re-index on next open.
- Sync Progress – Push or pull reading progress with a KOReader sync server (see KOReader Sync Quick Setup).
- Reading Stats – Open the current book's reading stats on supported devices when tracking is enabled for both the device and this book. Use the Reader Menu's Settings tab in EPUB, or the Reader Menu in XTC, to pause or resume tracking for this book; saved stats are kept while paused.
- Mark Finished / Mark Unfinished – Toggle whether the current book is marked as finished.
- Look Up Word / Lookup History – Select words on the page and revisit recent per-book lookups when a dictionary is active.
- Book Dictionary – Choose a per-book dictionary override from the reader menu's settings tab.
Press Back at any time to close the menu and return to your current page.
Accessible by selecting Chapters from the Reader Menu.
- Use Left (or Up), or Right (or Down) to highlight the desired chapter.
- Press Confirm to jump to that chapter.
- Alternatively, press Back to cancel and return to your current page.
Bookmarks can be created to quickly save and restore your place in a book.
To create a bookmark, hold Confirm for 1 second while inside a book. A popup will appear letting you know a bookmark was created. The popup message will automatically disappear in a couple of seconds.
To open bookmarks, press Confirm while inside a book. Then navigate to the Bookmarks menu. Bookmarks can be opened by navigating to them and pressing Confirm, which will redirect you to that place in the book. You can delete bookmarks by holding Confirm for 1 second, and then pressing Confirm again to confirm deletion, or Back to cancel.
Bookmarks are stored as per-book .bin files in the .crosspoint/bookmarks folder.
Dictionary lookup supports word selection, recent per-book history, chained lookups from definitions, and per-book dictionary overrides. See the Dictionary guide for installation and preparation instructions.
Please note that this firmware is currently in active development. The following features are not yet supported but are planned for future updates:
- Cover Images: Large cover images embedded into EPUB can take several seconds to convert for the sleep screen and home-screen thumbnail. Use the built-in EPUB optimization before upload if a book is slow or memory-sensitive.
- Unsupported Image Formats: Most JPG and PNG images in EPUBs render correctly. GIFs and progressive JPEGs are not supported and will fall back to an
[Image]placeholder.
If an issue or crash is encountered while using CrossInk, feel free to raise an issue ticket and attach the logs.
Crash reports on SD card: After a crash, CrossInk automatically saves a crash report to the SD card (no USB connection needed). Check the root of the SD card for a crash log file and include it with any bug report.
Serial monitor logs: For more detailed debugging, connect the device to a computer and run the custom debugging monitor script (requires Python 3 with pyserial, colorama, and matplotlib; install via pip3 install pyserial colorama matplotlib):
python3 scripts/debugging_monitor.py
The script auto-detects the serial port. You can also specify one explicitly:
python3 scripts/debugging_monitor.py /dev/ttyACM0 # Linux
python3 scripts/debugging_monitor.py /dev/tty.usbmodem1 # macOS
python3 scripts/debugging_monitor.py COM7 # Windows
Features:
- Color-coded log output by category (errors, memory, display, EPUB parsing, etc.)
- Live memory usage graph (free RAM, total RAM, max contiguous allocation) updated every second
- Interactive command prompt — type a command and press Enter to send it to the device
- Screenshot capture — saves the current display to
screenshot.bmpwhen triggered by the device
Options:
| Option | Description |
|---|---|
--baud RATE |
Baud rate (default: 115200) |
--filter KEYWORD |
Show only lines containing the keyword (case-insensitive) |
--suppress KEYWORD |
Hide lines containing the keyword (case-insensitive) |
Examples:
# Show only memory-related log lines
python3 scripts/debugging_monitor.py --filter MEM
# Hide noisy SD card log lines
python3 scripts/debugging_monitor.py --suppress "[SD]"
Press Ctrl-C or close the graph window to exit.
If the device is stuck in a bootloop, press and release the Reset button. Then, press and hold on to the configured Back button and the Power Button to boot to the Home Screen.
There can be issues with broken cache or config. In this case, delete the .crosspoint directory on your SD card (or consider deleting only settings.json, state.json, or epub_* cache directories in the .crosspoint/ folder).