Skip to content

Add Inkplate 6COLOR (7-color ACeP) support#88

Closed
brandon-dacrib wants to merge 3 commits into
OpenDisplay:mainfrom
brandon-dacrib:inkplate-6color-palette
Closed

Add Inkplate 6COLOR (7-color ACeP) support#88
brandon-dacrib wants to merge 3 commits into
OpenDisplay:mainfrom
brandon-dacrib:inkplate-6color-palette

Conversation

@brandon-dacrib

Copy link
Copy Markdown

Summary

Adds support for the Soldered Inkplate 6COLOR (600×448, 7-color ACeP, panel_ic_type 0x0043):

  • DISPLAY_PALETTE_MAP[(0x0043, ColorScheme.BWGBRYO)] = INKPLATE_6COLOR in display_palettes.py.
  • encode_image: handle ColorScheme.BWGBRYO as 4bpp. The palette is ordered to the panel's native nibbles, so indices map directly (identity), unlike BWGBRY which remaps.

Dependency

Requires the Bwgbryo scheme + INKPLATE_6COLOR palette from OpenDisplay/epaper-dithering#43.

Testing

Validated end-to-end on real hardware via the CLI: provisioned an Inkplate 6COLOR (panel_ic_type=0x0043, color_scheme=8, 600×448) and opendisplay upload rendered a dithered image — full transfer + ACeP refresh, correct geometry. Color fidelity depends on the (currently nominal) palette calibration tracked in #43.

Related

🤖 Generated with Claude Code

brandon-dacrib and others added 2 commits June 17, 2026 23:32
DISPLAY_PALETTE_MAP entry so upload_image dithers correctly for the 6COLOR.
Requires epaper-dithering with the Bwgbryo scheme + INKPLATE_6COLOR palette.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The BWGBRYO palette is ordered to the panel's native nibbles, so dither
indices 0..6 map directly (no remap, unlike BWGBRY). Packs 4bpp like the
other 4bpp schemes.

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

Copy link
Copy Markdown
Member

Please don't hardcore specific panels to a different color_scheme, if you look into the toolbox advanced view, I already reserved 7 for that

@jonasniesner jonasniesner marked this pull request as draft June 18, 2026 17:27
@brandon-dacrib

brandon-dacrib commented Jun 18, 2026

Copy link
Copy Markdown
Author

Oh. Fair. A little clarification. What is the right thing to do here technically?
Thanks. I want to align this with the protocol/toolbox convention before updating the PRs.

  1. Is color_scheme = 7 intended to be the generic 7-color ACeP/BWGBRYO mode, so I should replace my proposed BWGBRYO value 8 with 7?

  2. In py-opendisplay, is it OK to keep a measured palette lookup keyed by (panel_ic_type, color_scheme) for calibration, or should this PR avoid
    adding the Inkplate-specific (0x0043, BWGBRYO) -> INKPLATE_6COLOR mapping entirely?

I noticed epaper-dithering currently defines GRAYSCALE_8 as value 7, so I want to avoid changing the wrong protocol value.

@brandon-dacrib

Copy link
Copy Markdown
Author

Closing this because we are stopping the OpenDisplay path for Inkplate 6COLOR. This host-library mapping worked for the proof of concept, but production use would still depend on Firmware direct-write changes to avoid the BLE DIRECT_WRITE_START reset. Rather than carrying a partial OpenDisplay stack, we are moving Home Assistant integration to Soldered's ESPHome component: https://github.com/SolderedElectronics/Soldered-Inkplate-ESPHome.

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.

2 participants