Files
gronod ce9af6382e
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
Map colour screens and STOP hit-test to existing commands
Same five screens via text grid plus colour softkeys. Touch STOP
follows Esc: request_stop then CMD_STOP. P07 STATUS DONE.
2026-09-16 14:18:35 +00:00

65 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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