Skip to content

add support for waveshare touch lcd 1.83in - #30

Open
CooperWaNg-py wants to merge 1 commit into
SneezeGUI:mainfrom
CooperWaNg-py:waveshare
Open

CooperWaNg-py wants to merge 1 commit into
SneezeGUI:mainfrom
CooperWaNg-py:waveshare

Conversation

@CooperWaNg-py

Copy link
Copy Markdown

No description provided.

@SneezeGUI

Copy link
Copy Markdown
Owner

Thanks for this, @CooperWaNg-py! The BUTTON_PIN >= 0 generalization for buttonless boards is genuinely useful. A few things before it can merge:

  1. Please don't change default_envs — the PR flips the default build for everyone to waveshare-s3-lcd183; please revert it to esp32-2432s028.
  2. Display geometry looks off — it's declared 240×284 / "ST7789P", but the 1.83" panel is a ~240×280 ST7789-family controller (likely ST7789T3). 284 isn't a standard height, so the image will probably be shifted/clipped.
  3. Touch is non-functionalTOUCH_*/CST816 pins are defined but there's no CST816 driver, so the "touch" in the title does nothing yet. Either wire up a driver or drop the touch defines for now.
  4. This is an ESP32-S3 board with USE_HARDWARE_SHA=1, so it inherits the share-validation bug (ESP32S3: S3 share validation - SW verify=FAIL hash[28-31] #28). Please base it on fix(s3): mine first SHA in software to fix zero-shares (#28, #10, #5) #36 (the S3 mining fix) so it actually submits shares.
  5. Minor: the AXP2101 register sequence is unverified, a couple of AXP2101_* macros are unused, and there's no README/CHANGELOG entry.

Happy to help rebase onto the S3 fix once #36 lands. (BTW your #29 captive-portal report is addressed separately in #37.)

@SneezeGUI

Copy link
Copy Markdown
Owner

Following up on my May review — no pressure, but here's where things stand.

First, a correction on my end: I checked the Waveshare wiki and the panel really is 240x284 ST7789 (CST816D touch, AXP2101 PMU), so your geometry matches the vendor spec — point 2 in my review was wrong. What's still unverified is TFT_eSPI on this panel: Waveshare's own demos use Arduino_GFX/LVGL, so offsets and backlight may need tuning, and I can't check that without hardware.

The remaining items:

  1. The branch no longer applies — it conflicts with main in platformio.ini (including the default_envs flip from point 1), board_config.h, and devtool.toml. The rebase is the bulk of the work left. All three conflicts are mechanical (adjacent additions).
  2. It has never been compiled in this repo (the branch predates our CI), so please run pio run -e waveshare-s3-lcd183 once after rebasing — I can add the env to the CI matrix once it exists on a rebased branch.
  3. The AXP2101 bits from point 5 still stand — unused AXP2101_* macros in board_config.h vs. the hardcoded 0x34 in main.cpp, and the 0xA2/0xA4 register writes are unverified against the datasheet. Waveshare's demos use XPowersLib — that'd be my suggestion over the hand-rolled Wire1 driver.
  4. Good news on timing: the S3 mining fix (fix(s3): mine first SHA in software to fix zero-shares (#28, #10, #5) #36) is merged now, so a rebased board target will mine valid shares out of the box instead of showing a fake counter.

If you're short on time I'm happy to do the rebase and cleanups myself and credit you — just say the word.

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