fix: eliminate diagonal dither pattern from display driver

Root cause: Panel_ED2208's epd_quality mode applies _dither_row_rgb_pair
(diagonal bias pattern with dither=140) during _exec_transfer(). Since our
ImagePipeline already does proper Floyd-Steinberg dithering, the driver's
additional dithering was creating visible diagonal artifacts.

Fix: setEpdMode(epd_fastest) selects _dither_row_none (clean nearest-color
lookup, no spatial bias). On Panel_ED2208 this only affects the dither
function — NOT refresh quality or waveform.

Also: default dither_noise setting to OFF since error scatter was targeting
the wrong layer (it made gradient areas fuzzier without fixing the real
problem in the display driver).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-03 19:52:22 -04:00
parent e9909c6dbf
commit 9e3092e4f4
20 changed files with 1100 additions and 138 deletions

View File

@@ -7,7 +7,9 @@ enum class CycleMode : uint8_t {
Random = 0,
Chronological = 1,
ReverseChronological = 2,
FavoritesWeighted = 3
FavoritesWeighted = 3,
WeightedChronological = 4,
WeightedReverseChronological = 5
};
enum class ImageQuality : uint8_t {
@@ -54,8 +56,13 @@ struct Settings {
String date_fmt; // strftime-style, default "%Y-%m-%d"
String time_fmt; // strftime-style, default "%H:%M:%S"
// Image pipeline
uint8_t pipeline_mode; // 0=dynamic, 1=balanced, 2=none
uint8_t dither_noise; // 1=blue noise dither smoothing ON, 0=OFF
// Device
uint8_t led_brightness;
uint8_t show_battery; // 1 = show battery indicator on display
uint32_t queue_cursor;
String albums_json;
};