The Xteink X4 Pro is a pocket e-reader with a 4.3-inch screen and an ESP32-S3 inside. Xteink sells it on its own site for $99 (regular price $129) and advertises "unlocked firmware". On 17 October 2026 at 20:51 UTC, ESPHome merged pull request #20545 by Bonne Eggleston (exciton). It adds a driver for the UltraChip UC8279 e-paper controller to the epaper_spi component, plus a ready-made board model for the X4 Pro with that controller, xteink-x4pro-uc8279. The documentation (esphome.io #7645) followed a minute later. The code is in the development branch for ESPHome 2026.11.
The controller is part of the name
The model name includes the controller because, according to the pull request, the X4 Pro also ships with other panel controllers. Only the UC8279 version is supported for now. The other variants would need models of their own.
What the driver does
The panel is 800x480 and supports full and partial refresh. The UC8279 scans 600 gate lines and the panel is connected to the last 480, so the driver writes white into the 120 lines outside it. For a partial refresh the controller compares the new image with the previous one, so the driver rewrites that 48 KB copy after every update. It does so in time slices, so the rest of ESPHome keeps running in the meantime. The panel loses both images in deep sleep, so between partial updates it waits in standby, and it only goes to deep sleep after each update with full_update_every: 1.
spi:
clk_pin: GPIO12
mosi_pin: GPIO11
display:
- platform: epaper_spi
model: xteink-x4pro-uc8279
full_update_every: 10
lambda: |-
it.print(0, 0, id(my_font), Color::BLACK, "Hello");
The author tested it on an X4 Pro, updating every 10 seconds with a full refresh every tenth time, and reports clean refreshes with no residue where text changes. The driver is a cut-down version of one from an ESPHome project that runs the X4 Pro as a Home Assistant dashboard.
Faster updates on every epaper_spi panel
A second pull request by the same author, #20554, merged later that day (23:25 UTC), keeps the main loop running continuously between the steps of a display update instead of waiting up to 16 ms before each step. On the X4 Pro a partial refresh dropped from 980-1000 ms to 720-735 ms and a full one from 2090 ms to 1740 ms. On a Waveshare ESP32-S3-ePaper-1.54, partial refresh went from 589-603 ms to 473 ms.
The hardware
Xteink lists the reader at 111 x 69 x 5.95 mm and 72 g. It has an 1100 mAh battery, 2.4 GHz Wi-Fi and Bluetooth, a touchscreen, an adjustable front light, pogo-pin charging and a 16 GB microSD card in the box. On 18 October the store showed it as sold out. Before flashing anything, note that Xteink's warranty does not cover problems caused by unofficial firmware.