Skip to content

feat(board): add support for ES3C28P 2.8" display board and fix IDF build environment - #372

Open
TeslaDeathStar wants to merge 3 commits into
GhostESP-Revival:Development-dekifrom
TeslaDeathStar:feature/add-ES3C28P-display-support
Open

feat(board): add support for ES3C28P 2.8" display board and fix IDF build environment#372
TeslaDeathStar wants to merge 3 commits into
GhostESP-Revival:Development-dekifrom
TeslaDeathStar:feature/add-ES3C28P-display-support

Conversation

@TeslaDeathStar

Copy link
Copy Markdown

Added hardware support and build target configuration for the ES3C28P 2.8" ESP32-S3 touch display module along with build script environment fixes.

What's new (Author - fill this out)

  • Added ES3C28P build target configuration (configs/sdkconfig.ES3C28P) along with FT6X36 touch display driver integration.
  • Added additional build target profiles (Cardputer ADV, Marauder V8, Marauder Pancake).

Changed

  • Enhanced build environment setup in build.py by prepending standard tool installation paths (/opt/homebrew/bin, /usr/local/bin, CMake) to PATH.
  • Fixed esptool executable resolution and parameter formatting for merging flash binaries across ESP-IDF virtual environments.

Removed

  • None

Verification (Author - fill this out)

  • I have tested Primary device(s) (list exact HW + config): ES3C28P (ESP32-S3 2.8" Touch Display)
  • I have tested potentially affected devices (and/or list potential affected devices not available to you): N/A (tested local build environment and binary merging for ESP32/ESP32-S3/ESP32-C5 targets)
  • I have wrapped device specific code with #ifdef CONFIG_... or similar: [x] Yes / [ ] N/A
  • I have updated Hugo Docs with any new or changed info for end users: [ ] Yes / [x] N/A

Linked Issues

  • N/A

Checklist (Reviewer - don't fill this out)

  • Code builds, flashes, and feature verified with no functional issues on listed device(s)
  • Changes reviewed for unintended impact on other devices/targets

…nd add new build targets

Added hardware support and build target configuration for the ES3C28P 2.8" ESP32-S3 touch display module.

Key Changes:
- Added `ES3C28P` build target configuration (`configs/sdkconfig.ES3C28P`) along with FT6X36 touch display driver integration.
- Included additional target profiles (`Cardputer ADV`, `Marauder V8`, `Marauder Pancake`).
- Enhanced build environment setup in `build.py` by prepending standard tool installation paths (`/opt/homebrew/bin`, `/usr/local/bin`, CMake) to `PATH`.
- Fixed `esptool` executable resolution and parameter formatting for merging flash binaries across ESP-IDF virtual environments.
@netlify

netlify Bot commented Aug 1, 2026

Copy link
Copy Markdown

Deploy Preview for ghostespdocs canceled.

Name Link
🔨 Latest commit fee3f21
🔍 Latest deploy log https://app.netlify.com/projects/ghostespdocs/deploys/6a72d5f835571b00080b1a2a

else if (strcmp(Selected_Option, "Connect to WiFi") == 0) {
keyboard_view_set_submit_callback(wifi_connect_kb_cb);
keyboard_view_set_placeholder("WiFi SSID");
keyboard_view_set_initial_text("");

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

this would prevent users from using the correct syntax when entering in credentials

#endif
}

static void sd_card_apply_board_defaults(void) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

this should be set in the config not in a new function

static void sd_card_report_mount_failure(const char *mode, esp_err_t err) {
char msg[96];
if (err == ESP_FAIL) {
snprintf(msg, sizeof(msg), "SD %s FS fail: use FAT32", mode);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

we don't know it failed because of wrong partition format this should be removed or changed to a different message

toast_show("WiFi lost", TOAST_WARN);
TickType_t now = xTaskGetTickCount();
if (wifi_last_lost_toast == 0 ||
now - wifi_last_lost_toast > pdMS_TO_TICKS(30000)) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

why?

Comment thread main/idf_component.yml
version: ^1.0.1
rules:
- if: target in ["esp32s3"]
- if: "target in [esp32s3] && CONFIG_WITH_ETHERNET == True"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

s3 builds seem to work fine, is this necessary and does it evaluate correctly?

@jaylikesbunda

Copy link
Copy Markdown
Member

if we could keep it to just the new config and only what's necessary for that config and anything else you want to add or change should be moved to another pull request. this looks pretty messy as is

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.

2 participants