3.12.14 (main, Aug 25 2026, 14:01:42) [MSC v.1944 64 bit (AMD64)]
{
  "requested_half_period_ms": 500,
  "nominal_full_period_ms": 1000,
  "nominal_frequency_hz": 1.0,
  "default_hal_tick_ms": 1,
  "hal_delay_wait_threshold_ticks": 501,
  "note": "HAL_Delay adds one default tick to its comparison threshold. Tick phase, execution time, clock tolerance and interrupts affect observed timing. No exact hardware period is claimed."
}

Actual source checks: USER CODE3 calls, HAL_Delay adds tick, TogglePin reads ODR then BSRR, HSI-only generated clocks, two actual compile_commands.json verify Debug/Release flags. Firmware built on server; no CubeIDE UI execution, programmer connection, Option Bytes write or board measurement.
