{
  "schema": "kleidos.power/2",
  "doc_id": "tdeck/light_sleep_idle_total/2026-10-29-01",
  "kind": "point",
  "recorded_by": "power_campaign",
  "recorded_utc": "2026-10-29T13:16:51Z",
  "captured_utc": "2026-10-29T13:15:41Z",
  "supersedes": [],
  "narrative": {
    "doc": "docs/testing/power-campaign-tdeck.md",
    "anchor": "#td-16-powerrun-plans-under-the-bench-meter-every-state-one-cut-per-plan"
  },
  "artifact": {
    "row_id": "td16",
    "verdict_status": "PASS",
    "path": "qa/.artifacts/power/td16/20261029-133355"
  },
  "campaign": null,
  "retracted": null,
  "quantity": {
    "name": "light_sleep_idle_total",
    "kind": "absolute",
    "unit": "mA",
    "primary": "current_ma",
    "sense_point": "cell_positive",
    "knob": null,
    "element": null,
    "method": null,
    "comparable_across_sessions": true
  },
  "subject": {
    "board": "tdeck",
    "board_unit": null,
    "env": "tdeck_debug",
    "env_probe": "console_present",
    "firmware": {
      "version": "0.1.0",
      "git_head": "bf3fa4acea4869e2cd51d0f6eca90cb76c2bf2dd",
      "elf_sha256": "321b66c03e10894bdcff77fc7bc9dd05c9b270e69e92f4fddd85b8f43b0c0cf8",
      "provenance": "recorded",
      "notes": "elf_sha256 is the local build of tdeck_debug, confirmed by the board's VER? elf_sha=321b66c03e10894b; this row built and flashed it from that commit, firmware paths clean"
    }
  },
  "instrument": {
    "kind": "ina228_bench",
    "id": "kleidos-meter",
    "shunt_mohm": 100.0,
    "shunt_measured": true,
    "position": "A: the shunt in the battery pack's positive wire, VBUS on the source side (CAL VBUSSIDE SOURCE)",
    "profile": "SLEEP",
    "range": 0,
    "current_lsb_pa": 3125000,
    "channels": [
      "i_ua",
      "v_mv",
      "die_c"
    ],
    "pace": "timer",
    "osc_tol_ppm": 10000,
    "period_us": 67520,
    "quality": "cal",
    "null": {
      "offset_pa": null,
      "die_c": null,
      "dev_uv": null,
      "n": null
    },
    "gain_pct": 1.0,
    "offset_floor_ua": 0.5,
    "caveat": "The shunt is an R100 whose resistance has never been measured to better than its nominal: a 2-wire DMM read 0.10 ohm at 0.01 ohm resolution, which rules out a wrong part and cannot resolve 1 %. So every figure carries the part's 1 % tolerance as an assumed gain uncertainty, whether the meter reports q=uncal (nominal never declared) or q=cal (nominal declared with CAL SHUNT, accepted by the owner on 2026-10-28). It is 1 % of an absolute level and 1 % of a difference: a gain error never cancels in a subtraction, only the offset does. The offset's residual on an absolute reading is about +-0.5 uA, and range 0's 3.125 uA quantum adds up to +-1.56 uA of bias on a very quiet level.",
    "bias_vs_reference": null,
    "firmware": null,
    "wiring_rev": null
  },
  "conditions": {
    "state": {
      "fsm": "HOME",
      "screen": "vault list, panel asleep",
      "vault": "unlocked",
      "sleep_mode": "none",
      "requested_s": null,
      "confirmed_by": [
        "POWERRUN lsleep phase 0 (home_off): held=1 complete=1 app=HOME"
      ]
    },
    "radios": {
      "ble": "off",
      "wifi": "off"
    },
    "peripherals": {},
    "attachments": {
      "sd_card": "no",
      "usb_cable": "yes",
      "hub_port": "no",
      "hub_power_state": "cut",
      "hub_label": null,
      "jtag_probe": "no",
      "charger_in_loop": "no",
      "extra": [
        "the bench hub's port was cut inside the first phase's settle, so the cell alone fed the board for every measured window"
      ]
    },
    "knobs": {
      "backlight_percent": 0,
      "brightness_setting": null,
      "kb_light_percent": 0,
      "kb_light_duty": 0,
      "totp_on": null,
      "auto_lock": "disabled"
    },
    "clock": {
      "cpu_mhz": 80,
      "asked_mhz": 80,
      "boot_mhz": 160,
      "apb_hz": 80000000,
      "xtal_mhz": 40,
      "idle_floor": true,
      "idle_mhz": 40,
      "light_sleep_built": true,
      "light_sleep_allowed": true,
      "frame_clock": "on",
      "frame_mhz": 160,
      "bl_clk": "RC_FAST",
      "bl_hz": 4999,
      "pre_mhz": null,
      "source": "CLOCK?",
      "note": "cpu_mhz and frame_clock are what the board reported for this phase (POWERRUN?'s cpu= and fclk=); the rest is CLOCK? read at HOME before the run, build facts of the same image"
    },
    "cell": {
      "cell_id": "tdeck-pack-2000",
      "nominal_mah": 2000,
      "charging": false,
      "rested": false
    },
    "environment": {
      "ambient_c": null,
      "die_c": null
    },
    "vault": {
      "fill": "demo",
      "creds": 12,
      "totp": 4,
      "content": "adddummy",
      "cap_creds": null,
      "cap_totp": null,
      "source": "qa/.artifacts/power/td16/20261029-133355/results.jsonl meta demo_vault: VAULT? unlocked=1 creds=12 totp=4 after WIPEVAULT, PIN and ADDDUMMY (the harness's demo vault); the image did not print its capacities"
    }
  },
  "baseline": null,
  "isolation": null,
  "points": [
    {
      "level": null,
      "applied": null,
      "applied_unit": null,
      "applied_source": null,
      "source": "measured",
      "model": null,
      "found": true,
      "current_ma": {
        "value": 26.986670471736478,
        "source": "measured",
        "sd": 0.39979789336640675,
        "mad": 0.1843749999999993,
        "min": 25.881535,
        "max": 28.475285,
        "n": 2459,
        "median": 27.12841,
        "series": [
          26.9659,
          27.0751,
          27.0749,
          26.9809,
          27.0528,
          26.9907,
          27.0603,
          27.1015,
          26.9517,
          27.129,
          26.9277,
          27.0845,
          26.9903,
          27.0324,
          27.0315,
          26.9675,
          27.0359,
          27.0426,
          26.9655,
          27.0826,
          26.9722,
          27.08,
          27.068,
          26.9649,
          27.0388,
          26.9572,
          27.0572,
          27.0342,
          26.8851,
          27.0599,
          26.8915,
          27.0949,
          27.0174,
          26.9509,
          27.0317,
          26.8972,
          27.021,
          27.0461,
          26.9363,
          27.0588,
          26.9311,
          27.0909,
          27.0726,
          26.962,
          27.0176,
          27.0459,
          26.9501,
          27.1081,
          26.9074,
          27.0928,
          27.0178,
          26.943,
          27.061,
          26.9005,
          27.064,
          26.9824,
          26.9392,
          27.0411,
          26.9045,
          27.003,
          26.9959,
          27.0051,
          27.0165,
          26.919,
          27.0353,
          27.0042,
          26.9632,
          27.0351,
          26.9268,
          26.9984,
          27.073,
          26.8755,
          27.0351,
          26.9215,
          27.0409,
          26.9953,
          26.939,
          27.0542,
          26.9126,
          27.0425,
          26.9745,
          26.9157,
          27.0578,
          26.8463,
          27.0822,
          26.9799,
          26.9565,
          26.9945,
          26.9236,
          27.0532,
          27.0876,
          26.9115,
          27.0495,
          26.917,
          27.0023,
          27.0278,
          26.8567,
          26.9907,
          26.9459,
          26.9911,
          27.086,
          26.872,
          27.0438,
          26.8584,
          27.0465,
          27.0219,
          26.9151,
          27.0199,
          26.9092,
          27.0203,
          27.0407,
          26.953,
          27.0276,
          26.8709,
          27.0811,
          27.0115,
          26.9489,
          26.9913,
          26.617,
          26.6278,
          26.8065,
          27.0126,
          26.9767,
          26.9101,
          27.0357,
          26.8972,
          27.0626,
          27.0615,
          26.8659,
          27.0132,
          26.9828,
          26.9657,
          27.0809,
          26.8705,
          27.0503,
          26.9451,
          26.9695,
          27.026,
          26.9088,
          27.0363,
          26.9713,
          26.9255,
          27.0858,
          26.8888,
          26.9928,
          26.8999,
          27.0328,
          26.9864,
          26.9586,
          27.0076,
          26.9459,
          26.9757,
          27.084,
          26.8776,
          27.037,
          26.9545,
          26.9853,
          27.0107,
          26.9217,
          27.0263,
          26.9692,
          26.9103,
          27.073,
          26.8889,
          27.0634,
          26.9305
        ]
      },
      "voltage_mv": {
        "value": 4113.95775843839,
        "source": "measured",
        "sd": 2.2425262952553005,
        "mad": 1.6790000000000873,
        "min": 4105.875,
        "max": 4123.34,
        "n": 2459,
        "median": 4113.759
      },
      "power_mw": {
        "value": 111.02197339546954,
        "source": "derived",
        "model": "mean of i x v over the window's 2459 paired samples"
      },
      "window": {
        "duration_s": 166.0,
        "n": 2459,
        "t0_s": 15.5065,
        "t1_s": 181.5065,
        "statistic": "mean",
        "series_bin_s": 1.0
      }
    }
  ],
  "axis": null,
  "shape": null,
  "checks": {
    "dropped": 0,
    "read_err": 0,
    "flags": "0x4003",
    "status": "PASS",
    "failures": [],
    "n_samples": 2459,
    "duration_s": 166.0
  },
  "uncertainty": {
    "gain_pct": 1.0,
    "gain_abs": 0.2698667047173648,
    "gain_source": "assumed_shunt_tolerance",
    "repeat_spread": null,
    "board_wander_ma": null,
    "offset_residual_ua": 0.5,
    "random_basis": "batch_means",
    "quotable": true,
    "gain_is_assumed": true,
    "qualified": true,
    "unqualified_reason": null,
    "random_abs": 0.008578177,
    "random_ci95_abs": 0.017066669,
    "random_n": 166.0,
    "random_sd": 0.077859066,
    "n_eff": 82.381258245,
    "tau_int_samples": 2.01502142,
    "batch_b": 13,
    "batch_m": 12,
    "systematic_abs": 0.156952254,
    "systematic_bound_abs": 0.303134705,
    "systematic_pct": 0.581591769,
    "systematic_terms": [
      {
        "name": "gain",
        "value": 0.269866705,
        "unit": "mA",
        "distribution": "rectangular",
        "divisor": 1.732051,
        "assumed": true,
        "note": "1 % of the figure, from assumed_shunt_tolerance. It rides on THIS number: on a difference that is 1 % of the difference, never 1 % of each level; the shunt is marked R100 with no tolerance and has never been measured, so this is an assumption and not a bound"
      },
      {
        "name": "inl",
        "value": 0.032768,
        "unit": "mA",
        "distribution": "rectangular",
        "divisor": 1.732051,
        "assumed": true,
        "note": "the datasheet prints INL as +-2 m% with no test condition and no reference quantity; read as a percentage of full scale \u2014 the usual ADC convention and the conservative one \u2014 it is this much, and read as a percentage of reading it is negligible"
      },
      {
        "name": "offset_drift",
        "value": 0.0005,
        "unit": "mA",
        "distribution": "rectangular",
        "divisor": 1.732051,
        "assumed": false,
        "note": "dVos/dT at +-10 nV/C max over the firmware's +-5 C staleness window. The null itself is subtracted; this is how far it may have moved since"
      }
    ],
    "offset_cancels": false,
    "sigma_inst_ua": 2.331712904,
    "sigma_inst_divisor": 6.6,
    "combined_abs": 0.157186498,
    "coverage_k": 2.0,
    "expanded_abs": 0.314372996,
    "interval": [
      26.672297475,
      27.301043468
    ],
    "dominant_term": "gain",
    "unresolved": [
      "inl_reference: full scale or reading, unanswered by the datasheet"
    ],
    "model": {
      "id": "kleidos.power.uncertainty/1",
      "computed_utc": "2026-10-29T13:16:51Z",
      "inputs": [],
      "code": "qa_lib.power.model:compute"
    }
  },
  "caveats": [
    {
      "class": "posture",
      "code": "debug_image_commanded",
      "text": "POWERRUN is a debug-console command, so the image measured is the _debug one, which also runs the console and its log task. A state's draw on the release image is not measured here.",
      "evidence": [
        "docs/testing/serial-debug-commands.md"
      ],
      "affects": "comparability",
      "blocks_quote": false
    },
    {
      "class": "method_limit",
      "code": "powerrun_phase_window",
      "text": "Each figure is the mean of one POWERRUN phase's window after its settle, placed from the plan's own dwell and settle on the stream's clock, one run.",
      "evidence": [
        "qa/tools/power_campaign.py:powerrun_windows"
      ],
      "affects": "value",
      "blocks_quote": false
    }
  ],
  "refusal": null
}
