Document working SoftSPI touch calibration and ship firmware.

Record XY invert, button hit-test, and 1.5s cooldown in README;
refresh cyd_28r prebuilt binaries.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-27 22:15:59 +08:00
parent 348cf9d663
commit b8527e9fb8
4 changed files with 22 additions and 6 deletions

View File

@@ -10,7 +10,7 @@ ESP32 Cheap Yellow Display + INMP441(I2S)→ microSD **WAV 录音**,支持
| 项目 | 2.8" · 2432S028R | 3.5" C · 3248S035C |
|------|------------------|---------------------|
| 屏驱 | ILI9341 | ST7796 |
| 触控 | XPT2046 SoftSPI | GT911 Wire1(SDA33/SCL32/INT21/RST25) |
| 触控 | XPT2046 **SoftSPI**(见下) | GT911 Wire1(SDA33/SCL32/INT21/RST25) |
| 背光 TFT_BL | **GPIO21** | **GPIO27** |
| INMP441 WS | **GPIO22**(CN1/P3) | **GPIO22** |
| INMP441 SCK | **GPIO27**(CN1) | **GPIO21**(CN1;勿占 27=BL) |
@@ -38,10 +38,22 @@ ESP32 Cheap Yellow Display + INMP441(I2S)→ microSD **WAV 录音**,支持
- 最长约 **120 秒**(自动停)
- 实时电平条(近似 dB,与 inmp441test 同一换算)
- **PLAY / STOP**:用板载喇叭(GPIO26)回放最近一条录音
- 短按顶部标题栏切换背光 4 档
- 需插入 **FAT32 microSD**
- 触控备用:板载 **BOOT** 键切换 REC;串口发送 `r` / `p` 切换录音 / 播放
- 2.8" 触控用 SoftSPI(与 SD 的 VSPI 隔离;勿再用会抢总线的 XPT2046+VSPI)
- 备用:板载 **BOOT** 键切换 REC;串口 `115200` 发 `r` / `p` 切换录音 / 播放
## 2.8" 触控说明(重要)
本板 XPT2046 **不在硬件 SPI 上**(CLK25 / MOSI32 / MISO39 / CS33 / IRQ36),与 microSD 的 **VSPI** 冲突。固件使用 vendored [`lib/CYD28_Touchscreen`](lib/CYD28_Touchscreen)(hexeguitar SoftSPI bit-bang),把 VSPI 留给 SD。
| 项 | 做法 |
|----|------|
| 总线 | SoftSPI,读触控前拉高 `SD_CS` |
| 坐标 | raw ADC → 横屏 UI 320×240;**X/Y 均反向** 以对齐 `LVGL ROTATION_270` 画面 |
| 点击 | 只命中屏幕上画的 REC / PLAY 区域(带边距);松手触发 |
| 防抖 | 压力滞回 + **1.5 s** 动作冷却,避免误触反复开停录音 |
| 备用 | BOOT / 串口 `r`·`p`(触控异常时仍可用) |
参考:[RNT CYD + SoftSPI + SD](https://randomnerdtutorials.com/esp32-cyd-display-touchscreen-microsd-card/)、[hexeguitar/CYD28_Touchscreen](https://github.com/hexeguitar/CYD28_Touchscreen)。
## 构建与烧录
@@ -78,6 +90,7 @@ cd firmware\cyd_28r # 或 cyd_35r
platformio.ini
include/pins.h lv_conf.h touch.h sdcard.h recorder.h player.h
src/main.cpp touch.cpp sdcard.cpp recorder.cpp player.cpp
lib/CYD28_Touchscreen/ # 2.8 SoftSPI 触控(与 SD 隔离)
scripts/exclude_lvgl_asm.py
firmware/
README.md
@@ -88,3 +101,4 @@ README.md
| 日期 | 说明 |
|------|------|
| 2026-10-27 | 初版:INMP441 → microSD WAV 录音 + DAC 回放;双板 `cyd_28r` / `cyd_35r` |
| 2026-10-27 | 2.8 触控:SoftSPI + XY 反向校准、按钮命中区、1.5s 冷却;消除误触反复录音 |

View File

@@ -9,6 +9,8 @@
录音写入 microSD `/rec/Rxxxx.WAV`;回放经 GPIO26 DAC2。
2.8" 触控为 SoftSPI(与 SD 的 VSPI 隔离),坐标 XY 反向对齐横屏按钮;详见根目录 [README.md](../README.md)「2.8" 触控说明」。
## 直接刷写
```powershell

View File

@@ -1,5 +1,5 @@
name: CYD inmp441recondtest (cyd_28r)
git: 024fcd8
git: 348cf9d
date: 2026-10-27
board: ESP32-2432S028R (ILI9341)
inmp441: WS=GPIO22 SCK=GPIO27 SD=GPIO35
@@ -14,5 +14,5 @@ offsets:
sha256:
bootloader.bin 3D234A7471F67B013686DABD4DEE7C1FA915C9928463616A94BC9297ACF1ABF8
boot_app0.bin F94C5D786A7A8FAB06AC5D10E33BF37711A6697636DC037559EA19CC410A17F0
firmware.bin CDC0616C236CA29B7849A2CA63A49D3CB1811ED8FA20C087B5F84503D55DFDB4
firmware.bin 7C0659A130E7ED20DD1DA0006616E31AFA7F597F65E1156C8FF9CD12BBC79994
partitions.bin 0A8B5720E7B77FF11F1462458C3A509DEE79224E5279898F26D6A2E3AE0517B7

Binary file not shown.