Skip to content

[epaper_spi] Add UC8179 BWR support - #7498

Open
candrews wants to merge 6 commits into
esphome:nextfrom
candrews:uc8179-bwr
Open

candrews wants to merge 6 commits into
esphome:nextfrom
candrews:uc8179-bwr

Conversation

@candrews

@candrews candrews commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Description

Pull request in esphome with YAML changes (if applicable):

Checklist

  • I am merging into next because this is new documentation that has a matching pull-request in esphome as linked above.
    or

  • I am merging into current because this is a fix, change and/or adjustment in the current documentation and is not for a new component or feature.

  • Link added in /src/content/docs/components/index.mdx when creating new documents for new components or cookbook.

esphome[bot]
esphome Bot previously requested changes Oct 2, 2026

@esphome esphome Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As this is a feature matched with a PR in https://github.com/esphome/esphome, please target your PR to the next branch and rebase.

@esphome
esphome Bot marked this pull request as draft October 2, 2026 19:48
@esphome

esphome Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@candrews candrews changed the title Uc8179 bwr [epaper_spi] Add UC8179 BWR support Oct 2, 2026
esphome[bot]
esphome Bot previously requested changes Oct 2, 2026

@esphome esphome Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As this is a feature matched with a PR in https://github.com/esphome/esphome, please target your PR to the next branch and rebase.

@candrews
candrews changed the base branch from current to next October 2, 2026 19:49
@esphome esphome Bot added the next label Oct 2, 2026
@esphome
esphome Bot dismissed their stale review October 2, 2026 19:49

Base branch has been corrected - dismissing previous review.

@netlify

netlify Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for esphome ready!

Name Link
🔨 Latest commit c92690c
🔍 Latest deploy log https://app.netlify.com/projects/esphome/deploys/6ac00bed82be5d0008b9f76f
😎 Deploy Preview https://deploy-preview-7498--esphome.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@esphome
esphome Bot dismissed their stale review October 2, 2026 19:52

Base branch has been corrected - dismissing previous review.

@candrews
candrews marked this pull request as ready for review October 2, 2026 19:56
@esphbot

esphbot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

PR Review — [epaper_spi] Add UC8179 BWR support

Small, accurate docs addition for the UC8179 BWR panel. It can merge; the notes below are non-blocking.

The new invert_red option is in the Configuration Variables list in the existing style (bold key, italic Optional, type, default), and it explains the panel behaviour behind it (OTP waveforms with inverted red encoding). The PR targets next, which is correct because it has a matching esphome PR.

  • New panel row sits after WeAct-* instead of in alphabetical order, and the Various manufacturer and bare part numbers need a short explanation
  • The invert_red text says "e.g." for supported models; it should name them and give the default for each (could not be checked against esphome#19654)
  • Should the new UC8179 model be added to the busy-pin inverted: true note, as Waveshare-7.5in-V2 is? (could not be checked)
  • UC8179 controller link uses the description as link text and points to a reseller-hosted PDF

🟢 Suggestions

1. New panel row is out of order and breaks the naming pattern
src/content/docs/components/display/epaper_spi.mdx:60

The rest of the "Supported display panels" table is sorted alphabetically by display name (GooDisplay, Waveshare, WeAct). This row is added at the end, so 7.5in-bv3-bwr-xsrupb comes after WeAct-4.2in-3c. Readers who scan the table for a model name will expect it at the top.

Every other panel row also names a real manufacturer and either links to a product page or gives a short description. Here the manufacturer is Various, and the part numbers are listed with no explanation. One clause would help, for example: "Generic 7.5" BWR panel sold under part numbers FPC-8612 / DEPG0750RWF86BF30 / XSRUPB-2025". That tells users how to recognise their panel, which matters more here because the model name does not identify a vendor.

The row is also longer than the 120-character limit in CONTRIBUTING.md. Several existing rows already break that limit, so this is minor.

Fix: move the row to the top of the table (or wherever the model sorts) and add a short note explaining what the part numbers mean.

| 7.5in-bv3-bwr-xsrupb      | Various             | 7.5" 3-color e-paper (800x480, UC8179) - FPC-8612, DEPG0750RWF86BF30, XSRUPB-2025 |
2. `invert_red` description does not say which models accept it or what the default is elsewhere
src/content/docs/components/display/epaper_spi.mdx:114-116

"Only available for models that support it (e.g. 7.5in-bv3-bwr-xsrupb)" does not tell users which models those are. If someone sets invert_red on a model that does not support it, they will get a config error and the docs will not explain why. The text gives the default only for 7.5in-bv3-bwr-xsrupb, so the default for any other supported model is unknown.

I could not check this against esphome/esphome#19654 from this checkout. If 7.5in-bv3-bwr-xsrupb is the only model that accepts the option, say so directly, for example: "Only supported by the 7.5in-bv3-bwr-xsrupb model, where it defaults to true." If more models accept it, list them and give the default for each.

Also consider saying when a user would change it: "Set to false if red areas render as white and white areas as red." Users usually reach this option from a symptom like that, not from knowing their panel's OTP encoding.

- **invert_red** (*Optional*, boolean): Invert the red color plane. Some BWR e-paper panels with OTP waveforms use
  inverted red encoding (0 = red, 1 = no red). Only available for models that support it (e.g. `7.5in-bv3-bwr-xsrupb`).
  Defaults to `true` for the `7.5in-bv3-bwr-xsrupb` model.
3. UC8179 link uses the description as link text and points to a reseller's PDF
src/content/docs/components/display/epaper_spi.mdx:39

Other rows in the controller table either link with the URL as the link text or have no link. This row turns the whole description into the link text, which reads differently from the rows around it.

The target is a datasheet hosted by buydisplay.com, a reseller, rather than by UltraChip. Reseller download paths tend to move, so the link is more likely to break than a manufacturer URL.

Fix: keep the description as plain text and add the link after it (for example ... variants). [Datasheet](https://www.buydisplay.com/download/ic/UC8179.pdf)). This change is not needed for the BWR feature, so it can also be dropped from this PR.

| UC8179                 | UltraChip    | [E-paper controller used by 800x480 7.5" panels (mono and 3-color variants)](https://www.buydisplay.com/download/ic/UC8179.pdf) |

Checklist

  • Targets correct branch (next for new feature)
  • Configuration variable formatting follows CONTRIBUTING.md
  • Option description is complete (applicability and defaults) — suggestion #2
  • Tables are consistently ordered and formatted — suggestion #1, suggestion #3
  • No hardcoded secrets

Automated review by Kōan (Claude) HEAD=c92690c 50s

@esphbot esphbot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

No blocking issues found — ready to merge.

@candrews

candrews commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author
  • Should the new UC8179 model be added to the busy-pin inverted: true note, as Waveshare-7.5in-V2 is? (could not be checked)

No, it should not.

This branch has not been deployed

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants