Flash Lector firmware to your Xteink X3, X4, or X4 Pro, 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 the Xteink X3, X4, and X4 Pro. The build on this site is ….
X3 and X4 share one image (ESP32-C3). The X4 Pro is a different chip (ESP32-S3). Pick the reader first — a mismatch is refused before anything is written.
Added
Changed
firmware.bin is a plain image.Fixed
Reports version lector 0.47.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).
X3 and X4 run an ESP32-C3. The X4 Pro runs an ESP32-S3. This talks to the chip over USB serial using the browser's Web Serial API. The wrong image is refused before a write.
boot_app0.bin (OTA data, 0xe000) and the
matching app (firmware.bin or firmware-x4pro.bin at 0x10000)
without erasing — so NVS settings and book storage survive.0x0), partition table (0x8000), OTA data (0xe000), and app
(0x10000). A stock reader has a different partition table, so an app-only Update would
not boot.