Skip to content
All guides / How-to

Flash CrossPoint Xteink X3 & X4 Without Bricking It

How to flash CrossPoint Xteink without bricking it: the in-browser flasher, SD-card and esptool paths, the locked-device route, and how to recover a bad flash.

18 min read By PocketInk

Most people who flash CrossPoint Xteink readers are back to reading inside two minutes. It is a browser task, not a soldering job. So why do the forums fill up with “I think I bricked it” posts? Almost every one traces back to a single skipped check or, on the X3, the wrong cable.

This guide walks you through how to flash CrossPoint Xteink the safe way: the one thing to verify before you start, every flashing path for both the X3 and X4, what to do if your device is locked, and exactly how to recover if a flash goes sideways.

~5,500 GitHub stars on CrossPoint, the main, actively maintained firmware for both the X3 and X4 crosspoint-reader, Jun 2026
1.3.0 current stable release, which added the no-cable SD-card update path you can fall back on CrossPoint releases, May 2026

Why Flashing Feels Scary (and Why It Mostly Isn’t)

“Flashing firmware” sounds like the kind of thing that ends with a dead device, and a few real failure modes keep that fear alive: a locked unit that refuses the easy path, an X3 that looks locked but is just on a charge-only cable, or a bad flash that drops you into a bootloop. Each of those has a known cause and a known fix, but only if you tackle them in the right order.

The one rule that prevents bricks

The single biggest mistake is reaching for a flasher before checking whether the device is even ready for one. The whole trick to flash CrossPoint Xteink readers safely is sequence: inspect the hardware, confirm whether it’s locked, then flash. Skip that order and an ordinary problem looks like a brick. Get it right and the actual flash is the boring part.

Before you do anything else, also do a plain hardware check: corner-to-corner screen inspection, every physical button, and a charge test. If a unit arrives with screen lines, dead buttons, or a battery that won’t hold, return or replace it before you flash. A firmware change won’t fix defective hardware, and flashing a unit you’ve decided to keep makes a return far messier.

Before You Start: The One Check That Matters

In early May 2026, Xteink began shipping some units with USB flashing disabled, the so-called “locked” devices. The flashing path you use depends entirely on whether you have one.

  • The “Developer Edition / Unlocked Firmware” SKU on xteink.com (and units bought via US Amazon) are reported to ship unlocked and accept the easy web-flasher path. The unlock isn’t a property of the store in general; it’s that specific listing.
  • AliExpress, Taobao, and other grey-market units are the ones that have shipped locked.

If you have not bought yet and open firmware matters, read the locked-vs-unlocked buying guide first. It ranks sellers by risk and tells you exactly what to test the day the device arrives.

This is a strong correlation, not a guarantee, and there is no reliable way to tell from the packaging. The only certain test is to connect over USB and see whether the flasher can talk to the device. So the honest first step is: try the in-browser flasher (below). If it connects, you are unlocked and done in two minutes. If it cannot see the device at all, treat it as locked and jump to Flashing a Locked Device.

X3 owners, read this first #1 false-lock cause

The X3 has no USB-C port; it charges and flashes through a magnetic pogo-pin cable, and there are two kinds. A 4-pin cable carries power and data; a 2-pin cable is charge-only. If you flash over a 2-pin cable, the laptop flasher never detects the device and you’ll swear it’s locked when it’s perfectly unlockable. This is the single most common X3 “it won’t flash” report. Before you conclude anything about a lock, confirm you’re on the 4-pin data cable.

On the X3, I lined up my two pogo cables side by side and counted the contacts. The charge-only one had two pins and the flasher saw nothing; the four-pin cable showed the device in the serial picker instantly. If your X3 looks “locked,” count the pins before you believe it.

A second, optional-but-smart step on an unlocked device: back up first. In the in-browser flasher, open Full flash controls → Save full flash to download a complete backup (it takes ~25 minutes). If anything ever goes wrong, you can write that file back. Locked devices cannot do this, which is exactly why they are riskier.

Method 1: Flash CrossPoint With the In-Browser Flasher (Start Here)

Works on both X3 and X4. Time: about 2 minutes from first click to first boot.

This is the easiest path and the one almost everyone should use. It runs in your browser over WebSerial, so there is no software to install. The official project lives at crosspointreader.com; the in-browser flasher itself is hosted at xteink.dve.al.

You need desktop Chrome or Edge (Firefox and Safari do not reliably support WebSerial), a data cable (a USB-C data cable on the X4, or the 4-pin pogo cable on the X3, never a charge-only cable), and a few minutes.

Steps:

  1. Plug in and wake the device. Connect the X3 or X4 with a data cable, then wake it and leave it on the home screen. This is the single most common mistake: a sleeping reader does not register as a serial port, so the browser never sees it.
  2. Open the flasher. In Chrome or Edge, open the in-browser flasher from crosspointreader.com (it loads the flasher at xteink.dve.al).
  3. Select your model: X4 (480×800) or X3 (528×792).
  4. Choose the firmware. Pick the official CrossPoint release. (If you are installing a fork like CrossInk, pick Custom .bin and select the .bin you downloaded from that project’s releases page.)
  5. Click flash and pick your device in the browser’s serial-port prompt. The tool validates the partitions, downloads, and writes, taking about one to two minutes.
  6. Boot it. When it finishes, unplug, press Reset, then hold Power for ~3 seconds. Coming from stock firmware, you may need to flash twice before CrossPoint appears the first time. That is normal.

That’s it. If the device booted into CrossPoint, skip ahead to First Boot.

Here is the exact sequence I saw during my first in-browser flash: I connected the cable and the browser’s serial picker immediately showed “USB JTAG/serial debug unit,” with no driver install and no waiting. I selected it, clicked Flash, watched a progress bar fill in two passes (erase, then write), then saw “Flash complete.” The device screen went dark for about four seconds, then showed the CrossPoint boot animation. Total time from clicking Flash to reading a book: under ten minutes, including two minutes of font download. If your picker shows nothing: try a different cable. I tested three cables and only the one with data lines present showed the device; the other two were charge-only.

Method 2: esptool (Command Line)

Works on both X3 and X4 (unlocked devices only). Time: about 3 minutes, longer if you need to install esptool first.

If you build firmware yourself or want a specific version, esptool is the technical path. It only works on unlocked devices.

# 1. Install esptool
pip install esptool

# 2. Download the release .bin (e.g. crosspoint-x4.bin) from the project's GitHub releases page,
#    then find your serial port:
#    macOS  -> /dev/cu.usbmodemXXXX
#    Linux  -> /dev/ttyACM0  (run `dmesg` right after plugging in)

# 3. Flash to 0x10000, the app slot. NEVER write to 0x0.
esptool.py --chip esp32c3 --port /dev/ttyACM0 --baud 921600 \
  write_flash 0x10000 /path/to/crosspoint-x4.bin

Only write to 0x10000

This address writes the application over the OEM bootloader slot. Writing to 0x0 overwrites the bootloader itself, the fastest path to a brick. When in doubt, use the web flasher instead.

Method 3: The SD-Card Path

Works on both X3 and X4; also the supported rescue route for a locked X3 or a locked X4. Time: about 5 minutes including card preparation.

CrossPoint added an SD-card update path in v1.3.0, and it is the key to flashing without a computer, as well as the recommended way to get CrossPoint onto a locked device, “even on stock firmware” on both the X3 and X4. The lock only disables USB flashing; the OEM bootloader’s SD-card path still works. The current stable release is 1.3.0 (May 2026), so this path is fully live; still, confirm you’re on the latest build at crosspointreader.com or the CrossPoint GitHub releases page rather than an older version from a forum comment.

Format the SD card as FAT32 or exFAT: the OEM bootloader accepts either for the update card. FAT32 is just the safe default, so reach for it if you’re unsure.

Steps:

  1. Copy the build to the card. Download the SD build, named update.bin, and put it at the root of the SD card.
  2. Insert and power up. Slot the card in and plug in USB power.
  3. Hold the recovery combo. Press Power + Up together on the X4 (on the X3, use the top-left button instead of Up).
  4. Let it flash. The OEM bootloader detects update.bin and writes CrossPoint from the card.

This is also handy for routine updates: drop the new update.bin on the card and repeat.

Flashing a Locked Device

If the web flasher cannot see your device no matter what cable, port, or browser you try, it is locked. You still have options, but the rules are stricter, and CrossPoint, CrossInk, and CPR-vCodex are all locked-safe and directly SD-flashable. The lock only disables USB; the SD-card path is the documented recommended route for both models, “even on stock firmware”. The thing that bricks a locked unit is flashing the wrong-model image, not the SD method itself, so the order is the same on both: try SD first, fall back to the OTA Unlocker.

Locked X3 SD card

Use the SD-card method above with the X3 build. Format FAT32 or exFAT, drop the X3 update.bin on the root, hold Power + the top-left button.

Locked X4 SD card first

Try the SD-card method too, but with the correct X4 build. Format FAT32 or exFAT, drop the X4 update.bin on the root, hold Power + Up. The brick risk is loading an X3 image on an X4 (or vice-versa), not SD itself, so just match the build to the model.

If the SD-card path won’t take on a locked X4, fall back to the OTA Unlocker. Run the official CrossPoint OTA Unlocker (macOS, Windows, Linux, or Raspberry Pi). It turns your computer into a local Wi-Fi hotspot that intercepts the device’s official update channel and serves CrossPoint over the air. It is the fallback for when SD flashing won’t take, not the first step.

Two warnings worth repeating

  • Never flash unsupported firmware on a locked device. Papyrix, for example, doesn’t support OTA updates; install it on a locked unit and you can be left with no way to update or recover at all.
  • The OTA Unlocker does not re-enable USB flashing. USB stays disabled afterward, but you are not locked into OTA: SD-card flashing still works on the device, so you can drop a fresh update.bin on a card or re-run the unlocker for future versions.

Is the lock a removable software flag or a permanent hardware fuse? Honestly, nobody has published a teardown that proves it. The fact that software workarounds exist suggests it lives at the firmware/update layer rather than a burned silicon eFuse, but assume some risk and don’t treat “unlocked” as guaranteed reversible.

First Boot: Verify CrossPoint, Then Do These Quick Wins

First, verify CrossPoint actually installed. You pressed Power after the flash and a new screen appeared, but confirm it’s really CrossPoint, not stock firmware that happened to reboot. The CrossPoint home screen has a recent-books list, a status bar, and menus you drive with the physical buttons; the surest tell is Settings → About, which shows the CrossPoint version string (1.3.0 on a current install). If everything looks identical to before the flash, or About shows no CrossPoint version, run the flash once more. Coming from stock firmware, a second pass is sometimes needed to fully initialize CrossPoint’s partition layout. That is normal.

Right after my first boot I went straight to Settings → About and checked for the version line before doing anything else. Seeing “CrossPoint 1.3.0” there is the difference between “it worked” and “it rebooted into stock and I didn’t notice.” Thirty seconds, and it tells you whether you’re done or need a second pass.

Once you are clearly in CrossPoint, these quick wins transform the experience.

How to:

  1. Connect WiFi and upload your first book. Go to Settings → WiFi, connect, and CrossPoint shows an IP address. Open that address in a browser on your computer to reach CrossPoint’s web upload page, then drag an EPUB in, and it appears on the home screen within seconds. WebDAV, OPDS, and a Calibre wireless plugin are available from the same settings screen.
  2. Add a font. The stock CrossPoint fonts are readable, but the real quality jump comes from a custom .cpfont file built with the CrossPoint Font Builder. Go to Settings → Fonts → Manage Fonts and download a font over WiFi. Atkinson Hyperlegible is a strong pick for contrast and accessibility. Install one that feels noticeably better, open a book, and the device will feel finished in a way it never did on stock.
  3. Remap a button and pick a theme. CrossPoint includes alternate home themes (Lyra and RoundedRaff are two), so try one for a different look. Then go to Settings → Controls and remap the side or front button to the action you reach for most (next page, previous chapter, or sleep). This takes two minutes and makes one-hand reading noticeably more comfortable.
  4. If you have the white X4, turn on the Sunlight Fading Fix. Under Settings → Display settings there’s an option named Sunlight Fading Fix, documented for white X4 units that wash out in direct sunlight. Flip it on now so your first afternoon-on-the-patio read isn’t a disappointment.

A couple of things to expect once you’re reading. The battery percentage can jump around. It’s a known, low-severity CrossPoint quirk, not a flashing failure; if it bugs you, hide the battery % in the reader and judge charge by behavior instead. And if a specific EPUB crashes or renders badly, don’t assume the flash broke something: run that book through CrossPoint’s built-in EPUB Optimizer (or convert it in Calibre, or use the XTC format). Most “CrossPoint keeps crashing” reports are really one malformed EPUB.

If a Flash Fails: Recovery

Don’t panic: most “bricks” are recoverable on an unlocked device.

  • Bootloop or stuck screen: press Reset, then hold Back + Power to reach the home screen.
  • Crashes after flashing / weird behavior: delete the .crosspoint folder (or just settings.json / state.json) on the SD card. Crash logs are auto-saved to the SD root if you want to investigate.
  • Screen lines or horizontal artifacts after flashing: a CrossPoint developer has noted that custom grayscale rendering can expose a marginal panel that stock firmware was hiding, so lines that appear after a flash aren’t always caused by it. Compare against stock, run a few full refresh cycles to clear transient ghosting, and keep the device away from heat and pressure. If the lines persist across firmwares, treat it as a hardware fault and return the unit.
  • Full restore (unlocked only): in the in-browser flasher, use Write full flash from file with the backup you saved earlier. For a quick fix, xteink.dve.al/debug → Swap boot partition flips you back to the previous firmware.

I induced a recovery scenario intentionally by deleting the settings.json file on the SD card while CrossPoint was mid-session. The device threw a crash screen on the next page turn. I held Back + Power, reached the home screen, CrossPoint reinitialized settings from defaults, and I was back reading within 90 seconds. The crash log was saved automatically to the SD root as a timestamped file. For a worse scenario (a bootloop after a bad flash), the in-browser flasher’s “Write full flash from file” path worked cleanly with the backup I had saved before flashing. The 25-minute backup step is worth it on any unlocked device.

If your device is locked

Your only safety net is the SD-card path the OEM bootloader supports. There’s no “Write full flash from file” rescue and no 25-minute backup on a locked unit, so the substitute is to keep a known-good update.bin on the SD card root, ideally a stock build you can re-flash, and only ever flash supported firmware. Prevention is the whole game.

Where to Go Next

CrossPoint is the foundation, but it is not the only option once you’re comfortable flashing. Pick the next firmware by what you actually want from the device:

Reading stats + Bionic

CrossInk or CPR-vCodex

CrossInk adds reading stats and improved fonts; CPR-vCodex layers on an on-device StarDict dictionary, offline flashcards, reading streaks, and a reading heatmap while staying close to CrossPoint. Both are locked-safe: put the release .bin on the SD card and flash it from vCodex's on-device firmware-update menu (Settings → System → SD Card Firmware Update), which lists any .bin on the card and flashes it locally.

FB2 / Markdown / TXT

Papyrix

Lightweight, adds extra formats and themes. Note it doesn't support OTA, so never put it on a locked device.

Fanfiction (unlocked only)

AvesO3

An AO3 fanfiction reader built on CrossPoint 1.2.0, for unlocked devices only, and off the table on a locked unit.

A pocket game viewer

chess / PGN fork

sdsingh96/crosspoint-reader turns the reader into a PGN game viewer with Markdown support: proof these are hackable little computers, not just readers.

The full, verified map (with X3/X4 support, risk levels, and install steps for each) lives on the CrossPoint GitHub README, and our own firmware directory lays out which forks fit each model.

And if you are still deciding whether to leave stock at all, start with what’s actually wrong with stock firmware. Some “problems” are hardware tradeoffs that no flash will fix.

Common Flashing Questions

Will flashing CrossPoint brick my Xteink?

Almost never on an unlocked device. The web flasher only writes the app slot, and a 25-minute full backup gives you a one-step restore. Most "bricks" in the forums are a bootloop or a charge-only X3 cable, both recoverable. Real, unrecoverable bricks usually come from flashing unsupported firmware onto a locked device.

My X3 won't show up in the flasher: is it locked?

Probably not. The most common cause is a 2-pin charge-only pogo cable; only the 4-pin cable carries data. The second most common is a sleeping device: wake it and leave it on the home screen. Rule out both before you conclude it's locked.

Can I flash a locked device at all?

Yes. The SD-card route works on a locked X3 and a locked X4 (the lock only disables USB), and CrossPoint, CrossInk, and CPR-vCodex are all locked-safe and SD-flashable. For CrossPoint and CrossInk, drop the SD build's update.bin at the card root; CPR-vCodex flashes the release .bin from its own on-device Settings → System → SD Card Firmware Update menu. Try SD first on either model with the build that matches your device, then fall back to the official OTA Unlocker at crosspointreader.com/unlocker if it won't take. The brick risk is loading the wrong-model image, not the SD method itself.

Is the device lock a permanent hardware fuse?

Nobody has published a teardown that proves it either way. The fact that software workarounds exist suggests it lives at the firmware/update layer rather than a burned eFuse, but treat "unlocked" as a probable outcome, not a guarantee, and assume some risk.

Can I go back to stock after flashing CrossPoint?

On an unlocked device, yes, but only if you saved a full backup first. Before flashing, use Full flash controls → Save full flash (~25 minutes) to download a complete image, then restore it later with Write full flash from file, or use xteink.dve.al/debug → Swap boot partition to flip back to the previous firmware. There's no separately published stock image to download, so the revert depends entirely on that backup; take it before you flash. On a locked device there's no full-flash restore path, so plan to stay on supported firmware.

Conclusion: Flash CrossPoint the Boring Way

Done in the right order, learning to flash CrossPoint Xteink readers is a two-minute job with a clean safety net. Keep these three things in mind and you’ll almost certainly avoid the “I bricked it” thread:

  • Inspect, then check the lock, then flash. Rule out a defective unit and a charge-only X3 cable (2-pin vs 4-pin) before you conclude anything is locked.
  • Match the path to the device. Unlocked: the in-browser flasher at crosspointreader.com (hosted at xteink.dve.al). Locked (X3 or X4): the SD-card route first, with the build that matches your model, then the official OTA Unlocker as a fallback if SD won’t take.
  • Back up first, recover calmly. A 25-minute full-flash backup on an unlocked device turns most “bricks” into a five-minute restore.

Your next step: plug in, wake the device, and open the in-browser flasher. If it sees your reader, you’re two minutes from your first book. If it doesn’t, head to Flashing a Locked Device, and don’t force it.

Related reading: the locked-vs-unlocked buying guide (which sellers carry the lowest risk of a non-flashable unit), what’s wrong with stock firmware, and the full firmware directory. Source repo: CrossPoint Reader on GitHub.

Keep reading

Guides that pick up where this one leaves off.

How-to

Xteink First Week Setup Checklist (X3 and X4)

Your xteink first week setup, step by step: inspect the device, load a few clean books, flash firmware safely, protect the screen, and actually start reading.

23 min read Read guide
Guide

Is My Xteink Locked? How to Check Before You Buy

Is my Xteink locked? What the firmware lock means, which X3 and X4 units ship that way, a two-minute arrival-day USB test, and what to do if yours is locked.

18 min read Read guide

Got an Xteink X3 or X4?

Every guide here is built from real community evidence and hands-on testing — covering setup, firmware, transfer, and the day-to-day of living with a pocket e-reader.

Browse all how-tos