YACP v1.6.0-yacp — Faster X3 wake and sleep, less SD-card work, and no-flash AA text
YACP 1.6 optimizes the path used in almost every reading session: wake the X3, return to the current page, and put the
reader back to sleep. The normal Quick Resume path now removes fixed startup delays, reuses the page already retained
by the e-ink panel, and avoids SD-card reads and writes that are unrelated to displaying that page.
The result is less waiting before reading can continue and less incidental storage work on every normal wake/sleep
cycle. No separate performance setting is required. The other headline change extends no-flash periodic screen
maintenance to antialiased text; saved Wi-Fi selection has also been reworked.
Faster X3 book resume with less SD-card work
An ESP32 deep-sleep wake is a fresh boot. Optimizing startup therefore directly shortens the time from pressing Power
to being able to continue the current book. The work was reduced at each stage of that cycle:
| Stage | Work avoided or deferred | Practical effect |
|---|---|---|
| Battery-powered boot | USB CDC starts only when a cable is detected or Home is opened | Removes the fixed 250 ms USB enumeration wait from the normal X3 wake |
| Boot-button detection | Two stable physical samples 8 ms apart replace the roughly 500 ms settling wait | Removes about another 492 ms of fixed startup delay while retaining boot-chord detection |
| Direct book resume | The retained framebuffer is reused; a valid cached EPUB section is prepared without rendering the visible page again | The existing reading page remains visible and becomes interactive sooner |
| SD-card work at resume | The redundant reader-entry state write and recent-book update are skipped; Recent Books, OPDS, and KOReader credentials load only on first use; page metadata such as footnotes waits until requested | Avoids unrelated SD reads and writes on the common path back into the book |
| Return to sleep | An identical same-day automatic statistics backup is not rewritten, and the panel controller switches off as soon as its localized refresh completes | Avoids an unnecessary SD rewrite and stops powering the display electronics earlier |
These changes reduce, rather than eliminate, SD activity. Progress, statistics, cached-section reads, and the state
writes that protect against a failed-resume boot loop remain. Missing or stale caches retain the normal render and
indexing fallback. X4 also retains its existing startup behavior.
Quick Resume continues to avoid the full-screen black synchronization pass. Its small loading marker is removed with a
localized no-flash update, while waking from an image-based sleep screen restores the pre-sleep framebuffer instead of
showing the normal splash.
GIF preview of the latest X3 Cover-wake recording from the hardware test session.
Download the unedited original MP4.
One hardware recording per configuration produced the following indicative timings. Each measurement starts at the
physical Power click and ends when the loading dots are replaced by the battery indicator; timing uncertainty is about
+/- 0.1 s.
| Wake path | YACP 1.6 | Previous firmware | Difference |
|---|---|---|---|
| Quick Resume to retained page | ~1.3 s | ~1.8 s | ~0.5 s faster (~27% less delay) |
| Cover sleep image to reader | ~2.8 s | ~3.4 s | ~0.6 s faster (~19% less delay) |
These are single-run observations, not a formal benchmark or a battery-life claim. The code removes about 742 ms of
fixed X3 startup waits, but some of that time overlaps other startup work and should not be added directly to the
end-to-end figures.
No-flash maintenance with antialiased text
The X3 OEM black-and-white reinforcement waveform can now maintain text-only EPUB and TXT pages even when font
anti-aliasing is enabled. Dense font-stroke pixels stay black while only the lighter edge pixels use gray, preserving
text contrast without forcing every antialiased page onto the flashing cleanup path.
The safety rules remain conservative: pages containing images, indexing or popup residue, manual full refreshes,
wake/sleep transitions that require cleanup, and non-X3 devices still use the stronger full refresh.
This extends the existing no-flash page-maintenance path; it does not change image rendering or remove explicit full
refreshes.
Smarter saved Wi-Fi selection
When several networks are saved, Join Network now scans once, sorts the visible saved SSIDs by signal strength, and
silently tries the next candidate if the first one cannot connect. The scan's channel and BSSID are passed directly to
the connection attempt so the Wi-Fi driver does not need a second scan. A single saved network keeps the faster direct
path.
The previous failure dialog and credential-deletion prompt are no longer shown merely because the last-used access
point is absent. Pressing Show interrupts the automatic attempts and opens the normal network list immediately.
The updated path advances through available saved networks without an error or credential-deletion prompt.
Download the MP4.
Other additions
- X3 Safe Home: hold physical front button No. 1, the leftmost in portrait, while pressing Power to bypass Quick Resume
and open through the normal splash and Home path. - Direct Join Network / File Transfer: hold the right side button while pressing Power on X3 or X4.
- Autonomy now counts successfully displayed EPUB, TXT, and XTC reader pages during the current battery cycle, forward
and backward. The count stays in RAM and is persisted with the existing sleep-state save, with no per-page SD write. - X3 can optionally show average battery current in mA in the reader status bar for power-measurement sessions.
- New user-facing labels are available in every language shipped by the firmware.
Boot chords use physical positions and are not changed by custom reader button mappings. The existing left side button
- Power shortcut still opens firmware update.
Fixes
- Opening Reading Stats with a long-press OK shortcut no longer closes the view when the held button is released. The
release event is sampled once and cannot be interpreted again by the newly opened activity. - Adaptive sleep-image tone mapping now selects a valid percentile sample for very small images.
Upgrade notes
No settings reset is required. Safe Home is available if a retained Quick Resume state or book cache needs to be
bypassed during diagnosis.
Release binaries and checksums are attached for the usual tiny and xlarge font-size variants.
Validation
- X3 Tiny: the wake/sleep, no-flash text, saved Wi-Fi, and statistics fixes were tested on hardware during development.
- Tiny and XLarge: final
1.6.0-yacprelease builds completed successfully on 2026-08-05. - Embedded versions were verified as
1.6.0-yacp-tinyand1.6.0-yacp-xlargebefore upload. - Both images fit the OTA application partition, with 958,944 bytes free for Tiny and 1,096,032 bytes free for XLarge.
- X4 hardware was not retested specifically for this release; X4 keeps its existing startup behavior and both release
variants compile with the shared guarded code paths.