github Sichroteph/YACP v1.6.2-yacp
YACP 1.6.2-yacp: current-generation X3 display support

3 hours ago

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:

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-tiny and 1.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.

Don't miss a new YACP release

NewReleases is sending notifications on new releases.