From 534fe86c5cbdf2427c4ba77aa1f3c3b149df202a Mon Sep 17 00:00:00 2001 From: Brandon Price Date: Wed, 17 Jun 2026 20:12:44 -0400 Subject: [PATCH 1/3] Map Inkplate 6COLOR panel_ic_type 0x0043 -> EP585C_600x448 - mapEpd(): add case 0x0043 returning the new bb_epaper 7-color panel. Pins/resolution/color_scheme come from runtime device config; set color_scheme=4 (4bpp) so the ACeP data path (same as EP73) is used. - platformio.ini: temporarily point bb_epaper at the fork branch that defines EP585C_600x448; revert once merged upstream. Co-Authored-By: Claude Opus 4.8 --- platformio.ini | 6 ++++-- src/display_service.cpp | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/platformio.ini b/platformio.ini index 31b7b71..d3e45d2 100644 --- a/platformio.ini +++ b/platformio.ini @@ -3,8 +3,10 @@ extra_configs = platformio.local.ini [env] -lib_deps = - https://github.com/bitbank2/bb_epaper.git +lib_deps = + ; Inkplate 6COLOR work: use the fork branch that adds EP585C_600x448. + ; Revert to bitbank2/bb_epaper once the panel is merged upstream. + https://github.com/brandon-dacrib/bb_epaper.git#inkplate-6color-panel [env:nrf52840custom] build_flags = diff --git a/src/display_service.cpp b/src/display_service.cpp index 73c63c0..709b1e0 100644 --- a/src/display_service.cpp +++ b/src/display_service.cpp @@ -271,6 +271,7 @@ int mapEpd(int id){ case 0x0041: return EP_PANEL_UNDEFINED; // bb_epaper 2.1.9 does not define the 13.3" EP133 panel yet. case 0x0042: return EP_PANEL_UNDEFINED; + case 0x0043: return EP585C_600x448; // Inkplate 6COLOR (ACeP 7-color, UC8159) default: return EP_PANEL_UNDEFINED; } } From 0bf097030770359ab01f47cf0236c4b72bf50abc Mon Sep 17 00:00:00 2001 From: Brandon Price Date: Wed, 17 Jun 2026 22:34:53 -0400 Subject: [PATCH 2/3] Revert local bb_epaper fork-pin; keep only the mapEpd change for upstream Co-Authored-By: Claude Opus 4.8 --- platformio.ini | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/platformio.ini b/platformio.ini index d3e45d2..31b7b71 100644 --- a/platformio.ini +++ b/platformio.ini @@ -3,10 +3,8 @@ extra_configs = platformio.local.ini [env] -lib_deps = - ; Inkplate 6COLOR work: use the fork branch that adds EP585C_600x448. - ; Revert to bitbank2/bb_epaper once the panel is merged upstream. - https://github.com/brandon-dacrib/bb_epaper.git#inkplate-6color-panel +lib_deps = + https://github.com/bitbank2/bb_epaper.git [env:nrf52840custom] build_flags = From 909a9539674df0bed71c5f92a1e9981c3873feb8 Mon Sep 17 00:00:00 2001 From: Brandon Price Date: Wed, 17 Jun 2026 23:33:59 -0400 Subject: [PATCH 3/3] getBitsPerPixel: treat color_scheme 8 (BWGBRYO 7-color ACeP) as 4bpp The Inkplate 6COLOR uses the new 7-color scheme (value 8); like BWGBRY (4) it packs 4 bits/pixel. The host (py-opendisplay/epaper-dithering) reads this color_scheme and selects the BWGBRYO palette whose color order matches the panel's native nibbles. Co-Authored-By: Claude Opus 4.8 --- src/display_service.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/display_service.cpp b/src/display_service.cpp index 709b1e0..9ca9ba3 100644 --- a/src/display_service.cpp +++ b/src/display_service.cpp @@ -1111,7 +1111,8 @@ int getBitsPerPixel() { return 4; } #endif - if (globalConfig.displays[0].color_scheme == 4) return 4; + if (globalConfig.displays[0].color_scheme == 4) return 4; // BWGBRY 6-color + if (globalConfig.displays[0].color_scheme == 8) return 4; // BWGBRYO 7-color ACeP (Inkplate 6COLOR) if (globalConfig.displays[0].color_scheme == 3) return 2; if (globalConfig.displays[0].color_scheme == 5) return 2; return 1;