Skip to content

diy: add support for Waveshare Touch LCD 3.5 - #330

Closed
bota87 wants to merge 1 commit into
Blockstream:masterfrom
bota87:waveshare-touch-lcd-35
Closed

bota87 wants to merge 1 commit into
Blockstream:masterfrom
bota87:waveshare-touch-lcd-35

Conversation

@bota87

@bota87 bota87 commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Adds diy support for the Waveshare ESP32-S3-Touch-LCD-3.5 (esp32s3, 480x320 ST7796 display, FT6336 touch, AXP2101 pmu, and an OV5640 camera on the -C version). It follows the existing Touch LCD 2 support, with the same three virtual buttons along the bottom of the screen.

Tested on the hardware: display, touch, QR scanning, brightness, battery level and charging.

On this board the touch controller, the camera sccb and the pmu are all on the same two i2c pins, so the touchscreen owns the only bus on them and the pmu and the camera attach to it (the camera the same way as the T-Display S3 Pro). The camera.c changes only apply to this board.

The 3.5B variant uses a different (QSPI) display controller and is not supported (#243).

@jgriffiths

Copy link
Copy Markdown
Collaborator

Thanks - this may have to sit for a bit while we push the next release out. Will try to get to it soon, thanks.

@bota87
bota87 force-pushed the waveshare-touch-lcd-35 branch from 83e6165 to 23a6e93 Compare September 13, 2026 09:22
@bota87
bota87 force-pushed the waveshare-touch-lcd-35 branch from 23a6e93 to db3bd30 Compare September 20, 2026 19:59
Comment thread diy/img/ws-touch-lcd35.jpg Outdated
Comment thread main/power/wslcdtouch35.inc
Comment thread main/camera.c Outdated
Comment thread main/power.c Outdated
@bota87
bota87 force-pushed the waveshare-touch-lcd-35 branch from db3bd30 to 2656c9e Compare September 20, 2026 22:28
@jgriffiths

Copy link
Copy Markdown
Collaborator

Thanks, looking good. This will need a rebase and testing on v5.5.5 when I push that to master in the next few hours.

For the touchscreen change I'll defer to @cateim and @oroderico to review when they get time, to make sure it doesn't break their touchscreen devices.

@bota87

bota87 commented Sep 21, 2026

Copy link
Copy Markdown
Contributor Author

Rebased on master (IDF v5.5.5) and tested again on the hardware

ESP32-S3 board with a 3.5inch 480x320 capacitive touch display
(ST7796/FT6336), OV5640 camera and AXP2101 pmu.

The touch controller, the pmu and the camera sccb share the same i2c pins,
so the touchscreen owns the only bus on them and both the pmu and the camera
attach to it, as done for the T-Display S3 Pro camera.

The 3.5B variant uses a different (QSPI) display controller and is not
supported.
@bota87
bota87 force-pushed the waveshare-touch-lcd-35 branch from 6fbb487 to ff6f5ec Compare September 21, 2026 22:45
@bota87

bota87 commented Sep 21, 2026

Copy link
Copy Markdown
Contributor Author

I changed how the shared i2c pins are handled: the camera now reuses the touchscreen bus, so the camera.c change only applies to this board and there is nothing to check on other touchscreen devices anymore. Description updated.

@jgriffiths jgriffiths left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Looks good, I can merge once the below review comment is addressed thanks.

Comment thread main/camera.c
@cateim

cateim commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Thanks, looking good. This will need a rebase and testing on v5.5.5 when I push that to master in the next few hours.

For the touchscreen change I'll defer to @cateim and @oroderico to review when they get time, to make sure it doesn't break their touchscreen devices.

Thanks for the ping @jgriffiths. I don't have the Touch LCD 3.5, so I can't test the board itself, but I checked the current head (ff6f5ec) against master: resolving CONFIG_BOARD_TYPE_WS_TOUCH_LCD35 as unset, every shared file (camera.c, touchscreen.inc, display.h, display_hw.c, power.c, both dashboard.c, ota_defines.h and Kconfig.projbuild) comes out identical to master. So nothing changes for my Touch LCD 2 or any other touchscreen board, no objections from me.

One heads-up on rolling this into the CONFIG_BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA block: CONFIG_DISPLAY_TOUCHSCREEN_I2C depends on DISPLAY_TOUCHSCREEN, which the T-Display S3 Pro Camera config doesn't enable, so the symbol isn't generated for that board and using it there unguarded won't compile.

@jgriffiths

Copy link
Copy Markdown
Collaborator

Merged with rebase/formatting changes, closing thanks!

@jgriffiths jgriffiths closed this Sep 23, 2026
@bota87
bota87 deleted the waveshare-touch-lcd-35 branch September 23, 2026 17:58
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.

3 participants