Add LCDWiki 2.8" ESP32-S3 Display board (MARAUDER_LCDWIKI_28) - #1408
Open
pazyuk wants to merge 2 commits into
Open
Add LCDWiki 2.8" ESP32-S3 Display board (MARAUDER_LCDWIKI_28)#1408pazyuk wants to merge 2 commits into
pazyuk wants to merge 2 commits into
Conversation
Adds support for the LCDWiki 2.8" ESP32-S3 Display (https://www.lcdwiki.com/2.8inch_ESP32-S3_Display): ESP32-S3-WROOM-1 N16R8, 240x320 ILI9341V panel over SPI, FT6336 I2C capacitive touch, SDIO-wired microSD driven over SPI, WS2812 RGB LED, and a GPS/UART header. - configs.h: new MARAUDER_LCDWIKI_28 target — features, BOOT button, display block, touch/SD/GPS pins, menu geometry, and baked FT6336 touch calibration constants. - User_Setup_marauder_lcdwiki_28.h + User_Setup_Select.h: TFT_eSPI setup (ILI9341 driver, board pins, FSPI port to keep the TFT off the SD bus, BGR order). - Display.cpp: FT6336 touch coordinate calibration map, turn the onboard WS2812 (IO42) off, and an optional 2-point touch-calibration screen (compile with -DTOUCH_CAL) that prints fresh constants over serial. - SDInterface: make the existing HAS_SEPARATE_SD flag actually select the dedicated-SPI-bus init (it was listed in the inner branch but missing from the outer guard; this also enables it for MARAUDER_CYD_3_5_INCH), and hold the SDIO DAT1/DAT2 lines high while using the slot in SPI mode. - esp32_marauder.ino: when the console is USB CDC, don't block boot forever waiting for a host to open the port, so the board also runs off a powerbank/charger (and make CDC prints non-blocking). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Pinout (display / touch / SD / LED / USB), the broken-out UART and free expansion pins, Arduino IDE build settings, and notes (FAT32 SD, PWM backlight, FSPI/SD bus split, USB-CDC boot, touch re-calibration). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new board target,
MARAUDER_LCDWIKI_28, for the LCDWiki 2.8" ESP32‑S3 Displaymodule — an inexpensive all‑in‑one ESP32‑S3 board with a 240×320 IPS panel and capacitive touch.
docs/boards/LCDWiki_2.8inch_ESP32-S3.mdHardware
0x38(uses the existingft6336.h)What's included
configs.h– newMARAUDER_LCDWIKI_28target: features, BOOT button, display block,touch / SD / GPS pins, menu geometry, and baked FT6336 touch‑calibration constants.
User_Setup_marauder_lcdwiki_28.h+User_Setup_Select.h– TFT_eSPI setup(ILI9341 driver, board pins,
USE_FSPI_PORT, BGR).Display.cpp– FT6336 touch‑coordinate calibration map, turn the on‑board WS2812 (IO42)off, and an optional 2‑point touch‑calibration screen (
-DTOUCH_CAL) that prints freshconstants over serial.
SDInterface.cpp/.h– make the existingHAS_SEPARATE_SDflag actually select thededicated‑SPI‑bus init, and hold the SDIO
DAT1/DAT2lines high while using the slot in SPI mode.esp32_marauder.ino– when the console is USB‑CDC, don't block boot forever waiting for ahost to open the port (so the board also runs off a powerbank/charger).
docs/– board guide with the full pinout, free pins, build steps and gotchas.Pinout
Display (SPI/FSPI): SCLK 12 · MOSI 11 · MISO 13 · CS 10 · DC 46 · RST –1 · BL 45
Touch (I²C): SDA 16 · SCL 15 · RST 18 · INT 17(nc)
microSD (SPI on the SDIO slot): SCK 38 · MOSI 40 · MISO 39 · CS 47 (DAT1 41 / DAT2 48 held high)
Other: WS2812 RGB → 42 · BOOT → 0 · USB D+/D‑ → 20/19
Broken out & free: IO2, IO3, IO14, IO21 · I²C header 16/15 (shared with touch) · UART header 44/43 (GPS here)
Tested on hardware
Verified on the actual module:
Notes for reviewers
while(!Serial)change inesp32_marauder.inois gated onARDUINO_USB_CDC_ON_BOOT,so it only affects native‑USB‑CDC boards; UART‑console boards keep the original behaviour.
HAS_SEPARATE_SDto theSDInterfaceguards makes that flag finally reach thededicated‑SPI‑bus path. This also enables it for
MARAUDER_CYD_3_5_INCH(which alreadydefines
HAS_SEPARATE_SD); it looked like the outer guard just missed it, but worth a checkon that board.
Build (Arduino IDE)
#define MARAUDER_LCDWIKI_28inesp32_marauder/configs.h.User_Setup_marauder_lcdwiki_28.hinto the TFT_eSPI library and enable it inUser_Setup_Select.h.