# cold-boot-fixture (AZ-407 / AZ-419) `cold_boot_fixture.json` is a frozen FC pose snapshot at flight-resume time. The file is consumed by: * **AZ-419 (FT-P-11 cold-start init)** — secondary path (`origin_source == fc_ekf` per ADR-010): loaded into the SITL via the standard parameter-load path. The SUT cold-starts with no Manifest `takeoff_origin`, and the test asserts the first outbound estimate lands within ±50 m of the snapshot pose. * **NFT-PERF-03 (cold-start TTFF)** — same loading path, with performance instrumentation around the time-to-first-fix metric. ## Schema (v1) ```json { "_schema": "cold-boot-fixture/v1", "global_position_int": { "lat_e7": ..., "lon_e7": ..., "alt_mm": ..., ... }, "attitude": { "roll_rad": ..., "pitch_rad": ..., "yaw_rad": ..., ... }, "ardupilot_param_overrides": { ... }, "inav_serial_rx_overrides": { ... } } ``` The `global_position_int` block uses the canonical MAVLink `GLOBAL_POSITION_INT` units (lat/lon scaled by 1e7; alt in mm). ## Provenance | Field | Source | License | |-------|--------|---------| | Lat / Lon | Derkachi sector centre (50.075° N, 36.150° E) | Synthetic — chosen from the Derkachi route bbox | | Alt | 100 m AGL | Synthetic placeholder; refined when D-PROJ-3 supplies the production scenario | | Attitude | Level flight, heading 0° (north) | Synthetic — chosen to match the parametrize matrix's default | Fully synthetic; no third-party data. Re-distributable under this repository's license. ## Loading path * **ArduPilot**: `mavproxy.py --master=... --cmd="param load cold_boot_fixture.json"` followed by a `FAKE_GPS` injection sequence (handled by the AZ-419 fixture loader; this README only documents the file itself). * **iNav**: MSP2 `SET_HOME` message + `MSP2_SENSOR_GPS` injection. The per-FC wiring is handled by the AZ-419 fixture loader. ## Verification The AZ-407 unit test `e2e/_unit_tests/fixtures/test_cold_boot_fixture.py` asserts: * The file is valid JSON * The `_schema` field equals `cold-boot-fixture/v1` * All required numeric fields are present and within physically reasonable bounds (±90° lat, ±180° lon, > 0 alt, etc.) AC-4 (SITL loads the pose within ±1 m of the lat/lon/alt fields) is verified by AZ-419's FT-P-11 test inside the Docker-bound runner — that path requires SITL, which the AZ-407 unit test layer cannot exercise. ## Owned by AZ-407 (this file) + AZ-419 (the loader that consumes it).