Flash Lector firmware to your Xteink X3 / X4 reader, and turn any image into a sleep wallpaper — all in your browser, nothing uploaded. Use the Flasher tab to install firmware and the Converter tab for wallpapers.
Source code, release notes and downloadable builds: github.com/diogo7dias/lector
/sleep..pxc to re-target it to the other screen.PXC is the device's packed format: a 4-byte little-endian width,height
header then 2 bits/pixel (4 gray levels: black · dark · light · white), MSB-first.
BMP output is a standard 2-bit, 4-gray bitmap the reader also accepts.
dither /
threshold badge under any result to flip that one image; changing the Rendering
dropdown resets them all..pxc and .bmp files
in place of re-converting them, so nothing is re-scaled or re-toned. For a whole card, use
scripts/clean_pxc.py from the repository..pxc straight in; switch Screen to
re-fit and re-encode for the other reader (the badge then reads e.g. X3 → X4)..pxc is named for the reader it was fitted
to, e.g. sunset_X3.pxc. Re-target it and the name follows the new screen.All conversion is local (HTML canvas). No server, no upload.
.pxc or .bmp,
fills in the specks that error diffusion left in flat areas, and writes the file back at the
same size and format. Nothing is re-scaled and no tone is re-mapped, so the image is otherwise
untouched. Detail is kept: a speck is a tiny island of pixels enclosed by one single other
level, so a line is safe however thin it is, and cleaning the same file twice changes nothing..pxc and .bmp — up to about 100 at a time in the browser. For a whole SD card, use
scripts/clean_pxc.py from the repository instead.Each original PXC master stays byte-for-byte intact and is re-targeted in your browser for X3, X4, or BMP. Nothing leaves your machine.
Lector firmware for your Xteink X3 / X4, re-based onto the upstream CrossPoint reader with a thin layer of reading niceties on top. The build on this site is …. Use Update my reader if your reader already runs Lector, the full install further down if it does not, and the SD card download if it cannot be flashed over USB.
New
>P.0 on most pages,
meaning the paragraph you are in ends before the next one starts. >P.2 means it runs two
more pages.Fixed
Changed
Reports version lector 0.27.0 on device. Earlier releases are on the releases page.
Use this if your reader does not have Lector yet (fresh from the shop, still on the stock firmware), or if a device is dead, blank, or bricked. It writes the bootloader, partition table, and app from scratch — everything a reader needs to run Lector.
Install files are not published yet — they land with the next Lector release. The Update button above works now.
This browser cannot flash — open the site in Chrome or Edge on a desktop (Web Serial is required).
Your Lector reader runs on an ESP32-C3 chip. This talks to the chip over the USB serial port using the browser's Web Serial API.
boot_app0.bin (OTA data, 0xe000) and
firmware.bin (app, 0x10000) without erasing — so NVS
settings and the book storage survive. This is the normal, data-preserving update.0x0),
partition table (0x8000), OTA data (0xe000), and app (0x10000). This
is what a device without Lector needs — a stock reader has a different partition table, so an app-only
Update would not boot.