Same five screens via text grid plus colour softkeys. Touch STOP follows Esc: request_stop then CMD_STOP. P07 STATUS DONE.
2.6 KiB
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
Add NV3041A and GT911 HAL for jc4827w543Map colour screens and STOP hit-test to existing commands
DoD
- Same commands as keypad
- No lv types in machine/process/cmd headers
- WROOM firmware unchanged in behaviour
- STATUS→DONE