ESP32-S3 · W12 timing architecture

Trace BLE reception into the disciplined local clock, then follow the relay’s timing train publisher from each new original to its later correction. Inspect phase, rate, publication and PPS evidence along the working RC1 / RC2 path.

Download SVG

Trace the explicit fine-clock BLE100 capture path, causal clock and estimated RC7 relay publisher. BLE50 keeps its separate baseline counter path. Optional GNSS is a read-only witness; GM/HOT remain unsupported.

W12 0.2.10 · explicit fine-clock BLE100: MCPWM1 80 MHz · BLE50 baseline client-only · estimated RC7 relay · GNSS shadow only on the verified profile.

ESP32-S3 · W12 timing architecture W12 explicit fine-clock BLE100 uses continuous MCPWM1 80 MHz capture, exact packet association, narrow IRAM clock bridges and capture-frozen dense fitting. BLE50 retains the baseline GPTimer path. Optional physical PPS observes prior available models without training BLE. The BLE100 RC7 relay freezes source context and publication maps; four validated projections estimate programmed TX. RF and UTC bounds remain unknown. GM/HOT remain unsupported. ESP32-S3 · W12 timing architecture W12 0.2.10 · fine-clock BLE100 capture + estimated RC7 relay · BLE50 baseline client · independent PPS shadow Clock / capture hardware Clock-domain mapping Software discipline Delivered time / observation Relay clock / train publication profile-specific counter mapped physical RX coordinate normalize before estimator matched physical observations phase + rate, not quartz tuning prior-map errors / age continuous local coordinate PPS edge mapped PPS edge Independent witness · no return path to BLE discipline admission / source expiry ≠ timing observation clock map accepted parent original + inherited root context slot intent + frozen publication → new original selected TX reference → frozen map → later correction Regenerated downstream timing Crystal and CPU clocks40 MHz XTAL · fixed quartzCPU: 240 MHz · ≈4.167 ns/cycle Continuous fine counterMCPWM1 · 80 MHz / 12.5 ns rawCH0 RX16 · CH2 CURRENT latchBaseline: GPTimer 20 MHz BLE RX event recordsRW marker + exact descriptorStable bytes / event / channelPDU191 fine · PDU159 descriptorCallback is availability only Counter / BLE bridgeNarrow IRAM ROM read apertureDriver-owned CURRENT latchesValidate / convert outside bracketBounded polls · epoch guards Capture / payload matchExact complete bytes + syncSingle stable record · ≤250 msEvent / channel / capture epoch RX phase conventionFine: RW fall minus 1568 usLegacy: normalized descriptorRF endpoint remains unqualified Authenticated timing pairsSaved original + later correctionExact publication / event / channelParent ticks + signed UTC mappingRoot / boot / path / source age Dense causal phase / rate64 points · retain 16 Hz opportunitiesFreeze prediction before correctionRate / phase / acceleration separate Software clock actuatorFine phase <2 us: 1 ppm slewRate ±50 ppm · causal activationDiscontinuity → fence / reacquire Delivered clock and UTCAnchor + elapsed + rate + phase slewProvisional +7671 ns on delivered copiesRaw fit unshifted · signed UTC separateOriginal permission / expiry preserved Causal quality / hold estimatePrior-map RMS / peak + phase + age guardsKeep failed forecasts and unavailable intervalsForecast and display lock ≠ qualified precision Clock queries and displayActual selected map · FOLLOW / HOLD / expiryGPS packet / fix / PPS indicators are separateSoftware endpoint · electrical output unqualified Optional L76K GNSSExplicit RX39 / PPS41 profileEnable48 LOW · GNSS default OFFNo GNSS discipline of BLE PPS capture / bracketMCPWM0 physical PPS · 80 MHzMap trigger inside bracketRaw / mapped / uncertainty Client lifecycle / permissionsUpstream RX / downstream PASID13 admission · one transient ACLRenewal ≠ fresh timing Independent PPS shadowPrior PPS model · raw and mapped predictions32-point bounded curvature · no BLE feedbackRetain activation races, missing data and tails GM / HOT source · unfinishedOwn-GNSS source discipline, election and HOT takeover remain unfinishedRelay timing is implemented separately and does not create GM authority Wi-Fi / PTS · OFFNo active timing path in this client profilePTS ±500 ns blackout gate remains unmet Relay clock / frozen publication mapRC1 follows root · RC2 follows RC1Freeze path + root envelope + local mapFour publication snapshots + original agePreserve root proof / permission / age Relay phase / slot placementParent ORIGINAL physical RX anchors phase62.5 ms frame · 15.625 ms later slotsBLE100 relay server · later legal slot Timing train publisherSID12 · RC7 190 bytes · 16 Hz periodic trainNew original + up to two earlier correctionsTiming gap: same train, count zero / no READY TX reference / later correctionFour validated projections → rounded meanNominal ADDRESS +40 us · residual +4026 nsProgrammed estimate · RF bound UNKNOWN Downstream timing train / clientsRoot → RC1 → RC2 → receiving clientsEach client pairs its own RX with later correction Unfinished / OFF · independent of the working relay timing path Fixed quartz · software phase / rate discipline · capture resolution, functional lock and calibrated accuracy are separate.

Logical architecture reviewed against PToB W12 0.2.10 / source b5ecbb0. This is a source map for understanding and diagnosis, not live telemetry or a wiring diagram. Local timer, BLE capture and PPS capture resolutions are distinct; calibrated electrical output and absolute UTC remain separate measurements. Measured W12 clock and relay results. Read the low-level timing paper (PDF).

Implementation scope and reference sources

This view follows PToB W12 0.2.10 at source b5ecbb0: the explicit fine-clock BLE100 backend, persistent MCPWM1 counter, exact marker/packet association, capture-frozen dense fitting and narrow IRAM bridges. BLE50 retains its baseline GPTimer path. RC7 publication uses immutable snapshots, source expiry and estimated TX; GM/HOT are unsupported.

Four independently validated programmed-clock projections supply a rounded mean; nominal LE1M ADDRESS is start plus 40 microseconds. Provisional +7671 ns delivered receive phase and +4026 ns relay residual remain separate from the raw fit. Transfer across other units/profiles, RF delay and calibrated UTC remain unqualified. GNSS is an explicit read-only profile; no pending producer-fix deployment result is claimed here.