Skip to content

feat: add Waveshare ESP32-C6-LCD-1.47 board support#800

Open
MainzelMennchen wants to merge 2 commits into
BitMaker-hub:mainfrom
MainzelMennchen:feat/waveshare-c6-lcd147
Open

feat: add Waveshare ESP32-C6-LCD-1.47 board support#800
MainzelMennchen wants to merge 2 commits into
BitMaker-hub:mainfrom
MainzelMennchen:feat/waveshare-c6-lcd147

Conversation

@MainzelMennchen

@MainzelMennchen MainzelMennchen commented Jul 8, 2026

Copy link
Copy Markdown

Summary

Adds support for the Waveshare ESP32-C6-LCD-1.47 board:

  • ESP32-C6, Single-Core RISC-V 160 MHz, 4 MB Flash, no PSRAM
  • ST7789 display, 172×320 px (landscape 320×172), SPI
  • WS2812 RGB LED on GPIO8, BOOT button on GPIO9

What's included

  • New PlatformIO environment ESP32-C6-LCD-147 using pioarduino platform (required for Arduino Core 3.x / ESP32-C6)
  • New device header waveshareC6LCD147.h and display driver waveshareC6LCD147Driver.cpp with landscape two-column layout
  • IDF 5.x / Arduino Core 3.x compatibility fixes:
    • TFT_eSPI: Route ESP32-C6 through the C3 processor path (TFT_eSPI_ESP32_C3.h/.c) with SPI_UPDATE register sync and correct SPI_PORT=2 register addressing. Fix MISO pin conflict on C6.
    • mbedtls 3.x: _ret suffix compat macros for sha256 functions
    • WDT: esp_task_wdt_init() config struct for IDF 5.x
    • NTP: Replace NTPClient with configTime() for IDF 5.x lwIP threading
    • I2C: Disable legacy I2C driver on C6 (not needed, conflicts with IDF 5.x)
    • Mining: Software SHA256 only (no HW SHA on C6), single-core task pinning via APP_CORE macro

Tested

  • Mining works at ~25 KH/s (software SHA256 on single-core 160 MHz RISC-V)
  • WiFi, Stratum pool connection, configuration persistence all working
  • Display renders correctly in landscape with two cyclic screens (Miner + Clock)
  • Verified: TTGO-T-Display (ESP32), ESP32-2432S028R (ESP32), ESP32-C3-spotpear (ESP32-C3) all still build successfully — TFT_eSPI changes are guarded by CONFIG_IDF_TARGET_ESP32C6

Test plan

  • Build ESP32-C6-LCD-147 environment
  • Flash and boot on Waveshare ESP32-C6-LCD-1.47 hardware
  • Verify display output (landscape, both screens)
  • Verify mining (pool connection, share submission)
  • Verify existing boards still compile (ESP32, ESP32-C3, ESP32-S3)

MainzelMennchen and others added 2 commits July 8, 2026 21:03
Port NerdMiner_v2 to ESP32-C6 with ST7789 172x320 display.
Includes IDF 5.x / Arduino Core 3.x compatibility fixes for
TFT_eSPI, mbedtls, WDT, NTP, I2C, and single-core task pinning.
Routes ESP32-C6 through TFT_eSPI's C3 processor path with
SPI_UPDATE and correct SPI_PORT=2 register addressing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Switch display to landscape (320x172) with two-column layout
- Restore SPI_FREQUENCY to 40MHz
- Restore original default_envs list with ESP32-C6-LCD-147 appended
- Remove throttling (user preference, not default)
- Remove CLAUDE.md (development-only file)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.

1 participant