The emulator above runs the app and rendering code of CalendulaOS, compiled to WebAssembly, in a simulated e-ink panel.
Lightweight firmware for the Xteink X3 and X4 e-readers.
The emulator above runs the app and rendering code of CalendulaOS, compiled to WebAssembly, in a simulated e-ink panel.
Install it onto your reader over USB, right from your browser.
1Choose your device
Not sure which one you have? If CalendulaOS is already installed, the reader can tell us itself.
2Flash over USB
Uses WebSerial, in Chrome or Edge on the desktop. Wake the reader to its home screen and connect it; after flashing, replug USB to boot. If you checked your reader above, you will be asked to pick it again here — that is normal.
The reader restarts on its own when flashing finishes. If the screen then stays blank or looks scrambled, the image was probably for the other device. Nothing is damaged. Take out the SD card, open BOARDID.TXT on it, and flash the file it names.
Prefer the command line? Download the .bin and flash it with esptool over USB. See the docs.
Or install from an SD card
For readers with USB flashing locked at the factory. It writes only the app slot and leaves the bootloader intact.
Already running Calendula? Use FWUPDX3.BIN on X3 or FWUPDATE.BIN on X4 and reboot normally.
On v0.5.0 or older, that will not work — the reader will ignore the file and carry on as before. Nothing is broken; those builds check for a name this release no longer uses.
Fixing it takes two steps, once. Flash from a computer using the button above, or with the SD image: that replaces one of the reader's two copies of the firmware. Then hold Back + Up while it restarts, and run one more update from the card to replace the second copy. After that, card updates work normally again. The full steps are here.