Request: Support for ESP32-D0WD-V3 board with 3.5" ST7796 TFT + XPT2046 touch (4 MB flash, no PSRAM) ESP32-3248S035R — Bruce firmware (screen shows only one quarter + touch issues)
Hello 👋
Please add support/adaptation for my board specifically for the Bruce firmware. The current Bruce binary shows two critical problems on this hardware: the display is rendered only in one quarter of the screen (only one quadrant visible / most of the area blank or clipped), and the resistive touch behaves incorrectly (misaligned/noisy touches). I request a board/profile and build config that fits this hardware so Bruce runs correctly.
Hardware & radios ESP32-3248S035R ╠════════════════════════════════════════════════════════════════════╣ ║ PROCESSOR: ║ ║ • Model: ESP32-D0WD-V3 (rev 3.1) ║ ║ • Frequency: 240 MHz (Dual-Core) ║ ║ • Flash: 4 MB ║ ║ • RAM: 320 KB SRAM ║ ║ ║ ╠════════════════════════════════════════════════════════════════════╣ ║ DISPLAY: ║ ║ • Size: 3.5" ║ ║ • Driver: ST7796 ║ ║ • Resolution: 320x480 ║ ║ • Backlight: GPIO 27 ║ ║ ║ ╠════════════════════════════════════════════════════════════════════╣ ║ TOUCHSCREEN: ║ ║ • Type: Resistive (4-wire) ║ ║ • Driver: XPT2046 ║ ║ • CS: GPIO 33, IRQ: GPIO 32 ║ ║ ║ ╠════════════════════════════════════════════════════════════════════╣ ║ SD CARD: ║ ║ • CS: GPIO 5 ║ ║ ║ ╠════════════════════════════════════════════════════════════════════╣ ║ RGB LED: ║ ║ • Red: GPIO 4, Green: GPIO 16, Blue: GPIO 17 ║ ╚════════════════════════════════════════════════════════════════════╝
{ "device": "ESP32-3248S035R", "status": "FULLY FUNCTIONAL", "display": { "driver": "ST7796", "pins": {"MISO":12,"MOSI":13,"SCLK":14,"CS":15,"DC":2,"RST":4,"BL":27} }, "touch": { "driver": "XPT2046", "working": true, "pins": {"CS":33,"IRQ":32} }, "sd": { "working": true, "size_mb": 3724, "pin": {"CS":5} }, "led": {"R":4,"G":16,"B":17} }
What I ask (for Bruce)
Add a Bruce board/profile and build configuration for 4 MB flash without PSRAM.
Fix display rendering so the full 320×480 area is used (no quadrant clipping/scaling).
Verify ST7796 driver settings in Bruce (SPI params, orientation, resolution, initialization) and ensure correct mapping.
Verify XPT2046 touch driver for correct calibration / shared SPI CS handling and IRQ.
Note/handle the GPIO4 (TFT_RST) — LED_RED conflict (document workaround or avoid toggling reset).
Why: the current Bruce binary renders the screen incorrectly (only one quarter visible) and touch is misaligned/noisy on this hardware. I can test builds and provide serial logs / photos.
Thanks!
Custom non commercial boards are not supported officially..
You need to build the firmware locally and make the changes yourself to make the screen works perfectly and touchscreen mapping to all the touch area..
I suggest you change the ./boards/phantom/ build in order to adapt to your reality..
Make the changes into the boards/phantom/phantom.ini to match your pinouts, screen driver and display sizes
Make the changes on boards/phantom/interface.cpp to make touchscreen to work with your resolution and map the results to the right places
Пользовательские некоммерческие доски официально не поддерживаются.
Вам необходимо создать прошивку локально и самостоятельно внести изменения, чтобы экран работал идеально, а сенсорный экран отображался на всех сенсорных поверхностях.
Я предлагаю вам изменить сборку ./boards/phantom/, чтобы она соответствовала вашим реалиям.
Внесите изменения в boards/phantom/phantom.ini в соответствии с распиновкой, драйвером экрана и размерами дисплея.
Внесите изменения в boards/phantom/interface.cpp, чтобы сенсорный экран работал с вашим разрешением и отображал результаты в нужных местах.
Thank you, I understand. Are there any other notes or recommendations about what else I should change for correct operation? For example, are there any specific libraries that I should use, or any important remarks regarding compilation that are critical for a successful build?
Clone the repo, and follow the instructions on the Wiki..
All libs and stuff are already on the project
Clone the repo, and follow the instructions on the Wiki..
All libs and stuff are already on the project
No, unfortunately, it doesn’t work. I’ve tried every possible option, but there are tons of compilation errors, dependency issues, and it keeps asking for countless new modifications. This is the worst option. Maybe there’s an easier way or some practical dynamic tips that could actually help with adapting the firmware for my board.