www-gem words

Barebones e-reader: Xteink X4

Published on

Minimalism is knocking on my door once more. Due to recent “geopolitical” circumstances, my relatives can no longer send me physical books. So, the obvious solution to keep reading was to turn to e-books. However, two issues arise: e-readers are overpriced, and reading on a screen didn’t work for me the last time I tried it about 15 years ago.

But you’re sharp enough to have guessed, from the title of this blog, that the Xteink X4 device has changed all of that for me.

Minimalist design and barebones features

The Xteink X4 is an extremely minimalist mini e-reader both in terms of features and size. Here are the specs:

Display4.3 inch
Resolution220 PPI
Dimensions114 × 69 × 5.9 mm (4.49" × 2.72" × 0.23")
Weight74g
CPUESP32-C3
StorageComes with 16 GB microSD card, supports expansion up to 512 GB
ConnectivityWi-Fi 2.4 GHz ; Bluetooth
Port1 USB-C
Physical ButtonsPower Button, Page-Turn/Action Buttons (2 on the side ; 2 at the bottom)
Battery650 mAh (lasts up to 14 days, based on 1–3 hours of reading per day)
Supported FormatsDocument: EPUB, TXT / Image: JPG, BMP / Fonts: BIN
Front lightNo
TouchscreenNo
Reset ButtonYes
Price$69

Few notes:

  • the X4 is now available on Amazon
  • there’s an X3 model, which is even more compact. However, this might push the limits of portability too far, making the readability of books quite challenging and tiring.
  • the X4 successor - the S4 model - has been announced for the end of 2026. It should have the same physical size but comes with a touchscreen and runs under Android.

This device is designed with portability in mind, offering a sleek and compact form that’s perfect for on-the-go reading. While it’s not intended to replace your primary e-reader, it’s the only one for me and serves me well even during 1-hour reading sessions without creating eye fatigue thanks to its crisp e-ink display and crisp text.

A canvas for tinkerers, but accessible

The big issue with the X4 is its default firmware which is slow and only offers very limited settings. Tech enthusiasts who read this blog will consider that to be a plus though because they’ll remember that this device is just an ESP32-C3, meaning that you can easily hack it.

The community has developed several alternative firmwares for the X4. Before we dive into some of these options, it’s worth highlighting that the flashing process has been streamlined to an incredibly user-friendly experience. In fact, it’s so simple that anyone can do it with just two clicks, thanks to an intuitive online interface. And don’t worry, you can as easily downgrade back to the official firmware if you want. On top of that you can virtually never ever brick the X4. But in case you find a way to do it, there’s a solution .

Below are some firmware to chose from. Check their Github page for all the details, but globally the intend is to offer better performance and more options for adjusting the display settings.

  • Crosspoint : the most known community-built firmware.
  • Papyrix : It’s a fork of Crosspoint, a bit more lightweight and in some areas, more user friendly.
  • SUMI : Currently in Beta version, it has weather, games, and much more.
  • Crosspet : A Vietnamese fork of CrossPoint. It brings a virtual pet, mini games, weather, lunar calendar, and a pomodoro timer.

Here are some examples of the various layouts you can create with Crosspoint and Papyrix using their respective default font:

Upload and sync your books

The X4 includes a microSD card for storing your books. Personally, I just transfer files directly to the card from my computer, but there are also wireless options available for uploading and managing your library.
You can do so using Calibre, KOReader Sync, or using your device as a hotspot.

Optimize your files

No matter which firmware you choose, I highly recommend optimizing your EPUB files. Doing so will significantly improve your reading experience by reducing load times. For example, indexing a new chapter could drop from 5 seconds to just 2 seconds, making the whole process much smoother.

The developer of the Papyrix firmware, has developed a nice little tool to perform the magic.
Here is the quick tuto:

  • clone the repo: git clone https://github.com/bigbag/epub-to-xtc-converter.git
  • cd to the epub-to-xtc-converter/cli folder
  • run node index.js optimize [epub_file|epub_dir] -o [optimized_epub_file|optimized-epub_dir] -c settings.json

Flash the firmware online

The dev of the Crosspoint firmware has also built an online tool to flash any firmware.

On this page, there are two main sections:

  • the “Full flash controls” let you backup the current firmware (“save full flash”) and upload an alternative firmware including the bootloader and partition table (“write full flash from file”).
    Most people will want to upload the firmware only though using “OTA fast flash controls” > “Flash firmware from file”. The firmware .bin file can be found on each firmware Github page.
  • At the top of the page, you’ll notice a “debug” section . You can use it to “swap boot partitions”. What does that mean? When you upload a firmware using the “OTA fast flash controls” options, it’ll be installed aside from your current firmware. This allow you to have two firmwares installed, so you can switch from one to the other in case you want to test two or just have one has a quick backup.

Flash the firmware locally

The partitions

It’s important to understant how the Xteink X4 16MB flash memory is organized.

Offset (size)Role
Bootloader0x0000 (~12KB)ESP32-C3 second-stage bootloader
Partitions0x8000 (3KB)Partition table
OTA data0xE000 (8KB)OTA boot state tracking
App (OTA 0)0x10000 (~6.3MB)Main application
App (OTA 1)0x650000 (~6.3MB)OTA update partition
SPIFFS0xC90000 (~3.3MB)File storage

Esptool commands

Esptool allows to flash the firmware (downloaded from the project’s Github page).

 To have your device recognized on Linux, you may have to add yourself to the dialout or uucp (in Archlinux) group using sudo usermod -aG [dialout|uucp] ${USER}

Thanks to the dual OTA partitions, you can install two different firmwares on the device, giving you the flexibility to switch between them whenever you like (though you still need to use a computer to do so).

  • Flash a firmware, including the bootloader and partition table:
    esptool --chip esp32c3 --port /dev/ttyACM0 --baud 460800 write_flash -z 0x0 firmware.bin
  • Flash a firmware on OTA 0:
    esptool --chip esp32c3 --port /dev/ttyACM0 --baud 460800 write_flash 0x10000 firmware.bin
  • Flash a firmware on OTA 1:
    esptool --chip esp32c3 --port /dev/ttyACM0 --baud 460800 write_flash 0x650000 firmware.bin

If you have flashed your firmware to another partition, you’ll first need to switch boot partition with python otatool.py --port /dev/ttyACM0 switch_ota_partition --slot [1|2].
Then, boot your new firmware by pressing the reset button once and then turning on your X4.

Reset the firmware

If your device is not responsive, don’t panic. Here are different steps to get you back on track:

  • enter boot mode: press the reset button, followed quickly by the power button for 3 seconds
  • enter download mode: while holding the power button, press the small reset button once, then let go of the power button

If nothing works, your last chance is to reset the firmware with esptool --chip esp32-c3 erase_flash
Then flash the backup firmware you’ve created as mentioned earlier . In case you skipped this step, use the stock firmware .

Conclusion

The Xteink X4 carves out a unique space in the e-reader market. It’s not trying to be a tablet, nor is it shackled by proprietary ecosystems. Instead, it offers a refreshing blend of minimalist hardware and open-source software potential, making it an excellent fit for user who values control, efficiency, and a truly distraction-free reading experience. Give it a shot, you might find it’s the perfect little companion.



More food for thoughts? Check other posts about: #System


Thanks for your read. Hope it's been useful to you.


Interact with this post using Mastodon or

Comment on wwwgem's post

Copy and paste this URL into the search field of your favourite Fediverse app or the web interface of your Mastodon server.

✄ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈