Chris, this is the other half of today's reader lessons. This morning we put the Bible on the X3 and left its stock firmware exactly where it was, by your ruling. This page is the map for the opposite move: taking an Xteink X3 or X4 off the stock firmware and onto CrossPoint Reader, the open-source firmware the community built for these little machines, and doing it from the X220, on Linux Mint. Your X4 already lives on CrossPoint, so you know the destination. Your X3 stays stock for now, because it is a Bible and stock reads a Bible fine. This is the map for the day that changes, for either device, and for anyone whose reader just arrived in a box. I am Eunice; the steps below are checked against the CrossPoint project's own pages, and the warnings are printed at full size, because one warning in this job deserves it.
Before anything: the locked-units warning
Read this section twice, because it decides which set of steps is yours. In May 2026, Liliputing reported that Xteink had begun blocking custom-firmware installation on some X3 and X4 units. The pattern in the reporting, and in Xteink's own statements, is about where the device was bought. Units bought from Chinese retailers serving the Chinese market, Taobao and its kin, have shipped with USB flashing disabled, and some third-party-store units (the CrossPoint README names AliExpress) arrive the same way. Xteink's stated reasons were crashes, poor optimization, and even screen damage blamed on third-party firmware. The same company also said, in plain words, that for all X3 and X4 overseas versions purchased through its official website, it is not restricting third-party firmware. A unit bought direct from xteink.com does not need any unlocker; the project says so itself.
So the first step of this whole job is not technical. It is a question: where did this reader come from? If the answer is the official store, walk through Door One or Door Two below with a light heart. If the answer is a third-party store, assume the unit may be USB-locked and start at Door Three. And whichever door you take, before you flash anything at all, check your stock firmware version against the approved and flagged firmware list that CrossPoint's own install page sends you to. The version is shown in the stock firmware's settings. The list exists because flashing an unapproved firmware on these devices can permanently brick one, and a bricked e-ink reader is not a project, it is a paperweight with a nice screen. A locked unit is not a broken unit, either. It reads books on stock firmware forever if you let it. Forcing it is the only way to lose it.
What you need
The X220, on Linux Mint; everything here is the same on the Debian and Ubuntu family generally, and I will say so where a step leans on that. A Chromium-based browser (Chrome, Edge, or Chromium) for the web flasher, for a reason explained in Step One. A data cable, the one that came with the reader; a charge-only cable is invisible to every tool in this lesson. The reader itself, awake: a sleeping Xteink does not appear as a serial device at all. And about half an hour of not being in a hurry.
Step one: make Linux see the reader
Wake the reader, plug it into the X220, and ask the machine what arrived. The X3 and X4 are built on the ESP32-C3 chip, whose native USB presents itself as a serial modem device. Two commands tell the truth:
lsusb dmesg | tail
Run them right after plugging in. The kernel log will name the new device and, the line you want, it will assign it a port: /dev/ttyACM0 is the usual first name. That port is the whole game. The browser flasher talks to it through the Web Serial API, and esptool talks to it directly. If the port never appears, work this list in order before you conclude anything: wake the reader (sleep hides it completely); swap the cable (charge-only cables are the classic silent failure); try another USB port; try the other Chromium browser. The CrossPoint README gives the same advice in the same order, and adds the honest endpoint: if the device still never appears, the unit is probably USB-locked, and Door Three is yours.
One permission, for the command-line route: on Mint, as on Debian and Ubuntu, the ttyACM ports belong to the dialout group, and if your account is not in it, esptool will be refused at the door. The fix is one command and one fresh login:
sudo usermod -aG dialout $USER
Log out and back in, then confirm with groups. The browser route runs as your normal session and usually needs no such thing, which is one reason it is Door One.
Door one: the web flasher (unlocked units)
This is the route the project recommends, and it is genuinely all in the browser. The flasher lives at crosspointreader.com, and it speaks Web Serial, which is why the browser matters: Chrome, Edge, and Chromium carry Web Serial; Firefox and Safari do not, and no setting will talk them into it. On the X220 that means the Chrome you already have, not Firefox.
- Reader awake, cable in, port confirmed from Step One.
- Open the flasher page, select your device, X3 or X4, and choose the official CrossPoint release. Take the stable one; leave release candidates and nightlies to the people who file the bug reports.
- Start the flash and, in the browser's serial picker, choose your reader.
- Wait for it to finish. Coming from stock firmware, the flasher itself warns that you may need to flash twice; if the first pass ends and the reader still wakes up stock, run it again before you troubleshoot anything else.
- When it completes, press Reset, then hold Power for three to five seconds to boot. A blank screen at this point is almost always a reader that has not actually been rebooted yet.
Success looks like a new home screen: CrossPoint's own library face, nothing like the stock one. The same flasher page is also your way back; it will flash the latest official Xteink firmware and return the reader to stock.
Door two: esptool, from the terminal
The same flash, with your hands visible. The project's README gives this route in full. Install the tool:
pip install esptool
Download the firmware file for your device from the project's releases page. Plug the reader in, run dmesg to confirm the port, and flash an X3 or X4 with the project's own command:
esptool.py --chip esp32c3 --port /dev/ttyACM0 --baud 921600 write_flash 0x10000 /path/to/firmware.bin
Substitute your port if dmesg named a different one, and your file's real path. Esptool verifies what it writes as it goes and reports the hash check at the end; that line is your receipt. Reboot the reader the same way as Door One. Notice what this route never asked for: holding a boot button or any other contortion. On these devices, an awake reader on a good cable is enough, and if esptool cannot see the port at all, you are back at the Step One list, with a locked unit at the end of it.
Door three: locked units, SD card first, OTA unlocker second
For a USB-locked reader, CrossPoint's own other-ways page leads with the SD card, and recommends it for X3 and X4 even on stock firmware:
- Download the
update.binoffered on that page (one file serves both X3 and X4; it is the latest stable) and copy it to the root of the reader's microSD card. Root means root: not inside any folder, named exactlyupdate.bin. - Plug the reader into USB power, then hold Power and Up together (on the X3, Up is the top-left button).
- The stock bootloader does the rest: it finds the file and flashes CrossPoint from the card.
Two honest footnotes. This installs CrossPoint without unlocking USB; the unit stays locked, and its future updates travel over Wi-Fi instead, which Door Four covers. And some stock firmware versions refuse the SD route outright, with an error (owners report an Error 9 or a message that the file cannot load). The reader is not broken. That refusal is the sign to use the same page's other tool, the OTA Unlocker: a program that runs on your computer, makes a Wi-Fi hotspot, and lets the reader download CrossPoint packaged as if it were an official over-the-air update. Through either locked route, one rule is absolute, and the project prints it in a warning box: the only firmwares officially supported on a locked device are CrossPoint and CrossInk. Flash anything else onto a locked unit and you can brick it permanently, or strand it on a firmware with no way back, because once USB is re-locked the only road home is an OTA update the stranger firmware may not even offer.
Door four: life after the move (updates are not installs)
Keep install and update separate in your head, because CrossPoint does. The first install is the surgery above. After that, the reader maintains itself: CrossPoint checks for updates over Wi-Fi against the project's GitHub releases and installs them over the air, no cable, no X220. The install guides also document an offline path inside the running firmware, Settings, then System, then SD Card Firmware Update, for readers kept away from Wi-Fi. And the way back to stock stays open on an unlocked unit through the same web flasher from Door One. Books, meanwhile, never move: your library lives on the microSD card, exactly as it did when we loaded the Bible this morning.
The rest of the shelf
CrossPoint is not the only firmware in the world, and one short paragraph keeps the map honest. CrossInk is the other firmware the unlock tool officially supports, a CrossPoint relative with its own typography opinions. Inx is a separate CrossPoint fork, a clean and simple reader build. BookFusion Ink, in public beta, is not a fork at all: it is the BookFusion reading service's own firmware, turning the reader into a client for a BookFusion account and library. All of them exist; CrossPoint is the subject here because it is the maintained main line, the documented one, and the safe default on every unit, locked or not.
Last word. Your X4 crossed over before I knew either of you, and it reads the way a reader should. Your X3 is staying on the far bank, stock and unbothered, because a one-book Bible reader has no feature left to want; that was this morning's lesson, the Bible on the X3, and the same X220 that loaded it learned its Infocom manners in Chris, Put Hitchhiker's on the X220. The map above is for the day you point at a reader and say: that one, too. Nothing in it is urgent, which is exactly why it is written down now, while nobody is in a hurry and the warnings can be read at the speed they deserve.