- safety/modes/ford.h: includes the library's safety with StarPilot's lateral permission
(lateral_controls_allowed(), which includes AOL) as its lateral binding. ford_init hands the library
bits 9-14 of the Ford param (never on the Transit); with the bit set, LateralMotionControl/2 go through
the library's 4-signal checks instead of the stock ones, Lane_Assist_Data1 carries the angle-mode state,
and the pinion source replaces yaw and joins the selected RX list (stock, stock-switch or AOL).
- car/ford/carcontroller.py: one BluePilotLateral per Ford; while it's active it sends the steering and
LKA messages, otherwise the stock path runs unchanged. StarPilot's openpilot side attaches the per-frame
inputs and settings as bluepilot_inputs.
- safety tests: test.sh runs the library's safety tests by directory and gates the library headers'
coverage in a run of their own; test_ford_bluepilot_hooks.py covers where the bits ride, the Transit,
the pinion RX check on every list and the full-list guard. The qualification and mutation runners
include the library's safety tests.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
StarPilot's angle-only bluepilot_lateral adaptation and the BluePilot-derived curvature strategies (Mach-E,
classic, Explorer, generic CAN FD, new-port curvature, manual-turn latch, curvature preview, pinion
measurement) are removed, with their extended safety profiles 16/32/64 and the interim angle word 128. Ford
lateral is upstream's stock curvature path until the BluePilot lateral library is mounted.
StarPilot's own Ford features stay, re-keyed from the extended words to the stock ones:
- AOL: classic 32 -> 0, Mach-E 18 and the CAN FD trucks 66 -> 2 (+1 with openpilot long); the CAN FD
retained-display rules apply to word 2. Edge/Mondeo/Transit and the manual bit (256) are unchanged.
- release CAN FD long: word 3 (was 19/67); 19 and 67 are now retired and denied.
- stock cruise switch, CAN FD camera-lead radar handling, hands-free cluster: keyed on the Ford family.
- classic stock ACC (0) keeps the no-ACCDATA TX list the extended classic profile had.
Bits 9-14 of the Ford param are reserved for the BluePilot lateral library's startup bits
(safety/modes/ford_param.h); AOL and pandad mask them out of the profile word.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Preserve every node, grouping rule, shard count and timeout. Calibrate material module estimates from complete hosted outcomes with conservative scheduling margin.