Skip to content

Xteink firmware help & FAQ

Type your problem and the answer filters in: 51 fact-checked answers on flashing CrossPoint, locked X3 and X4 units, the SD-card error, bootloops, recovery, fonts and Bluetooth, every one cited to its source. Or skip the search and browse by topic. Just want a recommendation? Try the 30-second chooser.

Most asked

51 answers across 8 topics · every answer cited · verified August 11, 2026

Browse by topic

Start here if you haven't flashed anything yet: what custom firmware actually adds, whether it's reversible, and the one backup that turns most bad flashes into a quick fix.

What is custom firmware, and why would I flash it on my X3 or X4?

Custom firmware replaces the stock Xteink software with a community-built reader OS. The main one, CrossPoint, is open-source (MIT, written in C, ~7k GitHub stars, a counter that moves fast) and goes well beyond stock: EPUB 2/3 rendering with hyphenation and kerning, bookmarks and go-to-percent, custom SD-card fonts, KOReader progress sync, and Calibre/OPDS workflows. Stock already covers basic EPUB/TXT, BIN fonts and Wi-Fi, so you flash for better rendering, typography and library tools, not to add the basics.

Sources: crosspoint-reader/crosspoint-reader · XTEINK X4 official product page

Do I even need to flash, or is stock good enough?

Stay on stock if Bluetooth is your priority: it is the only base firmware that ships it, though the experience is limited. BLE only activates after you open a book and the chapter index builds (to free enough heap); then you enable it from the reader menu. Custom firmware forks like CrumBLE and SUMI add a BLE page-turner back, but the mainline (CrossPoint and CrossInk) does not. If you mainly want better EPUB rendering, fonts, and wireless transfer, that is exactly what flashing buys you.

Sources: XTEINK X3 product page (stock Bluetooth) · CrumBLE README (BLE page-turner) · CrossPoint community discussion #117 (stock BLE behaviour)

Is flashing reversible? Can I go back to stock?

On an unlocked unit, yes: re-flash the official firmware from the CrossPoint web flasher. Before you flash anything, use its 'Read flash' to save a full-flash backup over USB (it reads the chip in about 25 minutes), which turns most bad flashes into a quick fix. On a locked unit there's no USB safety net (that backup runs over USB, which is exactly what's blocked), so keep a stock update.bin on your SD card as your rollback instead.

Sources: CrossPoint flasher ('Read flash' full backup, ~25 min) · crosspoint-reader/xteink-flasher (backup tool source) · CrossPoint README (revert / USB-locked devices) · CrossPoint PR #1786 (SD update.bin rollback)

What's the safest first move before I flash anything?

First find out whether your device is locked: plug it into desktop Chrome or Edge over USB (Safari isn't supported; Firefox is inconsistently documented) and see whether the web flasher detects it. If it never appears, treat it as locked. If it's unlocked, save a backup first using the flasher's 'Read flash' (a full-flash backup over USB); if it's locked, stick to CrossPoint or CrossInk, the only two firmwares the OTA Unlocker supports.

Sources: CrossPoint flasher / 'Read flash' backup · crosspoint-reader/xteink-flasher (backup tool source) · CrossPoint OTA Unlocker (CrossPoint + CrossInk only)

I think my device is locked. Is it still safe to flash, and how?

Yes, with the right firmware. On a locked X3 the SD-card method works directly from stock: copy update.bin to the SD root and hold the left-side button + power so the OEM bootloader flashes it. On a locked X4 the reliable entry from stock is the CrossPoint OTA Unlocker (a local Wi-Fi hotspot that serves CrossPoint/CrossInk during the device's update check). The X3 SD button-trick doesn't reliably engage from X4 stock; it doesn't brick anything, it just doesn't fire. Once CrossPoint is on, in-app SD updates work for the future. The lock is reported to be a hardware eFuse on some X4 batches, but the mechanism is unconfirmed and may vary, and SD/OTA flashing never re-enables USB.

Sources: CrossPoint PR #1786 (SD update + X3 bootloader) · CrossPoint OTA Unlocker · trilwu/crosspet #28 (eFuse reports)

What can go wrong? Can I permanently brick a locked device?

Yes, if you flash the wrong firmware on a locked unit. Only CrossPoint and CrossInk are officially supported there; the CrossPoint README warns that flashing anything else on a USB-locked device may permanently brick it or leave it stuck on that firmware with no recovery path. Papyrix removed OTA support, so an owner was left unable to reflash after installing it (issue #120), and CrossPet became a one-way door: owners couldn't switch or revert (issue #28). Microreader, AvesO3, inx, and experimental forks carry the same risk.

Sources: CrossPoint README (officially supported firmwares) · bigbag/papyrix-reader #120 (unable to reflash) · trilwu/crosspet #28 (one-way door)

Does flashing void my warranty or erase my books and SD card?

Per Xteink, yes: the company says flashing the firmware yourself 'will void the official warranty,' and it has added flashing restrictions while citing crashes and even screen damage from third-party firmware. Those restrictions apply only to the Chinese versions of the X3 and X4; Good e-Reader reports that overseas X4 units, both on sale and already sold, are not restricted. Flashing writes to the device's chip and doesn't touch your microSD card, so your EPUBs on the card stay put; you can wipe CrossPoint's cached metadata anytime by deleting the /.crosspoint folder.

Sources: Good e-Reader: XTEINK to block custom software (warranty + China-only scope) · CrossPoint README (/.crosspoint cache)

The short answer is CrossPoint for most owners. These answers cover when CrossInk or a single-feature fork is the better trade.

I just want to read EPUBs without fuss. Which firmware should most people flash?

For most owners the answer is CrossPoint Reader: the open-source mainline (MIT, C, roughly 7k GitHub stars, actively developed, at v1.5.0 as of August 2026). It runs on both the X3 and X4 and is one of only two firmwares the OTA Unlocker officially supports, so it's the safe default on a locked unit too. It covers EPUB 2/3, .txt, .bmp and the native .xtc/.xtch formats, with Wi-Fi transfer, Calibre/OPDS, custom SD-card fonts and a standalone SD-card update path. It does not render PDF; convert PDFs to .xtc first.

Sources: crosspoint-reader/crosspoint-reader (v1.5.0, formats) · CrossPoint flasher / install · CrossPoint PR #1786 (SD-card update path)

CrossPoint vs CrossInk: what's the difference, and which is better for me?

CrossInk is a CrossPoint fork (also MIT, confirmed working on X3 and X4) that adds typography and reading-tracking extras: reading statistics, Bionic Reading and Guide Dots, three e-ink-tuned fonts (ChareInk, Lexend Deca, Bitter), a synthetic-glyph fallback that draws missing characters, and stats-as-sleep-screen. Pick plain CrossPoint if you want the most-supported base; pick CrossInk if you specifically want the stats and typography features. Either is fine on a locked device, since these are the only two firmwares the OTA Unlocker serves.

Sources: CrossInk firmware fork · CrossInk PR #104 (synthetic missing-glyph rendering) · crosspoint-reader/crosspoint-reader

Do I give up anything versus the stock Xteink firmware by flashing custom firmware?

Mostly Bluetooth. The mainline firmware ships without it (the ESP32-C3's ~380KB RAM is tight, and these builds spend it on reading features), though a couple of forks add a wireless remote back: CrumBLE (BLE page-turners) and SUMI (BLE 5.0 page-turners and keyboards). You also can't render PDFs on CrossPoint (convert them to .xtc instead). Otherwise custom firmware generally adds capability (more formats, fonts, Wi-Fi transfer, Calibre) rather than removing it.

Sources: crosspoint-reader/crosspoint-reader (~380KB RAM) · CrumBLE README (BLE page-turner) · psychoplath9450/SUMI (BLE 5.0)

When is a fork like Vcodex, Papyrix, SUMI or Microreader actually worth it over CrossPoint?

Go to a fork only for a feature the mainline doesn't have: CPR-vCodex (developed and validated on X4; X3 is user-reported, not maintainer-tested) for reading streaks/analytics, StarDict dictionary and flashcards; Papyrix for FB2 / Markdown / TXT / HTML and RTL libraries; SUMI for an offline-only device with sandboxed Lua plugins, 20 built-in apps and Bluetooth; Microreader (X4-only) for a minimal, do-one-thing EPUB reader. Each is a single-feature trade, so only switch if you'll actually use that feature.

Sources: CPR-vCodex README · bigbag/papyrix-reader · psychoplath9450/SUMI · Microreader (X4-only)

My device is locked (USB flashing disabled). Which firmwares are safe to choose?

On a locked unit, stick to CrossPoint or CrossInk: they're the only two the OTA Unlocker officially supports, and flashing anything else on a locked device may permanently brick it or leave you stuck with no recovery path. Avoid forks with no OTA and no standalone SD update.bin. Papyrix says to flash it only on unlocked USB (SD-flashable but no OTA way back), Microreader is unlocked-only, and a CrossPet owner reported being permanently stuck after flashing it onto a locked X4. (Vcodex installing directly on a locked X4 via SD is community-reported only, not maintainer-documented, and unverified on X3.)

Sources: CrossPoint Unlocker (CrossPoint/CrossInk only) · crosspoint-reader/crosspoint-reader (brick warning) · Papyrix: stranded locked-X4 report (#120) · Microreader (unlocked-only) · CrossPet #28 (stuck on locked X4) · CPR-vCodex README

I want on-device apps, scripting or plugins. What should I pick?

The only firmware with a genuine on-device scriptable plugin system is SUMI, which runs sandboxed Lua 5.4 scripts dropped into /custom/ on the SD card as launchable apps, plus 20 built-in apps. Don't reach for PlusPoint for this: despite older descriptions, it's an experimental C/C++ reader-OS proof-of-concept for the X4, not a user-installable-JavaScript-apps platform. Note SUMI is offline-only (no Wi-Fi) and installs over USB only, so it's not a safe pick for a locked device.

Sources: psychoplath9450/SUMI · PlusPoint README

A locked unit isn't bricked, it just blocks USB flashing. These answers cover the safe routes in (SD card on the X3, OTA Unlocker on the X4) and the forks that can strand you.

How do I tell if my Xteink X3 or X4 is locked?

There's no reliable way to tell from the box, so the only sure test is to plug into USB in Chrome or Edge and see whether the CrossPoint web flasher detects the device. A locked unit never enumerates as a USB serial port, so neither the web flasher nor the esptool CLI can see it. Units bought directly from xteink.com are typically not locked, while some from third-party stores (e.g. AliExpress) ship with USB flashing disabled, but it isn't guaranteed either way (a unit received directly from Xteink was reported as locked). If the device never appears over USB, treat it as locked.

Sources: CrossPoint README (USB-locked devices) · trilwu/crosspet #28 (never enumerates as serial port) · CrossPoint #2029 (locked unit direct from XTEINK)

How do I flash a locked X4 versus a locked X3?

On a locked X3 the SD-card method works directly from stock: copy update.bin to the SD root and hold the left-side button + power, and the OEM bootloader flashes it (the OTA Unlocker also works). On a locked X4 the reliable entry from stock is the CrossPoint OTA Unlocker, which turns your computer into a local Wi-Fi hotspot that serves CrossPoint or CrossInk during the device's update check. The CrossPoint maintainer could not find an X3-style SD button-trick that engages from X4 stock; it doesn't brick the device, it just doesn't engage. Once CrossPoint is on, the in-app SD System Update works for future flashes.

Sources: CrossPoint PR #1786 - X3 SD bootloader path & X4 NVS flag · CrossPoint Unlocker - hotspot serves CrossPoint/CrossInk · trilwu/crosspet #28 - in-app SD update on locked X4

Which firmware is safe to put on a locked unit?

Stick to CrossPoint or CrossInk: they're the only two firmwares the OTA Unlocker officially supports, and both ship an in-app SD-card update as a way back. The README warns that flashing any other firmware on a USB-locked device can permanently brick it or leave it stuck on that firmware with no recovery path.

Sources: CrossPoint README (only CrossPoint & CrossInk supported) · CrossPoint Unlocker · CrossPoint PR #1786 (in-app SD update)

What should I never flash on a locked device?

Avoid forks that have no OTA way back: they can strand a locked unit. Papyrix has an SD update/recovery path but no OTA, so the README itself says to flash it only on devices with unlocked USB; an owner was left stranded after putting it on a locked X4. CrossPet is worse: an owner reports being permanently stuck on it, unable to switch or revert. Shortbread is a documented trap too: one owner had CrossPoint running fine on a locked X4, flashed Shortbread over SD the same way, and soft-bricked it — the flash ended with "auto-reboot failed," and afterwards the OEM SD-flash trigger stopped firing, so re-flashing CrossPoint with the same button combo did nothing. As a rule, any fork that lacks both OTA and a standalone SD update.bin carries the same stranding risk on a locked unit, so keep to CrossPoint or CrossInk.

Sources: trilwu/crosspet #28 (stuck on CrossPet) · bigbag/papyrix-reader #120 (stranded on locked X4) · bigbag/papyrix-reader (flash only on unlocked USB) · CrossPoint #2377 (Shortbread soft-brick on locked X4)

Is this an eFuse hardware lock or just software, and can a locked unit ever be unlocked?

Owners describe some grey-market X4 batches as having the ESP32-C3 USB serial mode permanently disabled ("eFuse burned"), and a CrossPoint developer found USB stayed dead even after SD-flashing. But the exact mechanism is unconfirmed, not vendor-stated, not yet verified by teardown, and may vary by batch. Either way, neither SD nor OTA flashing re-enables USB: the Unlocker explicitly does not restore USB flashing, so you get custom firmware but the USB port stays locked.

Sources: trilwu/crosspet #28 - eFuse-burned owner reports · CrossPoint PR #1786 - USB dead after SD flash; planned teardown · CrossPoint Unlocker - does not unlock USB flashing

Can I back up a locked unit before flashing, and how do I recover if something goes wrong?

No. The web flasher's full-flash backup runs over USB, which is exactly the route the lock blocks, so you can't make one. Instead keep a stock update.bin on the SD card as your rollback, and stay on CrossPoint or CrossInk so the in-app SD update gives you a way back. On a no-OTA fork there may be no recovery at all.

Sources: CrossPoint README (locked no-recovery warning) · CrossPoint PR #1786 (in-app SD update + X3 bootloader) · CrossPoint flasher (Save full flash backup)

When a flash misbehaves it's usually the cable, the browser, or a locked unit. Match your symptom below before assuming the worst.

The web flasher won't see my Xteink at all. What's wrong?

First make sure the device is awake and sitting at the home screen (not asleep) and that you're using a USB-C cable that supports data, not a charge-only cable. If it still never appears in Chrome or Edge, your unit is most likely USB-locked (connecting in the flasher and seeing whether it's detected is the only sure test for the lock), and you'll need the SD-card method (X3) or the OTA Unlocker (X4) instead.

Sources: crosspointreader.com · CrossPoint README

Which browser and cable do I need for USB flashing?

Use desktop Chrome or Edge: they reliably support the WebSerial API the flasher relies on. Firefox is inconsistently documented (the official site lists it in one place and omits it in another), and Safari is not supported. You also need a USB-C cable that actually carries data; a charge-only cable will not work.

Sources: crosspointreader.com · CrossPoint README

The flash 'finished' but CrossPoint isn't showing. Do I need to flash twice?

Yes, sometimes. If you're coming from stock or another firmware, you may need to run the flash twice before CrossPoint actually shows up. Just repeat the same web-flasher step.

Sources: crosspointreader.com

Screen is blank or the device won't boot after flashing. What reboot combo do I use?

Press the Reset button, then press and hold the power button for 3-5 seconds to boot it. You can also force the SD recovery path: with the card inserted, plug USB into power and hold power + Up (the top-left button on the X3); the device then boots from the SD card and reflashes CrossPoint.

Sources: crosspointreader.com (reset + hold power; power+up SD recovery) · CrossPoint PR #1786 (X3 SD recovery boot)

My device won't show up in the flasher no matter what. Is it bricked, and can I recover it?

Most likely it's USB-locked rather than bricked: the lock blocks only the USB serial route, while the SD-card and OTA update paths still work. On a locked X3, copy update.bin to the SD root and hold the left-side (top-left) button + power; the OEM bootloader flashes it directly from stock. On a locked X4 the reliable route from stock is the OTA Unlocker (a local Wi-Fi hotspot that serves CrossPoint or CrossInk during the device's update check); the X3 SD button-trick doesn't reliably engage on a stock X4. Stick to CrossPoint or CrossInk, the only two the Unlocker supports.

Sources: OTA Unlocker · CrossPoint PR #1786 · CrossPoint README

Should I back up before flashing in case something goes wrong?

On an unlocked unit, open the web flasher and use 'Read flash' to save a full backup of your current firmware (about 25 minutes); if a flash fails you can write that file back, so most 'bricks' are a quick fix. A locked unit can't do this because the backup runs over USB (the exact route the lock blocks), so keep a stock update.bin on an SD card as your rollback instead.

Sources: crosspointreader.com ('Read flash', ~25 min) · crosspoint-reader/xteink-flasher (backup tool source) · CrossPoint README (USB-locked devices) · CrossPoint PR #1786 (SD rollback)

The SD update shows "Updating" then fails with "Error 9" and reboots to stock. What is it?

It's an open, undocumented failure on the X3 SD-card update path, not something you did wrong. An owner on a v1.4.1 X3 (an unlocked Amazon developer unit that shipped with only a 2-pin pogo cable, so WebSerial flashing wasn't an option) copied firmware.bin to the SD root as update.bin, held the left-side button + power, saw "Updating," then got "Error 9" and a reboot straight back to stock. They had already ruled out the usual causes: a full exFAT reformat of the card and a fresh re-download of firmware.bin both hit the same Error 9, and the code isn't referenced in the README, release notes, or any earlier issue. If your unit has a data-capable USB connection, the WebSerial flasher is the more reliable route; otherwise treat Error 9 as a known open report to track, not a mistake on your end.

Sources: CrossPoint #2536 (SD update "Error 9" on X3, v1.4.1)

What CrossPoint and its forks can actually read: EPUB yes, PDF only after converting, plus the fixes for CJK, right-to-left text and missing glyphs.

Can I read PDFs on the X3/X4?

Not directly. CrossPoint's reader engine handles EPUB 2/3, the native .xtc/.xtch formats, .txt, and .bmp; PDF isn't among the supported formats. The workaround is to convert the PDF to the device's .xtc format first using a web tool like xtcjs, which turns PDFs, CBZ comics, images, and even video into XTC optimized for the X4 and X3.

Sources: crosspoint-reader (supported formats) · varo6/xtcjs (PDF/comic to XTC converter)

What about FB2, Markdown, or HTML files?

Base CrossPoint reads EPUB, .xtc/.xtch, .txt, and .bmp only. If you need FB2, Markdown (.md), or HTML, the Papyrix fork adds all three (plus plain text) on top of EPUB and the native XTC formats. Just note Papyrix has no OTA updates: its own README says to flash it only on devices with unlocked USB and to keep an SD recovery card, so most owners avoid it on a USB-locked unit.

Sources: bigbag/papyrix-reader (FB2/Markdown/HTML support, no OTA warning)

Does it support Chinese, Japanese, or Korean (CJK)?

Base CrossPoint does not have purpose-built CJK; for that you flash a dedicated fork. CrossPoint CJK is X4-only and gives you a Chinese/Japanese/English interface plus CJK rendering (it loads fuller fonts from a /fonts/ folder on the SD card). For Korean, CrossPoint KO runs on both X3 and X4. Papyrix also lays out CJK book text (but not its own UI) on both devices.

Sources: aBER0724/crosspoint-reader-cjk (X4-only, CJK fonts) · crosspoint-reader-ko (X3 + X4) · bigbag/papyrix-reader (CJK book-text layout)

Can it render Hindi / Devanagari or right-to-left (Arabic) books?

RTL is supported: base CrossPoint lists RTL support, and Papyrix does full Arabic shaping (contextual forms, Lam-Alef ligatures, RTL layout) plus Thai. Hindi/Devanagari is not a documented supported script on any of these firmwares; it's an open question users have raised in the r/XTEINK community, so treat it as not reliably working today.

Sources: crosspoint-reader (RTL support) · bigbag/papyrix-reader (Arabic shaping, RTL) · r/XTEINK: rendering Devanagari/Hindi EPUBs

Some characters show up as empty diamonds (□). How do I fix that?

Those are missing glyphs the font doesn't cover. The CrossInk fork added a synthetic-glyph fallback (PR #104) that procedurally draws missing Unicode characters that would otherwise display as replacement diamonds or collapse into whitespace, covering things like block redactions, Greek letters, and the turned comma. It adds about 2.1 KB to flash and leaves RAM usage unchanged.

Sources: CrossInk PR #104 (render missing Unicode glyphs)

Can I add my own fonts, and what about CJK font memory limits?

Yes, three ways, all without reflashing: download fonts on-device via Settings → System → Manage Fonts (over Wi-Fi), upload .cpfont files from the File Transfer web UI's Fonts tab, or copy font files from the crosspoint-fonts repo to /.fonts/ on the SD card. On the CJK fork, fuller fonts live in a /fonts/ folder on the SD card, but the ESP32-C3 has very limited RAM, so the docs warn that using large CJK fonts for both the UI and reading at once can cause out-of-memory crashes, and recommend keeping UI fonts at 20pt or below.

Sources: CrossPoint USER_GUIDE.md (Manage Fonts + install methods) · aBER0724/crosspoint-reader-cjk (SD fonts, memory limits)

Almost every 'brick' has a way back. Backups, reverting to stock, switching forks, and the reboot combo that fixes most blank screens.

Will flashing custom firmware erase my books or wipe the SD card?

No. Flashing replaces the firmware on the device's ESP32-C3 chip, not the contents of the SD card; that's where your books, fonts and CrossPoint's cached metadata live. If you want to clear the cache, deleting the /.crosspoint folder forces a full regeneration on next open, but your book files are untouched.

Sources: CrossPoint README (ESP32-C3; /.crosspoint cache regeneration)

Should I make a backup before I flash, and how?

On an unlocked X3/X4, yes: open the web flasher and use 'Read flash' to save a full-flash backup of your current firmware (about 25 minutes) so you can write it back if a flash goes wrong. A locked unit can't do this because that backup runs over USB, which is exactly what the lock blocks; instead keep a stock update.bin on the SD card as your rollback.

Sources: crosspointreader.com ('Read flash', ~25 min) · crosspoint-reader/xteink-flasher (backup tool source) · CrossPoint README (USB-locked devices) · CrossPoint PR #1786 (SD rollback)

How do I revert to the official stock firmware?

On an unlocked device, re-flash the official firmware from the CrossPoint web installer at crosspointreader.com. On a locked unit you have no USB route, so your rollback is to keep a stock update.bin on the SD card: a locked X3 flashes it directly via the OEM bootloader (hold power + Up, the top-left button on the X3); on a locked X4 the OTA Unlocker is the reliable entry from stock, and once CrossPoint is on, in-app SD updates work for future changes.

Sources: crosspointreader.com (web installer; power+up SD recovery) · CrossPoint PR #1786 (X3 OEM bootloader; in-app SD update) · CrossPoint OTA Unlocker

Can I switch from one fork to another later, or am I stuck?

On an unlocked device you can re-flash freely over USB. On a locked device, switching only works if your current firmware exposes an SD-card update path and the fork you want ships a standalone update.bin for your model. CrossPoint does, and CrossInk (the only other firmware the Unlocker supports) installs the same way. Once CrossPoint is installed, its in-app SD System Update lets you switch among SD-flashable forks. (Vcodex installing on a locked X4 via SD is community-reported only, not maintainer-documented.)

Sources: CrossPoint PR #1786 (SD System Update + X3 bootloader) · CrossPoint Unlocker (CrossPoint/CrossInk only) · CPR-vCodex README

Which forks have no way back on a locked unit?

CrossPet is the worst case: it has no in-app SD update and ships no standalone update.bin, so an owner reports being permanently stuck on it on a locked X4; the usual recovery routes failed and the proposed SD-flash fix (PR #29) is still open and unmerged. Papyrix removed OTA entirely, so on a locked unit it leaves no OTA way back. The OTA Unlocker officially supports only CrossPoint and CrossInk; flashing anything else on a locked device may permanently strand it.

Sources: CrossPet issue #28 (one-way door) · CrossPet PR #29 (SD-flash fix, open/unmerged) · bigbag/papyrix-reader (no OTA) · CrossPoint README (only CrossPoint/CrossInk)

My device won't boot after a flash. How do I fix a bootloop?

After a CrossPoint flash, press the Reset button, then press and hold power for 3-5 seconds to boot. If it still won't start: on Papyrix, copy the firmware as /force_update.bin to the SD card and the device auto-flashes it on next boot. On an unlocked unit you can also re-flash over USB from the web installer. On a locked unit your only safety net is an SD card with a working update.bin, since USB recovery is blocked.

Sources: crosspointreader.com (reset + hold power to boot) · Papyrix README (force_update.bin auto-recovery)

The Xteink X3 and X4 share the same ESP32-C3 chip and most firmware; where they differ is charging, a few X4-only forks, and the locked-device rescue path.

What are the main hardware differences between the X3 and X4?

The X3 has a smaller 3.7-inch panel at 528x792 (259 PPI); the X4 has a larger 4.3-inch panel at 480x800 (220 PPI). Both run the same ESP32-C3 chip, which is why they share the community flashing ecosystem and most firmware. The biggest practical day-to-day split is the charging cable: the X3 uses magnetic pogo pins, the X4 standard USB-C.

Sources: crosspointreader.com (panel resolutions) · CrossPoint README (ESP32C3-based X4 and X3) · XTEINK X3 product page · XTEINK X4 product page

Do the X3 and X4 use the same charging cable?

No. The X3 charges over a proprietary magnetic pogo-pin cable (included in the box), while the X4 charges and connects over standard USB-C and ships with no cable. To flash the X4 over USB you'll need a USB-C cable that supports data transfer, not a charge-only one.

Sources: XTEINK X3 product page (Magnetic Pogo Pin) · XTEINK X4 product page (USB Type-C, no cable) · CrossPoint README (data cable required)

Which firmware runs on which model?

CrossPoint and CrossPoint KO run on both the X3 and X4. Microreader, inx, and CrossPoint CJK are X4-only and do not support the X3. AvesO3 also targets the X4 (its README lists only the X4) and must be flashed on an unlocked device. So X3 owners can't run the X4-only forks.

Sources: Microreader (X4 only) · inx (X4 only) · crosspoint-reader-cjk (X4 only) · CrossPoint KO (X3 and X4) · AvesO3 README (Xteink X4, UNLOCKED DEVICES ONLY)

Does tilt/shake-to-turn-page work on both models?

It's an X3-only feature, both on Xteink's stock firmware and in CrossPoint, whose README marks tilt page turn 'X3 only'. The X4 does not offer shake-to-turn.

Sources: CrossPoint README (Tilt page turn X3 only) · XTEINK X3 product page (Shake-to-turn-page)

I have a locked unit. Does the SD-card flash trick work the same on X3 and X4?

No, the rescue paths differ. On a locked X3 the SD-card update.bin method works directly from stock: copy update.bin to the SD root and hold the left-side button + power; the OEM bootloader flashes it. On a locked X4 the reliable entry from stock is the CrossPoint OTA Unlocker (which serves CrossPoint or CrossInk). The X3 SD button-trick is not a reliable path from X4 stock: the CrossPoint maintainer couldn't find a stock-to-custom SD key-combo on the X4 (the NVS 'activate' flag is 0 on X4 stock vs 1 on X3). It doesn't brick; it simply doesn't engage. Once CrossPoint is installed on the X4, the in-app SD update works for future flashes.

Sources: CrossPoint PR #1786 (SD update + X3 bootloader compatibility) · crosspointreader.com (SD update.bin steps) · CrossPoint OTA Unlocker

Why is flashing riskier on a locked X4 than on an unlocked unit?

On a locked unit there's no USB safety net: the device doesn't enumerate over USB, so you can't read or rewrite the flash to recover. The mechanism is reported to be a burned eFuse that permanently disables the ESP32-C3 USB serial route on at least some grey-market X4 batches, but it isn't vendor-confirmed and may vary by batch; SD/OTA flashing does not re-enable USB. So on a locked unit, stick to CrossPoint or CrossInk (the only two the OTA Unlocker serves) and keep a stock update.bin on the SD card as your rollback. Avoid forks with no OTA and no standalone SD image: CrossPet, for example, has stranded locked X4 owners who could no longer switch or revert.

Sources: CrossPet #28 (stranded locked-X4 owners) · CrossPoint PR #1786 (SD/OTA paths) · CrossPoint OTA Unlocker (serves CrossPoint/CrossInk only)

I have the new X4 Pro. Can I flash CrossPoint on it like the X3 and X4?

Not from the stable build yet. The X4 Pro (launched July 21, 2026 at $99) ships factory-unlocked under Xteink's firmware guarantee on store units, but CrossPoint doesn't support it in the stable release: as of v1.5.0 (Aug 7, 2026) the release notes say the Pro "isn't supported in this build yet — a beta is up on the site for testers." The Pro also drops USB-C for pogo-pin charging and adds a touchscreen, front light, and real-time clock the beta isn't proven against, so treat flashing it as experimental until a stable port lands. If you want CrossPoint's reading features on solid ground today, the base X4 is the safer buy.

Sources: CrossPoint v1.5.0 release notes (X4 Pro beta only) · XTEINK X4 Pro product page

Why most custom firmware drops Bluetooth, which forks bring a page-turner back, and the desktop tools that get books onto the device.

I flashed custom firmware and now my Bluetooth page-turner doesn't work. What happened?

The mainline custom firmware (CrossPoint and CrossInk) ships without Bluetooth because the ESP32-C3 only has ~380KB of usable RAM, and the richer the reading features a build enables (typography, antialiasing, EPUB parsing), the less headroom is left for the BLE stack. This is a compounding problem: the more features a firmware adds, the worse Bluetooth stability gets. On builds that have tried to run BLE alongside full reading features, the result is crashes, random reboots, and out-of-memory failures mid page-turn, not just a failed pairing. Stock firmware has BLE but it is buried: you must open a book first so the chapter index builds and frees enough heap, then enter the reader menu to enable it. If you need a page-turner today, CrumBLE (X4, BLE HID remotes) and SUMI (X3 + X4, BLE 5.0) are the stable options. CrossPoint mainline has a draft PR (June 2026) using NimBLE, a much lighter BLE stack, with full stack teardown during chapter indexing so the RAM is returned to the heap when BT is not actively needed; that is the approach most likely to land stable BLE in mainline.

Sources: crosspoint-reader/crosspoint-reader (~380KB RAM) · CrossPoint feat-bluetooth PR (NimBLE + dynamic teardown) · CrumBLE README (BLE page-turner) · psychoplath9450/SUMI (BLE 5.0)

Is there any custom firmware that still supports a Bluetooth page-turner remote?

Yes, three options today with different tradeoffs. CrumBLE (CrossInk fork, X4; X3 in development) pairs BT HID remotes like the IINE GameBrick or Free2 from inside an open book; BLE auto-disables when you leave the book. SUMI (X3 + X4) supports BLE 5.0 page turners and BLE keyboards and is the most stable of the three. crosspoint-reader-ble (a CrossPoint fork by thedrunkpenguin, X4 only) keeps the full CrossPoint reading engine plus BLE, but has real tradeoffs: you need to disable Text Anti-Aliasing to avoid rendering corruption when BLE is active, OPDS is missing, and some users report random reboots. A CrossPoint mainline BLE implementation is in progress (draft PR, June 2026) using NimBLE with dynamic stack teardown; once it merges, forks like CPR-vCodex would need to pull it in separately.

Sources: CrumBLE README · SUMI repo · crosspoint-reader-ble (thedrunkpenguin fork) · CrossPoint feat-bluetooth PR

Can I actually install plugins or apps on my Xteink reader?

The only genuine on-device scriptable-plugin firmware is SUMI, which has a sandboxed Lua system: drop a .lua file in /custom/ on the SD card, restart, and it appears in the Apps list (the Lua VM is capped at 40KB memory and 100K instructions per call). SUMI also ships 20 built-in apps including a dictionary, flashcards, and games. Base CrossPoint deliberately has no plugin system or app store: its scope doc rules out apps like notepads, calculators, and games.

Sources: SUMI repo · CrossPoint SCOPE.md

I read PlusPoint runs user-installable JavaScript apps. Is that the real plugin firmware to get?

No. PlusPoint is an experimental C/C++ reader-OS proof-of-concept for the X4, whose author says the goal isn't a usable firmware; it has no JavaScript engine and isn't a user-app platform. For a real on-device plugin system, use SUMI (Lua), not PlusPoint.

Sources: PlusPoint README

Does any of this firmware have an offline dictionary?

Yes. SUMI does offline word lookup from StarDict dictionaries dropped into /dictionary/<name>/, with fuzzy matching and word-stemming. CrumBLE and Vcodex also add StarDict dictionary lookup from the SD card.

Sources: SUMI repo · CrumBLE README · Vcodex README

What desktop tools should I use to get books onto the device?

Calibre is the standard free ebook manager, and CrossPoint has a Calibre wireless plugin that uploads EPUBs over WebSocket (auto-discovered on your network) and can optimize images for the screen first. Any DRM-free EPUB source works; Project Gutenberg and Standard eBooks are good ones. For comics and PDFs, a browser converter like xtcjs turns them into Xteink's XTC format; the epubkit web tool optimizes EPUB images for e-ink, which mainly helps firmware that renders in-EPUB images.

Sources: CrossPoint Calibre plugin · epubkit · xtcjs

Step-by-step guides

An answer tells you what to do; these guides walk you through actually doing it.

Still deciding?

The chooser asks a few questions and names one firmware for your exact unit, or open the directory and compare every option side by side.

Verified August 11, 2026. Not affiliated with Xteink. Flashing custom firmware can void your warranty.