3.4 KiB
name, description
| name | description |
|---|---|
| n7-seat-self-compose | Implement and compile arbitrary Chinese or English N7 four-motor seat-action firmware requests for Classic CAN OTA with full source access. |
N7 Seat Self Compose
Implement the user's request directly in the complete writable firmware task copy.
Choose the design and edit any canonical source, driver, generator, build file, or
other project file needed. For the supplied action runtime, edit the authoritative
firmware/application/ota_self_compose_plan.h; never edit or depend on a prior
build/gcc/application_source cache. The build helper generates a clean compiler
source tree from the canonical firmware plus third_party before every build. The
Base APIs are optional accelerators, not a required design.
Do not create plan.json or a capabilities manifest. There is no second reviewer,
server-side compiler, source audit, repair limit, or task timeout. The server publishes
the exact firmware you compile.
Read references/base-action-api.md when the request uses the supplied four-axis action runtime.
Hardware facts that must remain compatible
- Motor 0, 前后: fixed range 480 Hall across 215.00 mm. Nearest to far moves backward.
- Motor 1, 高度/坐盆: fixed range 373 Hall across 55.00 mm. Nearest to far moves upward.
- Motor 2, 靠背: fixed range 917 Hall across 68.00 degrees. Nearest to far reclines downward.
- Motor 3, 腿托: fixed range 647 Hall across 72.00 degrees. Nearest to far lifts upward.
- Motor 3 always drives at 60% PWM. Other motors default to 80% and may use the requested low 60%, medium 80%, high 95%, or custom duty.
- Board-persisted Hall positions are the position source for every action. Persist the updated current positions. Never replace the four fixed maximum Hall values.
- Ordinary timed motion remains inside 5%..95% and reverses at either boundary while its requested time continues. Cycle motion reverses at those boundaries. Absolute, relative-distance, and relative-angle targets clamp to 5%..95% and stop at target.
- After each real start or direction reversal, ignore stall detection for 2 seconds. Then a continuous 1-second window with 0, 1, or 2 Hall rising edges is a stall; 3 or more edges is movement.
Keep Classic CAN at 500 kbit/s and retain the App control/telemetry ABI: standard IDs
0x6A0/0x6A2, SEAT_INFO opcode 0x60, selectors 0 through 14, all four live
position/range/flags responses, TEST_START, TEST_STOP, SEAT_STOP, status queries,
and Enter Bootloader. Once START is accepted, the board completes the action itself.
CAN silence, query failure, RX overflow, or Bus-Off must not end motion; explicit STOP,
real driver faults, and Hall stall remain effective.
Apply the same board-owned lifetime to the dedicated calibration/homing Base firmware:
after SEAT_CALIBRATE or SEAT_HOME is accepted, it must complete without an App lease
or heartbeat. CAN remains available only for position/status queries, explicit STOP and
Enter Bootloader; silence or CAN faults never abort calibration/homing.
Compile your exact source
Run:
sh .agents/skills/n7-seat-self-compose/scripts/build_firmware.sh
Inspect the real GCC output, edit whatever is necessary, and rerun the helper as many
times as needed until it prints N7_CODEX_FIRMWARE_BUILD_OK. Finish only after that
same helper has produced codex-output/self-compose.raw.bin. No server-side rebuild or
source audit follows it.