# T2G seat-controller firmware `Seat_Controller_demo/` is the repository-owned IAR interface project for the physical seat bench. It combines the verified heater, fan and four-motor demos and is the only firmware accepted by the hardware executor. The Infineon/T2G vendor library is intentionally not duplicated here. The IAR project keeps its original relative `common/` and `tviibh8m/` references; `tools/build_seat_firmware.ps1` stages the repository project beside junctions to `COGNITIVE_AGENT_T2G_SDK_ROOT`, builds it, and copies only the resulting `Seat_Controller_demo.hex` and `Seat_Controller_demo.out` back into the repository. ```powershell powershell -ExecutionPolicy Bypass -File .\tools\build_seat_firmware.ps1 -Profile combined ``` The build script never opens a debug probe or flashes a target. Physical programming is performed only by an authorized `execution_mode=hardware` request when `COGNITIVE_AGENT_SEAT_AUTO_FLASH_ENABLED=true` and the CAN identity handshake does not match the repository firmware. Automatic programming uses `IAR/Seat_Controller_program.mac`, not the interactive-debug `Seat_Controller_demo.mac`. The automatic-programming macro forces motor, fan and heater outputs low before download, clears the retained debug-session marker, and uses a bounded Download-and-Debug handoff with `--leave_target_running`. `--download_only` is intentionally not used because it leaves the CM0+ stopped after programming. Firmware identity protocol: - request: `0x304`, `53 45 41 54 01 00 00 00` - expected response: `0x305`, `53 45 41 54 01 01 00 3F` The response identifies protocol 1, firmware 1.1.0 and the combined capability mask. It is a non-actuating readiness probe and is checked before any seat control frame is sent.