From da47a4db419c89d87ac233e57f4ca23c9e2023b7 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2026 12:51:55 +0000 Subject: [PATCH 1/5] Add ESP32-S3 board with ILI9341 display and XPT2046 touch Create a new board model `esp32s3-ili9341-xpt2046` using LovyanGFX driver for the ILI9341 display (SPI2_HOST) and XPT2046 touch controller. Co-authored-by: silentproject2025 <193473405+silentproject2025@users.noreply.github.com> --- boards/esp32s3-ili9341-xpt2046/connections.md | 17 +++ boards/esp32s3-ili9341-xpt2046/interface.cpp | 138 ++++++++++++++++++ boards/esp32s3-ili9341-xpt2046/platformio.ini | 74 ++++++++++ 3 files changed, 229 insertions(+) create mode 100644 boards/esp32s3-ili9341-xpt2046/connections.md create mode 100644 boards/esp32s3-ili9341-xpt2046/interface.cpp create mode 100644 boards/esp32s3-ili9341-xpt2046/platformio.ini diff --git a/boards/esp32s3-ili9341-xpt2046/connections.md b/boards/esp32s3-ili9341-xpt2046/connections.md new file mode 100644 index 00000000..398a4a94 --- /dev/null +++ b/boards/esp32s3-ili9341-xpt2046/connections.md @@ -0,0 +1,17 @@ +# ESP32-S3 ILI9341 XPT2046 Board Pin Connections + +## Display (ILI9341 SPI - SPI2_HOST) +- **SCLK (SCK)**: GPIO 12 +- **MOSI (SDI)**: GPIO 11 +- **MISO (SDO)**: GPIO 13 +- **DC (Data/Command)**: GPIO 2 +- **CS (Chip Select)**: GPIO 10 +- **RST (Reset)**: GPIO 14 +- **BL (Backlight PWM)**: GPIO 21 + +## Touchscreen (XPT2046 SPI - SPI3_HOST / Soft SPI) +- **T_CLK (SCLK)**: GPIO 6 +- **T_MOSI (DIN)**: GPIO 5 +- **T_MISO (DO)**: GPIO 4 +- **T_CS**: GPIO 9 +- **T_IRQ (INT)**: Unconnected (-1) diff --git a/boards/esp32s3-ili9341-xpt2046/interface.cpp b/boards/esp32s3-ili9341-xpt2046/interface.cpp new file mode 100644 index 00000000..8f44f082 --- /dev/null +++ b/boards/esp32s3-ili9341-xpt2046/interface.cpp @@ -0,0 +1,138 @@ +#include "idf/launcher_platform.h" +#include "powerSave.h" +#include +#include + +#include "CYD28_TouchscreenR.h" +#ifndef CYD28_DISPLAY_HOR_RES_MAX +#define CYD28_DISPLAY_HOR_RES_MAX 240 +#endif +#ifndef CYD28_DISPLAY_VER_RES_MAX +#define CYD28_DISPLAY_VER_RES_MAX 320 +#endif + +CYD28_TouchR touch(CYD28_DISPLAY_HOR_RES_MAX, CYD28_DISPLAY_VER_RES_MAX); + +/*************************************************************************************** +** Function name: _setup_gpio() +** Location: main.cpp +** Description: initial setup for the device +***************************************************************************************/ +void _setup_gpio() { + pinMode(CYD28_TouchR_CS, OUTPUT); + digitalWrite(CYD28_TouchR_CS, HIGH); +} + +/*************************************************************************************** +** Function name: _post_setup_gpio() +** Location: main.cpp +** Description: second stage gpio setup to make a few functions work +***************************************************************************************/ +void _post_setup_gpio() { + // Brightness control setup + pinMode(TFT_BL, OUTPUT); + ledcAttach(TFT_BL, TFT_BRIGHT_FREQ, TFT_BRIGHT_Bits); + ledcWrite(TFT_BL, bright); + + if (!touch.begin()) { + launcherConsolePrintf("%s\n", String("Touch IC not Started").c_str()); + log_i("Touch IC not Started"); + } else { + launcherConsolePrintf("%s\n", String("Touch IC Started").c_str()); + } +} + +/*************************************************************************************** +** Function name: _late_setup_gpio() +** Location: main.cpp +** Description: third stage gpio, run before bootscreen animation +***************************************************************************************/ +void _late_setup_gpio() {} + +/*************************************************************************************** +** Function name: getBattery() +** Location: display.cpp +** Description: Delivers the battery value from 1-100 +***************************************************************************************/ +int getBattery() { return 0; } + +/********************************************************************* +** Function: setBrightness +** location: settings.cpp +** set brightness value +**********************************************************************/ +void _setBrightness(uint8_t brightval) { + int dutyCycle; + if (brightval == 100) dutyCycle = 250; + else if (brightval == 75) dutyCycle = 130; + else if (brightval == 50) dutyCycle = 70; + else if (brightval == 25) dutyCycle = 20; + else if (brightval == 0) dutyCycle = 0; + else dutyCycle = ((brightval * 250) / 100); + + log_i("dutyCycle for bright 0-255: %d", dutyCycle); + if (!ledcWrite(TFT_BL, dutyCycle)) { + launcherConsolePrintf("%s\n", String("Failed to set brightness").c_str()); + ledcDetach(TFT_BL); + ledcAttach(TFT_BL, TFT_BRIGHT_FREQ, TFT_BRIGHT_Bits); + ledcWrite(TFT_BL, dutyCycle); + } +} + +/********************************************************************* +** Function: InputHandler +** Handles the variables PrevPress, NextPress, SelPress, AnyKeyPress and EscPress +**********************************************************************/ +void InputHandler(void) { + checkPowerSaveTime(); + PrevPress = false; + NextPress = false; + SelPress = false; + AnyKeyPress = false; + EscPress = false; + + static long tm = launcherMillis(); + if (launcherMillis() - tm > 200 || LongPress) { + if (touch.touched()) { + tm = launcherMillis(); + auto t = touch.getPointScaled(); + + if (rotation == 3) { + t.y = (tftHeight + 20) - t.y; + t.x = tftWidth - t.x; + } + if (rotation == 0) { + int tmp = t.x; + t.x = tftWidth - t.y; + t.y = tmp; + } + if (rotation == 2) { + int tmp = t.x; + t.x = t.y; + t.y = (tftHeight + 20) - tmp; + } + + if (!wakeUpScreen()) AnyKeyPress = true; + else return; + + // Touch point global variable + touchPoint.x = t.x; + touchPoint.y = t.y; + touchPoint.pressed = true; + touchHeatMap(touchPoint); + } + } +} + +/********************************************************************* +** Function: powerOff +** location: mykeyboard.cpp +** Turns off the device (or try to) +**********************************************************************/ +void powerOff() { esp_deep_sleep_start(); } + +/********************************************************************* +** Function: reboot +** Handles reboot process for devices +**********************************************************************/ +void reboot() { ESP.restart(); } diff --git a/boards/esp32s3-ili9341-xpt2046/platformio.ini b/boards/esp32s3-ili9341-xpt2046/platformio.ini new file mode 100644 index 00000000..ba2a1527 --- /dev/null +++ b/boards/esp32s3-ili9341-xpt2046/platformio.ini @@ -0,0 +1,74 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html + +[env:esp32s3-ili9341-xpt2046] +board = esp32s3 +board_build.partitions = support_files/custom_16Mb.csv +build_src_filter = ${env.build_src_filter} +<../boards/esp32s3-ili9341-xpt2046> +board_build.arduino.memory_type = qio_qspi +board_upload.flash_size = 16MB +board_upload.maximum_size = 16777216 + +build_flags = + ${env.build_flags} + -D ARDUINO_USB_MODE=1 + -D ARDUINO_USB_CDC_ON_BOOT=1 + + -D DEVICE_NAME='"ESP32-S3 ILI9341 XPT2046"' + -D OTA_TAG='"esp32s3_ili9341_xpt2046"' + + -D ROTATION=0 + -D HAS_TOUCH=1 + -D HAS_RESISTIVE_TOUCH=1 + + # LovyanGFX Driver Configuration + -D USE_LOVYANGFX=1 + -D LOVYAN_PANEL=Panel_ILI9341 + -D LOVYAN_BUS=Bus_SPI + + # Display Pins and Settings + -D TFT_WIDTH=240 + -D TFT_HEIGHT=320 + -D TFT_MEM_WIDTH=240 + -D TFT_MEM_HEIGHT=320 + -D TFT_OFFSET_X=0 + -D TFT_OFFSET_Y=0 + -D TFT_SCLK=12 + -D TFT_MOSI=11 + -D TFT_MISO=13 + -D TFT_DC=2 + -D TFT_CS=10 + -D TFT_RST=14 + -D TFT_BUSY=-1 + -D TFT_BL=21 + -D TFT_SPI_HOST=2 + -D TFT_SPI_MODE=0 + -D TFT_WRITE_FREQ=40000000 + -D TFT_READ_FREQ=16000000 + -D TFT_SPI_3WIRE=false + -D TFT_USE_LOCK=true + -D TFT_BUS_SHARED=false + -D TFT_INVERTION=0 + -D TFT_RGB_ORDER=0 + + # Touch Pins (XPT2046) + -D CYD28_TouchR_CLK=6 + -D CYD28_TouchR_MOSI=5 + -D CYD28_TouchR_MISO=4 + -D CYD28_TouchR_CS=9 + -D CYD28_TouchR_IRQ=-1 + +lib_deps = + ${env.lib_deps} + lovyan03/LovyanGFX@^1.2.0 + +lib_ignore = + SensorLib + XPowersLib From 2b57cd00e1a231d736a3661a0f54c0a524393fc4 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2026 12:53:00 +0000 Subject: [PATCH 2/5] Add ESP32-S3 board with ILI9341 display and XPT2046 touch Create a new board model `esp32s3-ili9341-xpt2046` using LovyanGFX driver for the ILI9341 display (SPI2_HOST) and XPT2046 touch controller. Co-authored-by: silentproject2025 <193473405+silentproject2025@users.noreply.github.com> From 8185afb8f4b7f806da55edd587545063580fd5bf Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2026 13:37:57 +0000 Subject: [PATCH 3/5] ci: enable GitHub Actions compilation for esp32s3-ili9341-xpt2046 Co-authored-by: silentproject2025 <193473405+silentproject2025@users.noreply.github.com> From 0cfeb83b2e6592a682656f05129531a1becc4eba Mon Sep 17 00:00:00 2001 From: Nama Kamu Date: Sun, 20 Sep 2026 06:58:50 +0700 Subject: [PATCH 4/5] Add renphone-accretion board (Accretion Phone) --- .github/workflows/main.yml | 1 + boards/renphone-accretion/connections.md | 81 ++++++++++++++++++ boards/renphone-accretion/interface.cpp | 101 +++++++++++++++++++++++ boards/renphone-accretion/platformio.ini | 86 +++++++++++++++++++ platformio.ini | 1 + 5 files changed, 270 insertions(+) create mode 100644 boards/renphone-accretion/connections.md create mode 100644 boards/renphone-accretion/interface.cpp create mode 100644 boards/renphone-accretion/platformio.ini diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cc1b18ef..926cb9a5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -107,6 +107,7 @@ - { env: "lilygo-t-watch-s3" } - { env: "lilygo-t-watch-ultra" } - { env: "reaper" } + # - { env: "renphone-accretion" } - { env: "seeedstudio-reterminal-d1001" } - { env: "seeedstudio-reterminal-e1001" } - { env: "seeedstudio-reterminal-sticky" } diff --git a/boards/renphone-accretion/connections.md b/boards/renphone-accretion/connections.md new file mode 100644 index 00000000..4c16ecff --- /dev/null +++ b/boards/renphone-accretion/connections.md @@ -0,0 +1,81 @@ +# Accretion Phone — DIY ESP32-S3 phone + +Home-made phone: ESP32-S3 module with 16MB flash and 8MB OPI PSRAM (N16R8), +2.8" ILI9341 240x320 SPI display, XPT2046 resistive touch, SD card on SDIO. +Display and touch use the same pinout as the generic +`esp32s3-ili9341-xpt2046` env; this env adds the SD card, battery sense and +the keep-off pins below. + +## Display — ILI9341, 240x320, SPI (SPI2_HOST) + +| Signal | GPIO | +| ------ | ---- | +| SCLK | 12 | +| MOSI | 11 | +| MISO | 13 | +| DC | 2 | +| CS | 10 | +| RST | 14 | +| BL | 21 (PWM) | + +Not IPS, no inversion, RGB order default (`TFT_IPS=0`). + +## Touch — XPT2046, bit-banged on its own pins + +| Signal | GPIO | +| ------ | ---- | +| CLK | 6 | +| MOSI | 5 | +| MISO | 4 | +| CS | 9 | +| IRQ | not wired (-1), the driver polls | + +These are **not** on the display SPI bus (`xpt_shared_spi = false` in +`hal_touch_init`). Touch orientation follows the generic 2.8" module table +(`CYD-2432S028`); if the corners come out swapped or mirrored on real +hardware, tune `CYD28_TouchR_ROT` (bit0 = swap X/Y, bit1 = invert X, +bit2 = invert Y) in `platformio.ini`, then run Settings > Calibrate Touch. + +## SD card — native SDIO, 1-bit mode (not SPI) + +| Signal | GPIO | +| ------ | ---- | +| CLK | 39 | +| CMD | 38 | +| D0 | 40 | + +D1–D3 are not wired. `sd_functions.cpp` mounts it in 1-bit mode when +`SD_MMC_4BIT` is not set. + +## Battery + +- Single-cell Li-ion, 10k + 10k voltage divider (read value x2) on + **GPIO 8** (`ANALOG_BAT_PIN`, ADC1_CH7 — safe to read with WiFi on). +- No PMIC or fuel gauge, the percentage is estimated from voltage by the + shared `getBattery()`. +- GPIO 4 must **not** be used for the divider: it is the touch MISO line. + +## Device specific initialization + +- Vibration motor on GPIO 18 (`VIB_PIN`), driven LOW in `_setup_gpio()` so it + stays off while the pin would otherwise float. +- WS2812 LED on GPIO 48 (`RGB_LED_PIN`), turned off in `_setup_gpio()` with the + core's `neopixelWrite()`. +- TFT CS (10) and touch CS (9) are set HIGH before anything else starts. +- The launcher does not use audio, IMU or mic; the pins are recorded below + so the next person does not reuse them. + +## Pins used by the phone firmware, unused by the Launcher + +| Function | GPIO | +| --------------------- | ----------------------------- | +| I2S amp (MAX98357A) | BCLK 42, LRC 41, DOUT 17 | +| I2S mic (INMP441) | SCK 47, WS 46, SD 45 | +| MPU6050 (I2C 0x68) | SDA 15, SCL 7 | +| USB female (native) | D- 19, D+ 20 | + +## Notes + +- The module uses octal PSRAM, so GPIO 35–37 are reserved by the module and + must stay unused (none of the pins above are in that range). +- Power off is a plain deep sleep; wake it with the EN/reset button. diff --git a/boards/renphone-accretion/interface.cpp b/boards/renphone-accretion/interface.cpp new file mode 100644 index 00000000..7e23c58a --- /dev/null +++ b/boards/renphone-accretion/interface.cpp @@ -0,0 +1,101 @@ +#include "hal/bright/bright.h" +#include "hal/device.h" +#include "hal/inputs/touch.h" +#include "idf/launcher_platform.h" +#include "powerSave.h" +#include +#include + +// Accretion Phone -- DIY ESP32-S3 + ILI9341 (SPI) + XPT2046 resistive touch. +// Touch-only device: no physical navigation buttons, the on-screen footer +// bar (HAS_TOUCH) provides Esc/Prev/Next. The SD card is wired to the SDIO +// peripheral; the pins live in platformio.ini and sd_functions.cpp mounts it +// in 1-bit mode from there. Battery percentage comes from the shared +// getBattery() (ANALOG_BAT_PIN in mykeyboard.cpp), nothing to do here. + +static DeviceTouch touchCfg() { + DeviceTouch cfg; + // Same table as the generic 2.8" ILI9341 + XPT2046 module (CYD-2432S028), + // which this panel/touch pair is. + // rotation: 0 1 2 3 + bool swapXY[4] = {true, false, true, false}; + bool mirrorX[4] = {true, false, false, true}; + bool mirrorY[4] = {false, false, true, true}; + for (int i = 0; i < 4; i++) { + cfg.SwapXY[i] = swapXY[i]; + cfg.MirrorX[i] = mirrorX[i]; + cfg.MirrorY[i] = mirrorY[i]; + } + return cfg; +} + +/*************************************************************************************** +** Function name: _setup_gpio() +** Location: main.cpp +** Description: initial setup for the device +***************************************************************************************/ +void _setup_gpio() { + // TFT and touch CS high so both buses are quiet while everything else comes up + launcherGpioOutput(TFT_CS); + launcherGpioWrite(TFT_CS, HIGH); + launcherGpioOutput(CYD28_TouchR_CS); + launcherGpioWrite(CYD28_TouchR_CS, HIGH); + + // Vibration motor off (the pin floats until driven) + launcherGpioOutput(VIB_PIN); + launcherGpioWrite(VIB_PIN, LOW); + + // WS2812 LED off. neopixelWrite() ships with the Arduino core, so the + // board needs no external LED library. + neopixelWrite(RGB_LED_PIN, 0, 0, 0); +} + +/*************************************************************************************** +** Function name: _post_setup_gpio() +** Location: main.cpp +** Description: second stage gpio setup, run after TFT and before SD card initialization +***************************************************************************************/ +void _post_setup_gpio() { + // Backlight PWM -- must be done after tft.init() + hal_bright_attach(TFT_BL); + hal_bright_set(TFT_BL, bright); + + // The XPT2046 has its own pins, it does not share the TFT SPI bus + if (!hal_touch_init(touchCfg(), 0x5D, false)) { + launcherConsolePrintf("%s\n", String("Touch IC not Started").c_str()); + log_i("Touch IC not Started"); + } else launcherConsolePrintf("%s\n", String("Touch IC Started").c_str()); +} + +/********************************************************************* +** Function: setBrightness +** location: settings.cpp +** set brightness value +**********************************************************************/ +void _setBrightness(uint8_t brightval) { hal_bright_set(TFT_BL, brightval); } + +/********************************************************************* +** Function: InputHandler +** Handles the variables PrevPress, NextPress, SelPress, AnyKeyPress and EscPress +**********************************************************************/ +void InputHandler(void) { + static long tm = launcherMillis(); + if (launcherMillis() - tm > 250 || LongPress) { + LTouchPoint t; + if (hal_touch_read(touchCfg(), t)) { + tm = launcherMillis(); + if (!hal_touch_apply(t)) return; + } + } +} + +/********************************************************************* +** Function: powerOff +** location: mykeyboard.cpp +** Turns off the device (or try to) +**********************************************************************/ +void powerOff() { + launcherGpioWrite(VIB_PIN, LOW); + neopixelWrite(RGB_LED_PIN, 0, 0, 0); + esp_deep_sleep_start(); +} diff --git a/boards/renphone-accretion/platformio.ini b/boards/renphone-accretion/platformio.ini new file mode 100644 index 00000000..10160c51 --- /dev/null +++ b/boards/renphone-accretion/platformio.ini @@ -0,0 +1,86 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html + +##################################### Accretion Phone (DIY, ESP32-S3 + ILI9341 + XPT2046) ################################## +; Home-made phone, ESP32-S3 module with 16MB flash and 8MB OPI PSRAM (N16R8), +; 2.8" ILI9341 240x320 SPI panel and an XPT2046 resistive touch on its own +; (bit-banged) pins. The SD card is wired to the SDIO peripheral in 1-bit mode. +; The generic esp32s3 JSON already matches the module (16MB / qio_opi / 80MHz), +; so no board_* override is needed beyond the partition table. +[env:renphone-accretion] +board = esp32s3 +board_build.partitions = support_files/custom_16Mb.csv +build_src_filter = ${env.build_src_filter} +<../boards/renphone-accretion> +build_flags = + ${env.build_flags} + -DBOARD_HAS_PSRAM + -DARDUINO_USB_CDC_ON_BOOT=1 + -DARDUINO_USB_MODE=1 + + -DDEVICE_NAME='"Accretion Phone"' + -DOTA_TAG='"renphone_accretion"' + + ; 1 = landscape, the way the phone firmware itself boots. Change it to 0 for + ; portrait -- the touch table in interface.cpp covers all four rotations. + -DROTATION=1 + + ; TFT -- ILI9341 240x320 on its own SPI bus (the SD card is SDIO, not shared) + -D TFT_DATABUS_N=0 # Arduino_HWSPI + -D TFT_DISPLAY_DRIVER_N=4 # Arduino_ILI9341 + -DTFT_WIDTH=240 + -DTFT_HEIGHT=320 + -DTFT_MISO=13 + -DTFT_MOSI=11 + -DTFT_SCLK=12 + -DTFT_CS=10 + -DTFT_DC=2 + -DTFT_RST=14 + -DTFT_BL=21 + -DTOUCH_CS=-1 + -D TFT_IPS=0 + -D TFT_COL_OFS1=0 + -D TFT_ROW_OFS1=0 + -D TFT_COL_OFS2=0 + -D TFT_ROW_OFS2=0 + + ; Touch -- XPT2046 resistive, bit-banged on its own pins (not the TFT bus) + -DHAS_TOUCH=1 + -DHAS_RESISTIVE_TOUCH=1 # enables Settings > Calibrate Touch + -DTOUCH_CTRL_XPT2046=1 # hal_touch_init/hal_touch_read (src/hal/inputs/touch.cpp) + -DCYD28_TouchR_IRQ=-1 # IRQ line not wired, the driver polls + -DCYD28_TouchR_MISO=4 + -DCYD28_TouchR_MOSI=5 + -DCYD28_TouchR_CLK=6 + -DCYD28_TouchR_CS=9 + ; If touch is rotated/mirrored on real hardware, tune this bitmask + ; (bit0 = swap X/Y, bit1 = invert X, bit2 = invert Y) before touching the + ; per-rotation table in interface.cpp. 0 is what the generic 2.8" ILI9341 + + ; XPT2046 module (CYD-2432S028) uses. + -DCYD28_TouchR_ROT=0 + + ; SD card -- native SDIO, 1-bit mode. sd_functions.cpp calls SD_MMC.setPins() + ; and mounts it in 1-bit mode from these flags, no board-side code needed. + -DUSE_SD_MMC=1 + -DSDM=SD_MMC + -DPIN_SD_CLK=39 + -DPIN_SD_CMD=38 + -DPIN_SD_D0=40 + + ; Battery sense, 10k+10k voltage divider (read value x2 is the default + ; ANALOG_BAT_MULTIPLIER), ADC1_CH7 so it is safe to read while WiFi is on + -DANALOG_BAT_PIN=8 + + ; Keep-off pins, driven in _setup_gpio() (see connections.md) + -DVIB_PIN=18 + -DRGB_LED_PIN=48 + +lib_ignore = + SensorLib + XPowersLib diff --git a/platformio.ini b/platformio.ini index decaa5b4..7a0be3b2 100644 --- a/platformio.ini +++ b/platformio.ini @@ -84,6 +84,7 @@ default_envs = ; pancake ; Phantom_S024R ; reaper + ; renphone-accretion ; seeedstudio-reterminal-d1001 ; seeedstudio-reterminal-e1001 ; seeedstudio-reterminal-sticky From b5f54bec90d4f39c3076abcc6e35ba9c0a997222 Mon Sep 17 00:00:00 2001 From: Nama Kamu Date: Sun, 20 Sep 2026 06:59:16 +0700 Subject: [PATCH 5/5] Add renphone-accretion board (Accretion Phone) --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 926cb9a5..0943bc40 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -107,7 +107,7 @@ - { env: "lilygo-t-watch-s3" } - { env: "lilygo-t-watch-ultra" } - { env: "reaper" } - # - { env: "renphone-accretion" } + - { env: "renphone-accretion" } - { env: "seeedstudio-reterminal-d1001" } - { env: "seeedstudio-reterminal-e1001" } - { env: "seeedstudio-reterminal-sticky" }