Skip to content

meshnology-w10: define HAS_SPI_TFT so the TFT screen initializes again#11042

Open
zelo533 wants to merge 1 commit into
meshtastic:developfrom
zelo533:fix-meshnology-w10-screen
Open

meshnology-w10: define HAS_SPI_TFT so the TFT screen initializes again#11042
zelo533 wants to merge 1 commit into
meshtastic:developfrom
zelo533:fix-meshnology-w10-screen

Conversation

@zelo533

@zelo533 zelo533 commented Jul 17, 2026

Copy link
Copy Markdown

What

One-line fix: the Meshnology W10 variant never defines HAS_SPI_TFT, so on current develop the board boots with a dark screen.

Why

#10803 refactored main.cpp to key SPI-TFT Screen creation on HAS_SPI_TFT instead of the long per-controller define list. The W10 variant (#10911) was written before that refactor and the two crossed mid-air: the variant defines USE_TFTDISPLAY/ST7789_CS but not HAS_SPI_TFT, so screen creation falls through to the I2C-OLED autodetect branch, finds no I2C display, and never constructs a Screen. Radio/GPS/BLE are unaffected — only the display silently dies, with nothing in the log.

Testing

Verified on a real W10 AIOT Dev Kit (ST7789 1.54" panel): without this define the boot log contains no display init at all; with it, Make TFTDisplay!Power to TFT Backlight → boot screen → standard UI frames, and the panel renders correctly. Radio (SX1262 via the MCP23017 expander), GPS, sensors and BLE unchanged.

🤝 Attestations

  • I have tested that my proposed changes behave as described.
  • I have tested that my proposed changes do not cause any obvious regressions on the following devices:
    • Heltec (Lora32) V3
    • LilyGo T-Deck
    • LilyGo T-Beam
    • RAK WisBlock 4631
    • Seeed Studio T-1000E tracker card
    • Other (please specify below)

Tested on: Meshnology W10 AIOT Dev Kit. The change is scoped to variants/esp32s3/meshnology-w10/variant.h, which no other target includes, so other devices are structurally unaffected.

🤖 Generated with Claude Code

https://claude.ai/code/session_013ucb95usrWhoUUPZzxi1SJ

Summary by CodeRabbit

  • New Features
    • Enabled support for SPI TFT displays on the Meshtastic W10 variant.

meshtastic#10803 refactored main.cpp to key SPI-TFT Screen creation on HAS_SPI_TFT
instead of the per-controller define list. The W10 variant (meshtastic#10911) was
written before that refactor and crossed it mid-air, so it never defines
HAS_SPI_TFT and develop builds fall through to the I2C-OLED autodetect
branch: no Screen is ever constructed and the display stays dark, while
everything else (radio, GPS, BLE) works.

Verified on a real W10: with the define, the boot log shows TFTDisplay
creation, backlight power-on and the boot screen, and the ST7789 panel
renders the UI again.
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 7471b2e4-9641-4f5b-9f05-e30ba87db63d

📥 Commits

Reviewing files that changed from the base of the PR and between 8ebdae9 and 44ab1ec.

📒 Files selected for processing (1)
  • variants/esp32s3/meshnology-w10/variant.h

📝 Walkthrough

Walkthrough

The meshnology-w10 ESP32-S3 variant now defines HAS_SPI_TFT as 1, enabling conditional SPI TFT handling.

Changes

SPI TFT capability

Layer / File(s) Summary
Enable SPI TFT flag
variants/esp32s3/meshnology-w10/variant.h
Adds the HAS_SPI_TFT compile-time capability macro.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Possibly related PRs

Suggested reviewers: thebentern

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly states the W10 variant change that re-enables TFT initialization.
Description check ✅ Passed The description covers what changed, why it was needed, how it was tested, and includes the required attestations.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

@zelo533, Welcome to Meshtastic!

Thanks for opening your first pull request. We really appreciate it.

We discuss work as a team in discord, please join us in the #firmware channel.
There's a big backlog of patches at the moment. If you have time,
please help us with some code review and testing of other PRs!

Welcome to the team 😄

@thebentern

Copy link
Copy Markdown
Contributor

Thanks for the PR. Can you please run trunk fmt

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