112 lines
3.7 KiB
YAML
Executable File
112 lines
3.7 KiB
YAML
Executable File
version: 2.0.0
|
|
status: hil_verified
|
|
domain: seat
|
|
source:
|
|
firmware_store_format: SMV8
|
|
verified_on: 2026-07-30
|
|
test_status: ../../../firmware/t2g/Seat_Controller_demo/Docs/HIL_TEST_STATUS_2026-07-30.md
|
|
protocol:
|
|
version: 1
|
|
bitrate: 500000
|
|
frame_format: classic_can_11_bit
|
|
payload_bytes: 8
|
|
absolute_position_opcode: 1
|
|
timed_duty_opcode: 3
|
|
stop_all_opcode: 9
|
|
start_dynamic_mode_opcode: 14
|
|
stop_dynamic_mode_opcode: 15
|
|
dynamic_status_frame_id: 774
|
|
stop_all_motor_selector: 0
|
|
home_known_range_opcode: 11
|
|
home_known_range_key: 19282
|
|
home_known_range_timeout_s: 120
|
|
normalized_position_max: 10000
|
|
# A full M0 stroke takes more than the firmware's legacy 12 s default.
|
|
# Always send this override with Opcode 1 so every calibrated axis has
|
|
# enough time to reach either endpoint on the physical bench.
|
|
absolute_position_timeout_ms: 30000
|
|
# The currently deployed SMV8 image commits Work Flash as soon as an axis
|
|
# stops. Give that blocking persistence step time to finish before the next
|
|
# axis command; the updated image additionally batches the four-axis save.
|
|
inter_axis_settle_ms: 2000
|
|
default_duty_percent: 90
|
|
timed_duty_level_scale: 10
|
|
timed_duty_min_duration_ms: 300
|
|
# User-specified duration commands are bounded per axis below. A long
|
|
# request is clamped, but reaching a proven endpoint before the timer ends
|
|
# is a successful completion rather than a motion error.
|
|
timed_duty_max_duration_ms: 30000
|
|
increase_direction: 1
|
|
decrease_direction: 2
|
|
dynamic_modes:
|
|
max_runtime_ms: 600000
|
|
arrival_grace_ms: 30000
|
|
rocking_horse:
|
|
mode_id: 1
|
|
phases:
|
|
- {id: rock_forward, completion: all_targets_reached, timeout_ms: 15000}
|
|
- {id: rock_backward, completion: all_targets_reached, timeout_ms: 15000}
|
|
cradle:
|
|
mode_id: 2
|
|
phases:
|
|
- {id: forward, completion: all_targets_reached, timeout_ms: 30000}
|
|
- {id: return, completion: all_targets_reached, timeout_ms: 30000}
|
|
axes:
|
|
seat.set_longitudinal_position:
|
|
motor_selector: 0
|
|
physical_mode: 0
|
|
physical_name: horizontal_fore_aft
|
|
physical_unit: mm
|
|
physical_full_scale_x100: 21500
|
|
default_max_hall_count: 480
|
|
default_timeout_ms: 12000
|
|
timed_duty_ms_per_pct: 120
|
|
timed_duty_percent: 90
|
|
max_user_timed_duration_ms: 30000
|
|
max_uncalibrated_relative_pct: 15
|
|
hardware_verified: true
|
|
seat.set_cushion_tilt:
|
|
motor_selector: 1
|
|
physical_mode: 1
|
|
physical_name: seat_pan_oblique_height
|
|
physical_unit: percent
|
|
physical_full_scale_x100: 10000
|
|
horizontal_full_scale_x100: 5100
|
|
vertical_full_scale_x100: 5600
|
|
default_max_hall_count: 374
|
|
default_timeout_ms: 8000
|
|
timed_duty_ms_per_pct: 80
|
|
timed_duty_percent: 90
|
|
max_user_timed_duration_ms: 20000
|
|
max_uncalibrated_relative_pct: 15
|
|
hardware_verified: true
|
|
seat.set_backrest_recline:
|
|
motor_selector: 2
|
|
physical_mode: 2
|
|
physical_name: backrest_recline
|
|
physical_unit: degree
|
|
physical_full_scale_x100: 6800
|
|
display_zero_degree_x100: 9500
|
|
default_max_hall_count: 917
|
|
default_timeout_ms: 12000
|
|
timed_duty_ms_per_pct: 120
|
|
timed_duty_percent: 90
|
|
max_user_timed_duration_ms: 30000
|
|
max_uncalibrated_relative_pct: 15
|
|
hardware_verified: true
|
|
seat.set_legrest_height:
|
|
motor_selector: 3
|
|
physical_mode: 3
|
|
physical_name: legrest_lift
|
|
physical_unit: degree
|
|
physical_full_scale_x100: 7200
|
|
display_zero_degree_x100: 9500
|
|
default_max_hall_count: 647
|
|
default_timeout_ms: 10000
|
|
timed_duty_ms_per_pct: 100
|
|
# The physical M3 actuator enters protection at 90% on this bench.
|
|
timed_duty_percent: 50
|
|
max_user_timed_duration_ms: 25000
|
|
max_uncalibrated_relative_pct: 15
|
|
hardware_verified: true
|