Skip to content

YACP 1.6.2-yacp.10 — experimental X3 UC8279d support

Pre-release
Pre-release

Choose a tag to compare

@Sichroteph Sichroteph released this 20 Aug 09:21

YACP 1.6.2-yacp.10 — experimental X3 UC8279d support

Warning

This is a hardware-validation pre-release. The new UC8279d X3 path has not yet been validated on matching hardware. Keep a known-good recovery firmware available and do not install this build unless you are comfortable testing pre-release firmware.

This build extends YACP to newer X3 production runs whose display uses a UC8279d controller instead of the original UC8253. The controller is detected before normal SPI initialization, and a conclusive result is cached for later boots.

Downloads

Both firmware variants support X3 and X4. The variant only changes the bundled font sizes:

  • Tiny — 10, 12, 14, and 16 pt; recommended for most users.
  • XLarge — 16, 18, and 20 pt.

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

  • 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.

Build validation

  • Tiny and XLarge builds completed successfully for ESP32-C3.
  • Embedded identities verified as 1.6.2-yacp.10-tiny and 1.6.2-yacp.10-xlarge.
  • ESP image checksums and validation hashes verified with esptool.
  • Tiny image: 5,611,344 bytes, leaving 942,256 bytes in the OTA partition.
  • XLarge image: 5,474,272 bytes, leaving 1,079,328 bytes in the OTA partition.

Hardware validation still required

  • Newer X3 with UC8279d: controller detection, first boot, full and partial refreshes, grayscale, sleep/wake, and recovery flashing.
  • Original X3 with UC8253: regression check for first-boot cleanup, grayscale, and sleep/wake.
  • X4 UC8179 and UC8279 variants: detection and refresh behavior on matching hardware.

SHA-256 checksums are provided in SHA256SUMS.txt.