New TLF cohort: intake QA/QC
24 units · snapshot 2026-09-10 00:15 UTC · the drift half of this test has not started
/barrel's own floor for a drift
term is 12 h (MIN_FIT_H) with at least 4 °C of
temperature range, below which it calls the slope “a coin flip”.These 24 units arrived unprovisioned: 23 of them had no Notehub serial, so no barcode and no pumphaus gateway, so every sweep they sent was being dropped at the ingestion boundary. They were provisioned on 2026-09-09 by writing the modem and gateway rows directly, keyed on the Notehub device UID. Data started arriving within 90 seconds and all 23 were reporting inside 15 minutes.
What 876 sweeps say
Every unit starts its bias ramp at the same place, 2798–2824, reading essentially zero. What
differs is where it stops: 2970 on 500189 against 3606 on 500191. The number of cells
returned is that stop point and nothing else, at
corr(cells, top bias) = 1.00.
Measured at a matched bias of 2950, the cohort spans 18× in gain,
107 to 1876 net counts. The units that stop early are the strong ones:
corr(cells returned, gain at 2950) = −0.87. 500189 reads 1521 net where 500191 reads
123 at the same bias.
The per-unit cell count is stable across every sweep taken, not scattered: 500189 returns six every time, 500131 and 500140 seven, 500191 twenty-six. That stability is what rules out a transient and points at a fixed property of each unit.
The standard diagnostic set
The same four traces every campaign page carries, plus the bias sweep, which is where the gain
spread shows. One line per unit. The record is about two and a half hours long, so it is still far short
of the 12 h /barrel requires before a rate can be fitted.
Bias response at LED 512
Net counts against SiPM bias on each unit's most recent sweep, with the number of points in the legend. All 22 start at the same bias and climb the same curve; they differ in where the ramp stops, which is set by how much gain the unit has. The steep short traces belong to the high-gain units.
Brightest cell, per sweep
The peak net response in each sweep, model-free. It answers whether the optics are alive before any estimator is involved.
SiPM temperature
The channel every quench coefficient is fitted against. A drift window needs real excursion here:
/barrel will not fit a cubic below 4 °C of range.
ToF signal
Turbidity and fouling proxy. 500112 sits an order of magnitude above the rest.
Battery
/barrel treats a supply change as a confound to keep drift windows away from, so the
charge state is recorded rather than corrected for.
Per unit
Amplitude yield is the share of sweeps the canonical S-TLF estimator fits. Lag-1 noise is the
Allan-style successive-difference figure /barrel uses as its noise floor, in percent;
on four sweeps it is indicative only. Peak, dark and ToF are medians.
| Barcode | UID | Provisioned | Sweeps | Cells | Amp yield | Lag-1 % | Peak net | Dark | ToF |
|---|---|---|---|---|---|---|---|---|---|
| 500194 | …593492 | 2026-07-02 | no sweeps yet | ||||||
| 500106 | …598285 | 2026-09-01 | 5 | 92 | 100% | 0.60 | 2953 | 171 | 31 |
| 500112 | …596974 | 2026-09-01 | 4 | 74 | 100% | 0.32 | 2963 | 172 | 421 |
| 500120 | …599648 | 2026-09-01 | 4 | 87 | 100% | 0.31 | 3000 | 174 | 33 |
| 500131 | …600263 | 2026-09-01 | 4 | 53 | 0% | n/a | 3052 | 172 | 35 |
| 500138 | …598392 | 2026-09-01 | 5 | 95 | 100% | 0.56 | 2987 | 172 | 43 |
| 500140 | …593088 | 2026-09-01 | 4 | 53 | 0% | n/a | 3120 | 168 | 53 |
| 500158 | …598475 | 2026-09-01 | 4 | 59 | 100% | 0.06 | 2993 | 168 | 47 |
| 500164 | …597931 | 2026-09-01 | 4 | 92 | 100% | 0.22 | 2992 | 169 | 36 |
| 500186 | …597717 | 2026-09-01 | 4 | 92 | 100% | 0.36 | 3097 | 169 | 42 |
| 500189 | …599291 | 2026-09-01 | 4 | 46 | 0% | n/a | 3094 | 170 | 28 |
| 500191 | …599069 | 2026-09-01 | 4 | 96 | 100% | 0.38 | 2989 | 173 | 58 |
| 500104 | …598715 | 2026-09-04 | 4 | 68 | 100% | 0.08 | 3044 | 169 | 34 |
| 500114 | …592296 | 2026-09-04 | 5 | 94 | 100% | 0.68 | 3044 | 170 | 37 |
| 500115 | …596990 | 2026-09-04 | 4 | 94 | 100% | 0.21 | 2959 | 175 | 40 |
| 500135 | …594326 | 2026-09-04 | 4 | 94 | 100% | 0.26 | 3013 | 170 | 49 |
| 500145 | …597774 | 2026-09-04 | 4 | 88 | 100% | 0.27 | 3004 | 169 | 46 |
| 500172 | …593161 | 2026-09-04 | 5 | 96 | 100% | 0.64 | 3023 | 171 | 46 |
| 500180 | …599721 | 2026-09-04 | 4 | 91 | 100% | 0.43 | 2981 | 170 | 45 |
| 500200 | …598046 | 2026-09-04 | 4 | 93 | 100% | 0.22 | 3023 | 174 | 42 |
| 500203 | …592247 | 2026-09-04 | 4 | 94 | 100% | 0.29 | 3002 | 173 | 47 |
| 500229 | …593583 | 2026-09-04 | 4 | 91 | 100% | 0.21 | 3123 | 163 | 46 |
| 50080 | …589862 | 2026-09-04 | 4 | 93 | 100% | 0.26 | 2976 | 166 | 30 |
| 50083 | …597964 | 2026-09-04 | no sweeps yet | ||||||
500194 is the one unit that was already provisioned; it has been reporting
since 3 July and is listed here for continuity. Its firmware was pinned to a different build (20-1, the opposite cadence), so its history before this cohort is not directly comparable.
Firmware
The cohort shipped on v0.1.18. All 24 are targeted at
tlf-main-log-unsafe-1m-20m-v0_1_20$20260821202810.binpack (1 minute sampling,
20 minute sync), set per device rather than on the fleet.
_fw on the device overrides the fleet and touches
only the intended units.Confirmed on all 24 by reading the value back, and the Notehub serial number is now
set on all 24 as well, through the reserved _sn variable. Setting a target is not the same as
running it, so the sampling cadence is what confirms pickup: the old build sampled every ~900 s, the new one
every 92–286 s.
⚠️ Which build a unit was on during a window is exactly the kind of thing a drift record has to carry rather than assume, so the state above is measured from the data, not from the write that requested it.
What the drift test needs before it can start
Taken from what /barrel and /findings established the hard way:
- A logged switch-on, water change and every handling event. A slope fitted across interventions measures the steps.
/barrel's “days 2–5” window crossed four of them and reported −13.56 %/day against a half-window disagreement of 20.74. - Windows bounded by events and opened 2 h after one. That change alone took
/findingsfrom 2 of 9 windows separable to 7 of 9. - 12 h minimum and a real temperature excursion. Below
MIN_T_RANGE_C= 4 a cubic quench is unsupported, and where|corr(days, T)| > 0.9no rate can be quoted at all. - A hold long enough to settle. Successive 6 h blocks in the one reliable window read −1.32, −1.12, −0.76 then −0.53 %/day, so a short hold measures the settling transient sitting on the drift.
Once those are in place this page gains the drift, quench and split-half reliability panels that
/barrel carries.
Provenance
Sweeps read from api_samplesraw.raw_payload joined through
api_payload.modem_id to api_gateway, selected on the cohort's provisioning
description. Amplitudes from the canonical estimator in shared/tlf-amp.js, each unit's
shape built on its own sweeps. Firmware and provisioning state from the Notehub API. Snapshot taken
2026-09-10 00:15 UTC; the figures move as data arrives.