ci / test (pull_request) Successful in 1m15s
ci / firmware (jc4827w543, sdkconfig.s3, esp32s3) (pull_request) Failing after 30s
ci / firmware (wroom, sdkconfig.wroom, esp32) (pull_request) Failing after 34s
ci / test (push) Successful in 1m18s
ci / firmware (jc4827w543, sdkconfig.s3, esp32s3) (push) Failing after 30s
ci / firmware (wroom, sdkconfig.wroom, esp32) (push) Failing after 29s
Same five screens via text grid plus colour softkeys. Touch STOP follows Esc: request_stop then CMD_STOP. P07 STATUS DONE.
65 lines
2.6 KiB
Markdown
65 lines
2.6 KiB
Markdown
# P07 — JC4827W543 display + GT911 + STOP
|
||
|
||
STATUS: DONE
|
||
DEPENDS: P06
|
||
|
||
Custom-draw NV3041A + GT911 colour adapter for the five P06 screens.
|
||
Touch STOP = `hal_motor_request_stop()` then CMD_STOP via the same key map as Esc.
|
||
Motor EN remains GPIO_NUM_NC (no spare header pin documented). No STEP/DIR.
|
||
No LVGL. Hw smoke: unflashed.
|
||
|
||
READ: this file, `docs/TARGET_ARCHITECTURE.md` dual-board + UI strategy, vendor pin notes below
|
||
OUT: LVGL in `app_machine`; changing recipes; assigning WROOM STEP/DIR onto S3 without a pin table comment; pumps
|
||
FORBIDDEN: `lv_*` types in `ui_cmd.h` / `app_machine.h`; blocking in flush_cb beyond DMA wait; copying WROOM GPIO map blindly
|
||
|
||
## IN
|
||
|
||
S3 firmware shows the **same five screens** via a colour adapter. Touch STOP = same path as Esc (`hal_motor_request_stop` + CMD_STOP). Custom draw first (no LVGL unless bring-up is otherwise blocked — if LVGL used, confine to `hal_display` + `app_ui` board files).
|
||
|
||
Mechatronics on S3: keep motor EN `GPIO_NUM_NC` **unless** a spare pin is documented in `board.c` comments with the header pin number. Do not invent STEP/DIR. S3 image is operator-panel-capable; agitation may remain on WROOM until pins proven.
|
||
|
||
## Pins (lock from community JC4827W543C)
|
||
|
||
Display NV3041A QSPI: CS 45, SCK 47, D0 21, D1 48, D2 40, D3 39, BL 1, 480×272.
|
||
|
||
GT911 I2C: SDA 8, SCL 4, INT 3, RST 38, addr 0x5D. Reset: RST low 200 ms then high; INT as input.
|
||
|
||
PSRAM octal 80 MHz already in `sdkconfig.s3`.
|
||
|
||
Free IO is scarce. Do not steal QSPI/GT911 pins for motor.
|
||
|
||
## FILES
|
||
|
||
```
|
||
components/board_jc4827w543/board.c # update comments/pins
|
||
components/hal_display/hal_display_nv3041a.c # or .cpp
|
||
components/hal_input/hal_input_gt911.c
|
||
components/app_ui/app_ui_color.c # or ifdefs in app_ui.c
|
||
```
|
||
|
||
`hal_display_text` still works (glyph blit at cell grid 24×8 or similar) so `app_ui.c` can stay shared. Prefer: `app_ui` calls abstract `ui_draw_program_select()` implemented per board.
|
||
|
||
STOP hit-test: rectangle bottom of Running/Stopped/Complete screens, label `STOP`. On touch inside: `hal_motor_request_stop()` then CMD_STOP (same as keypad X). Resume/Back buttons on Stopped.
|
||
|
||
## VERIFY
|
||
|
||
S3 `idf.py` build pass.
|
||
|
||
WROOM build still pass (do not regress P06).
|
||
|
||
Host tests pass.
|
||
|
||
Hardware S3: ProgramSelect visible, tap process, Running shows name/remaining/temp, STOP stops if motor wired else still transitions UI to Stopped.
|
||
|
||
## COMMITS
|
||
|
||
1. `Add NV3041A and GT911 HAL for jc4827w543`
|
||
2. `Map colour screens and STOP hit-test to existing commands`
|
||
|
||
## DoD
|
||
|
||
- [x] Same commands as keypad
|
||
- [x] No lv types in machine/process/cmd headers
|
||
- [x] WROOM firmware unchanged in behaviour
|
||
- [x] STATUS→DONE
|