Flash CrossPoint on Xteink X3 or X4: Web, SD, Locked
Flash CrossPoint on an X3 or X4: web flasher steps, no-compatible-devices fix, SD-card install, locked-unit path, and how to recover if it fails.
Flash CrossPoint on an unlocked Xteink X3 or X4 from the crosspointreader.com web flasher: plug in a data cable, wake the reader, pick your model, click Flash. About two minutes. Locked units skip USB. Use the SD-card path on a locked X3, or the OTA Unlocker on a locked X4. If the flasher sees nothing, swap the cable before you assume a lock.
How Do I Flash CrossPoint on an Xteink X3 or X4?
Open the CrossPoint web flasher, connect the X3 or X4 with a data cable, wake it, select your model, and click Flash. About two minutes on both models. Use this in-browser path unless the flasher can’t see the device.
The flasher runs in your browser over WebSerial, so you install nothing. The project site is crosspointreader.com. The flasher itself loads from xteink.dve.al.
You need Chrome, Edge, or Firefox on a desktop. Safari and mobile browsers do not work. You also need a data cable: USB-C data on the X4, or a data-capable pogo cable on the X3. Charge-only cables power the reader and carry no serial.
Steps:
- 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. A sleeping reader doesn’t register as a serial port, so the browser never sees it. This is the most common miss.
- Open the flasher. In Chrome, Edge, or Firefox, open the in-browser flasher from crosspointreader.com (it loads the flasher at xteink.dve.al).
- Select your model: X4 (480×800) or X3 (528×792).
- Choose the firmware. Pick the official CrossPoint release. (If you are installing a fork like CrossInk, pick Custom .bin and select the
.binyou downloaded from that project’s releases page.) - 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.
- 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.
If the X3 or X4 booted into CrossPoint, skip ahead to verifying the install. If the flasher never saw the device, work through why the flasher says “no compatible devices found”.
Why Does the Flasher Say “No Compatible Devices Found”?
“No compatible devices found” means the browser cannot see a serial device to connect to. It is a connection problem, not a broken Xteink. Work through the causes in order of likelihood before you conclude the X3 or X4 is locked:
- A charge-only cable. The most common cause. The X4 needs a USB-C data cable and the X3 needs a data-capable pogo cable. A charge-only lead powers the device but carries no data, so the flasher never sees it.
- A sleeping device. A reader that has dropped to sleep does not register as a serial port. Wake it and leave it on the home screen, then reopen the flasher.
- An unsupported browser. The web flasher needs desktop Chrome, Edge, or Firefox. Safari and mobile browsers do not work.
- A genuinely locked unit. Only after the first three check out is the device likely USB-locked. Jump to Is My Xteink Locked, and Can I Still Flash It?.
X3 owners, check the cable first
The X3 has no USB-C port. It charges and flashes through a magnetic pogo-pin cable, and not every pogo cable carries data. A charge-only cable powers the X3, but the laptop flasher never detects it, so the device looks locked when it is perfectly unlockable. Before you conclude anything about a lock, swap to a known data cable.
If your X3 shipped without a data-capable lead, the X3 magnetic pogo-pin cable on xteink.com is the one to order.
Is My Xteink Locked, and Can I Still Flash It?
The only reliable test of whether your Xteink X3 or X4 is locked is whether the web flasher can see it. If the flasher connects, you are unlocked and two minutes from done. If it can’t see the device after you have ruled out the cable, sleep, and browser, treat it as locked. You can still flash a locked unit. The path differs by model.
Seller risk, SKU wording, and the arrival-day test live in the locked-vs-unlocked buying guide. This page is the flash path once the unit is in your hands. If you have not bought yet and open firmware matters, start there. The Developer Edition X4 is the listing people report as unlocked.
Before you flash, 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 messier.
On an unlocked device, back up first. In the in-browser flasher, open Full flash controls → Save full flash to download a complete backup (about 25 minutes). If anything goes wrong, you can write that file back. Locked devices can’t do this, which is why they are riskier.
If the device is locked, the path splits by model:
Locked X3 SD card from stock
The SD-card route works from stock. Format the card FAT32 or exFAT, drop the X3 update.bin at the root, and hold Power + the top-left button at boot; the OEM bootloader detects it and flashes.
Locked X4 OTA Unlocker first
SD flashing a locked X4 from stock is disputed: the developer who added the SD path reports he could not get it to take from Store firmware and recommends running the OTA Unlocker first, then using SD for later updates. Match the X4 build to the model; loading an X3 image on an X4 is the real brick risk.
To reach CrossPoint on a locked X4, run the OTA Unlocker. The official CrossPoint OTA Unlocker (macOS, Windows, Linux, or Raspberry Pi) turns your computer into a local Wi-Fi hotspot that intercepts the device’s official update channel and serves CrossPoint over the air. On a locked X3, the SD-card route is the documented path, and the OTA Unlocker is the fallback when SD won’t take.
Two locked-unit rules
- 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 doesn’t 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.binon a card or re-run the unlocker for future versions.
How Do I Flash CrossPoint From an SD Card?
The SD-card path installs CrossPoint without a computer: format a card, drop update.bin at the root, and hold the recovery combo at boot. CrossPoint added this path in v1.3.0, and it is the no-computer flash path as well as the route for a locked X3. The latest stable release is 1.5.0 (August 2026). Confirm you’re on the newest build at crosspointreader.com or the project’s 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 the safe default if you are unsure.
Steps:
- Copy the build to the card. Download the SD build, named
update.bin, and put it at the root of the SD card. - Insert and power up. Slot the card in and plug in USB power.
- Hold the recovery combo. Press Power + Up together on the X4 (on the X3, use the top-left button instead of Up).
- Let it flash. The OEM bootloader detects
update.binand writes CrossPoint from the card.
This is also handy for routine updates: drop the new update.bin on the card and repeat.
SD update fails with "Error 9" open, undocumented bug
Some SD-card update attempts fail with a bare “Error 9” and reboot back to stock firmware. This is a real, currently open CrossPoint bug (GitHub #2536, filed July 4, 2026). It is not limited to grey-market or locked units: the reporter’s X3 was bought directly from Amazon (Developer Edition, unlocked) and still hit it flashing official v1.4.1.
As of August 2026 there is no fix in the README, release notes, or the issue thread, and no CrossPoint maintainer has posted a root cause. The device reboots back into stock, not a bootloop. A failed Error 9 attempt is a failed update, not a brick, so retry rather than escalate.
A community member on r/XTEINK has posted an unofficial workaround built around the project’s own recovery image, escape-hatch.bin (load it as update.bin, plus your target firmware under a different filename, then flash the target from Escape Hatch’s own menu). That recovery image is real and lives in CrossPoint’s own tools repo. The workaround itself has not been confirmed by the CrossPoint team, so treat it as untested. If you hit Error 9, reformat the card, redownload the firmware fresh, retry once, and otherwise track the GitHub issue rather than experiment further.
Can I Flash CrossPoint With esptool?
Yes. esptool is the command-line path for CrossPoint, and it works on unlocked X3 and X4 units only. Reach for it if you build firmware yourself or want a specific version. esptool is the technical path and takes about three minutes once it is installed.
# 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.
How Do I Verify CrossPoint Installed?
Confirm the flash worked by checking Settings → About for the CrossPoint version string. A reboot alone doesn’t prove CrossPoint is running rather than stock firmware that happened to restart. The CrossPoint home screen has a recent-books list, a status bar, and menus you drive with the physical buttons. About shows the version (1.5.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.
Once Settings → About shows CrossPoint, book upload is http://crosspoint.local on a computer that shares the reader’s Wi-Fi. That address is not the flasher, and it does nothing before CrossPoint is installed. If it won’t load, the Xteink has to be awake and on the same network. Windows often ships without an mDNS resolver, so use the IP address shown on the device’s Wi-Fi settings screen instead. The book-transfer guide walks through both.
Then connect Wi-Fi, add a font, remap a button, and turn on any display fixes by working through the first-week setup checklist.
What If the Flash Fails?
Most failed CrossPoint flashes on an unlocked X3 or X4 are a bootloop, a settings crash, or a charge-only cable. Those recover without opening the case.
- Bootloop or stuck screen: press Reset, then hold Back + Power to reach the home screen.
- Crashes after flashing / weird behavior: delete the
.crosspointfolder (or justsettings.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 are not 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 full-flash backup you saved before flashing. For a quick fix, xteink.dve.al/debug → Swap boot partition flips you back to the previous firmware.
- Stuck mid-flash with no USB access: do not reach for a soldering iron or open the case. If your only cable is a charge-only 2-pin pogo lead, or you are on a locked unit, the SD-card path is still the documented route: reformat the card, redownload the firmware fresh in case the file is corrupted, and retry the recovery combo once.
If a bad flash has corrupted the partition table (the flasher reports something like “Partition table has no otadata partition”), the Repair boot region tool at crosspointreader.com/debug restores the bootloader and a known-good partition table, then reflashes stable CrossPoint. It still needs a working USB data connection. If you have no way to get USB data to the device, source the correct cable (ask the seller; the data-capable pogo cable is a known missing-in-box item) rather than any hardware-level workaround.
If your device is locked
Your only safety net is the SD-card path the OEM bootloader supports. There is 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.
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.
Why won't crosspoint.local load in my browser?
crosspoint.local only resolves while the Xteink is awake and on the same Wi-Fi network, and Windows often lacks an mDNS resolver, so the name never loads there. Type the IP address shown on the device's Wi-Fi settings screen instead. It also does nothing until CrossPoint is installed: crosspoint.local is the book-upload page, not the flasher.
What does "no compatible devices found" mean in the CrossPoint flasher?
It means the browser sees no serial device to connect to. Use a data cable (a data-capable pogo cable on the X3, a USB-C data cable on the X4), wake the device to the home screen, and use desktop Chrome, Edge, or Firefox. If all three check out, the unit is likely USB-locked and needs the SD-card route.
Which browsers work with the CrossPoint web flasher?
Chrome, Edge, and Firefox on desktop, per the CrossPoint homepage. Safari and mobile browsers do not work with the web flasher.
Can I flash a locked device at all?
Yes. On a locked X3 the SD-card route works from stock: hold Power + the top-left button at boot and the OEM bootloader flashes the update.bin at the card root. On a locked X4 the SD-from-stock path is disputed: the developer who added SD flashing reports he couldn't get it to take from stock and recommends running the official OTA Unlocker at crosspointreader.com/unlocker first, then using SD for later updates. Match the build to the model either way; loading the wrong-model image is the real brick 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.
The Bottom Line: Flash CrossPoint the Boring Way
Done in the right order, flashing CrossPoint on an Xteink X3 or X4 is a two-minute job on an unlocked unit, with a documented path when it is locked.
- Inspect, then check the lock, then flash. Rule out a defective unit and a charge-only X3 cable before you treat the reader as locked.
- Match the path to the device. Unlocked: the in-browser flasher at crosspointreader.com (hosted at xteink.dve.al). Locked X3: the SD-card route first, then the OTA Unlocker if SD won’t take. Locked X4: the OTA Unlocker first (SD from stock is disputed), then SD for later updates.
- Back up first on an unlocked unit. A 25-minute full-flash backup turns most failed flashes into a restore.
Next: plug in, wake the X3 or X4, and open the in-browser flasher. If it sees your reader, you’re two minutes from a book. If it doesn’t, use the locked-unit path instead of forcing USB.
Order the X3 data cable if the flasher never sees your X3, or the magnetic reading light if you want a front light. CrossPoint won't add one.
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, CrossPoint vs CrossInk vs MicroReader vs Papyrix, and the full firmware directory. Source repo: CrossPoint Reader on GitHub.
Keep reading
Guides that pick up where this one leaves off.
Xteink First Week Setup Checklist (X3 and X4)
Xteink first week setup for the X3 and X4: inspect the unit, load 3 to 6 clean books, pick one transfer path, flash only with a reason, then protect and tune so you actually read.
Is My Xteink Locked? Check Before You Buy, Test on Arrival
Locked blocks USB flashing, not reading. Buy from xteink.com or Amazon, run a two-minute USB test on arrival, and use the SD-card path if yours is locked.
Owner kit
A light and a case after setup
X3 and X4 ship without a front light. A clip-on is the usual first add-on.
Kit it on accessories .