Files
gronod 2458a61625 Add model-executable refactor megaplan and session phases
Lock P00–P08 with in/out scope, frozen APIs, verify commands, and
one-phase-per-session protocol for the IDF modular UI work.
2026-09-16 11:12:29 +00:00

2.4 KiB
Raw Permalink Blame History

P07 — JC4827W543 display + GT911 + STOP

STATUS: TODO DEPENDS: P06 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

  • Same commands as keypad
  • No lv types in machine/process/cmd headers
  • WROOM firmware unchanged in behaviour
  • STATUS→DONE