Skip to content

Add Inkplate 6COLOR (EP585C_600x448) ACeP 7-color panel#33

Closed
brandon-dacrib wants to merge 2 commits into
bitbank2:mainfrom
brandon-dacrib:inkplate-6color-panel
Closed

Add Inkplate 6COLOR (EP585C_600x448) ACeP 7-color panel#33
brandon-dacrib wants to merge 2 commits into
bitbank2:mainfrom
brandon-dacrib:inkplate-6color-panel

Conversation

@brandon-dacrib

@brandon-dacrib brandon-dacrib commented Jun 18, 2026

Copy link
Copy Markdown

Summary

Adds support for the Soldered Inkplate 6COLOR panel — a 5.85", 600×448, 7‑color ACeP display (black/white/red/green/blue/yellow/orange) driven by a UC8159 (UC81xx family) controller.

It's the same old‑generation ACeP technology as the existing EP73_800x480, so this follows that entry closely:

  • EP585C_600x448 enum constant
  • epd6color_init — full init sequence transcribed from Soldered's Inkplate‑Arduino‑library (Inkplate6COLORDriver.cpp), at 600×448
  • u8Colors_6color — color table remapping the logical BBEP_* colors to the 6COLOR's native nibble codes (green=2, blue=3, red=4, yellow=5), which differ from EP73's order
  • panelDefs row wiring it as BBEP_7COLOR / BBEP_CHIP_UC81xx
  • examples/inkplate_6color_test — a labeled 7‑color‑bar test sketch

Testing

  • Compiles for esp32:esp32:esp32 via the four_color and new example.
  • Hardware‑verified on a real Inkplate 6COLOR: the test sketch renders all seven colors in the correct positions matching their labels, confirming epd6color_init and the u8Colors_6color remap. (Sequence: fillScreen/draw → writePlane()refresh(); the 7‑color framebuffer is allocated in PSRAM.)

Related

🤖 Generated with Claude Code

brandon-dacrib and others added 2 commits June 17, 2026 19:54
New panel entry for the Soldered Inkplate 6COLOR (5.85in, 600x448, 7-color
ACeP, UC8159 controller):

- EP585C_600x448 enum constant
- epd6color_init: full init transcribed from SolderedElectronics'
  Inkplate-Arduino-library (Inkplate6COLORDriver.cpp), 600x448 resolution
- u8Colors_6color: color table remapping bb_epaper logical colors to the
  6COLOR panel's native nibble codes (green=2/blue=3/red=4/yellow=5),
  which differ from EP73's order
- panelDefs row wiring it as BBEP_7COLOR / BBEP_CHIP_UC81xx

Compiles for esp32:esp32:esp32 via the four_color example.
Not yet hardware-verified (color nibble packing order and post-reset
BUSY polarity to be confirmed on a real panel).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Verification example for EP585C_600x448: draws one labeled bar per ACeP
color and refreshes. Confirmed on real hardware that colors render in the
correct positions, validating epd6color_init + the u8Colors_6color remap.

Note the required sequence: fillScreen/draw -> writePlane() -> refresh().

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@brandon-dacrib

Copy link
Copy Markdown
Author

Closing this because we are stopping the OpenDisplay path for Inkplate 6COLOR. The panel driver work was useful and hardware-verified, but OpenDisplay's client-push/direct-write model is a poor fit for this board: the ESP32 reset happens when firmware wakes/initializes the UC8159 during BLE DIRECT_WRITE_START. A robust OpenDisplay fix would require a larger direct-write buffering redesign, while Soldered's ESPHome component already matches the board better with a local framebuffer and local wake/write/refresh/sleep cycle: https://github.com/SolderedElectronics/Soldered-Inkplate-ESPHome. Also noting the overlapping Soldered-origin panel support in #30. Thanks, and sorry for the noise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant