YACP 1.6.2-yacp
Important update for recent X3 devices
This release adds automatic support for newer X3 production runs that use a UC8279d display controller instead of
the original UC8253. Installing the previous stable release on one of these devices could leave the display blank or
frozen because it selected the original X3 driver.
The 1.6.2-yacp.19 validation build was confirmed working by a user on a recent-production X3. The final release is
built from the same firmware source. Only the public version and changelog metadata changed after that hardware test.
Recent X3 owners should install this release instead of 1.6.1-yacp.
Download firmware
Both builds support X3 and X4. Choose the font-size set you prefer:
- Download Tiny, recommended: 10, 12, 14, and 16 pt
- Download XLarge: 16, 18, and 20 pt
- SHA-256 checksums
Added
- Added a dedicated UC8279d display driver and automatic UC8253/UC8279d detection for newer X3 production runs,
preventing the blank or frozen display caused by driving the new controller as an original X3. - Added experimental runtime detection and driver selection for newer X4 UC8179 and UC8279 controller variants.
These paths are compiled into the shared X3/X4 firmware but have not yet been validated on matching X4 hardware. - Reading Rhythm now shows the exact reading time for each of the last seven days, making day-to-day comparisons
visible alongside the longer-term activity history.
Changed
- Renamed Sunlight Fading Fix to Display Power Saving and enabled it by default for new settings. Multi-pass
grayscale refreshes now keep the display powered only until their final pass, avoiding intermediate power cycles. - Text anti-aliasing is now enabled by default for new settings and for the YACP first-run profile. Existing saved
preferences remain unchanged. - The original UC8253 X3 now performs one required startup clean instead of forcing another full synchronization on
the first real screen after the splash, removing that redundant long refresh while preserving the wake cleanup.
Fixed
- Aligned X3 controller selection with CrossPoint's proven boot sequence: power rails are asserted first, the base X3
profile is selected before probing, retained RESET pin holds are released, and the live result is applied before
hardware SPI initialization. - Removed the experimental cached controller fallback, which could permanently select UC8253 after one failed probe
and keep the display frozen on a UC8279d X3. - Restored CrossInk's text anti-aliasing mapping for YACP: dark-gray and light-gray glyph edge pixels are written to
the same grayscale planes on X3 and X4, without the YACP-specific high-contrast reduction. - Corrected the original UC8253 X3 grayscale waveform so the white-to-black transition remains passive during the
gray nudge, reducing blotchy noise in gray areas. - Hardened X4 grayscale-to-black-and-white transitions and deep-sleep baseline handling so later differential
refreshes do not reuse grayscale planes as the previous black-and-white frame. - One-bit images and icons drawn at non-byte-aligned horizontal positions now land on the requested pixel instead of
shifting to the preceding eight-pixel boundary. Widths not divisible by eight also retain their final pixels.
Validation
- The official GitHub workflow compiled Tiny and XLarge successfully from commit
aa986ab. - Embedded versions:
1.6.2-yacp-tinyand1.6.2-yacp-xlarge. - Both ESP32-C3 images have valid checksums and validation hashes.
- Both images fit the OTA application partition: 942,816 bytes free for Tiny and 1,079,904 bytes free for XLarge.
- SHA-256 Tiny:
a415811f29a348f0a06c38303acc726102c006f7db6745e18aa2399555716043. - SHA-256 XLarge:
4679d63bce82198b66bd284dedfce8618a4afd2148ec83210976d9971eac1cdc.
The new X3 UC8279d path has been validated on affected hardware. The experimental X4 UC8179 and UC8279 paths still
need validation on matching X4 hardware.