---
title: "ESP32-Holdover, MCXO-Inspiration und das Einminutenergebnis — PToB-Blog"
description: "Eingefrorene W12-Uhren erreichten 64 Sekunden unter 1 µs bei P99 in Stichproben. Wie wir Holdover messen, Temperatur erfassen wollen und einen externen DS3231 einordnen."
url: "https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/"
language: "de"
robots: "index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"
representations: {"application/json":"https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/?format=json","text/markdown":"https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/?format=markdown"}
format_description: "https://ptob.dev/agent-formats.json"
---

# ESP32-Holdover: eine Minute unter einer Mikrosekunde

Eingefrorene ESP32-Softwareuhren erreichten eine Minute unter 1 µs bei P99 in Stichproben. Als Nächstes wollen wir lernen, wie Temperaturhistorie ihre Vorhersagen verbessern könnte.

[Jonathan Yantis](https://github.com/yantisj2/PToB/blob/main/CREDITS.md) 30. Oktober 2026  4 Min. Lesezeit

![Konzeptdiagramm mit BLE-Ratenlernen, eingefrorenem ESP32-Uhrenmodell und späteren BLE-Beobachtungen zur Prüfung seiner Vorhersage; separater Temperaturhistorienpfad für künftige Versuche.](https://ptob.dev/blog/esp32-holdover-v1.png)

Konzeptbild. Spätere BLE-Beobachtungen prüfen die eingefrorene Uhr, ohne sie zu korrigieren. Temperaturlernen bleibt ein separates Beobachtungsexperiment.

In diesem Beitrag

Eine Präzisionsuhr wird interessant, wenn ihre Referenz verschwindet. Ein kleiner Synchronisationsfehler zeigt, wie gut sie folgt; Holdover zeigt, wie lange ihre eigene Vorhersage nützlich bleibt. Für preiswerte ESP32-Hardware würde eine Minute unter einer Mikrosekunde kurze Funkunterbrechungen zu einem deutlich beherrschbareren Zeitproblem machen.

Unsere W12-Versuche erreichten **64 Sekunden unter 1 µs bei P99 in Stichproben**: Eingefrorene Softwareuhren wurden gegen spätere BLE-Beobachtungen geprüft. Die Inspiration kommt vom mikrocomputerkompensierten Quarzoszillator MCXO: Genug über einen Oszillator lernen, um sein Verhalten vorherzusagen. Kommerzielle [MCXOs](https://q-tech.com/wp-content/uploads/QPDS-0004-QT2010-MCXO.pdf) nutzen besondere Resonatorthermometrie und Kompensation. Wir untersuchen, was sich mit Quarz und Zählern lernen lässt, die auf einer ESP32-S3-Platine bereits vorhanden sind.

## Eine Minute mit eingefrorener Uhr

Solange BLE-Zeit verfügbar ist, lernt W12 die Rate seiner lokalen Uhr. Beim Eintritt in den Haltezustand friert es ausgewählte Rate und Phase ein. Die Ratenwahl nutzt nur bereits empfangene Beobachtungen; künftige Pakete können diese Vorhersage nicht rückwirkend verbessern.

Im Versuch laufen zeitversetzte Uhrenkopien weiter, während der normale Empfänger weiterhin synchronisiert. Spätere BLE-Pakete werden zu Referenzbeobachtungen: Sie prüfen jede eingefrorene Kopie, ohne sie zu korrigieren. Für jedes geprüfte Alter behalten wir den bis dahin größten absoluten Stichprobenfehler des Laufs. P99 beschreibt dann diese Maxima je Lauf. Eine gute letzte Stichprobe kann eine frühere Überschreitung nicht löschen.

Das [vollständig nachgerechnete 64-Sekunden-Fenster](https://ptob.dev/de/forschung/ble-holdover-messungen/) enthält 128 Präfixe mit **P99 760 ns und Maximum 879 ns**. Eine separate feste Kohorte aus 128 ausgereiften Läufen besteht bis **75 Sekunden bei P99 983 ns** und scheitert bei 76 Sekunden. Diese feinere Analyse nutzt ihre eigene Population; sie verlängert nicht jeden gleitenden Anzeigewert auf 75 Sekunden. Die späteren gleitenden Fenster beider Geräte endeten bei 24 Sekunden.

Diese überlappenden Läufe teilen Uhrenhistorie. Sie messen die Übereinstimmung mit empfangener BLE-Zeit im Normalbetrieb und behalten Lücken und unbekannte Ausgänge bei. Sie belegen weder durchgängige Genauigkeit zwischen Beobachtungen noch unabhängig kalibrierte UTC oder elektrische Ausgabe. Absichtlicher Referenzausfall und physischer Grandmaster-Wechsel bleiben separate Versuche.

## Zuerst die Temperaturhistorie erfassen

Temperatur liegt als Verdacht nahe, wenn eine gelernte Rate nicht mehr gut vorhersagt. Zugleich kompensiert man leicht die falsche Größe. Der [ESP32-S3-Sensor](https://docs.espressif.com/projects/esp-idf/en/v5.5.5/esp32s3/api-reference/peripherals/temp_sensor.html) misst Siliziumtemperatur; der Quarz kann eine andere Temperatur und Verzögerung haben. Ein früherer thermischer Korrekturversuch erreichte 3,663 µs Maximalfehler gegenüber 362 ns in seiner gepaarten Basis. Produktives HOLD nutzt jetzt allein die BLE-Rate; Temperaturlernen läuft als Beobachtung und macht Vorhersagen, ohne die ausgegebene Uhr zu steuern.

Als Nächstes planen wir eine kompakte Temperatur-/Ratenhistorie für längere Versuche. Der Vorschlag paart sekündliche Sensorbeobachtungen mit trainierten BLE-Frequenzschätzungen und behält Schwankungen, ihre Beziehung und Fehlendatenzahlen. Halbstündliche Zusammenfassungen würden wenig Speicher benötigen und Boot-/Quellenwechsel erhalten. Dauerhafte Aufzeichnung ist noch geplant; vor Aktivierung sind Flash-Schreibzeit- und Wiederanlaufprüfungen nötig.

Wir wollen Erwärmung, Abkühlung und Lastwechsel auf mehreren Platinen erfassen und anschließend mit Läufen validieren, die das Modell nie gesehen hat. Ein brauchbares Temperaturmodell muss Vorhersagen eingefrorener Uhren und deren große Fehler verbessern, einschließlich Wiederanlauf. Eine schöne Temperaturkurve allein verdient noch keinen Platz in der Uhr.

## Was ein externer DS3231 ergänzen könnte

Ein externer [DS3231](https://www.analog.com/media/en/technical-documentation/data-sheets/ds3231.pdf) bietet temperaturkompensierten Oszillator und batteriegepufferten Kalender. Seine spezifizierten ±2 ppm bei 0–40 °C entsprechen bei diesem Frequenzfehler **120 µs Drift in einer Minute**. Unter 1 µs über 60 Sekunden verlangt selbst bei perfekter Startphase etwa 17 Milliardstel verbleibenden Ratenfehler. Das Datenblatt allein kann das nicht versprechen.

Er könnte dennoch längerfristige Kontinuität und einen weiteren zu charakterisierenden Oszillator bieten. Wir würden seine Rechteckflanken in Hardware erfassen, Phase und Frequenz gegen die aktuelle Referenz lernen und dann Vorhersagen bei Ausfällen messen. Zeitstempel auf I²C-Kalenderabfragen ergäben einen weiteren zu vermessenden Zeitpfad. Alterungsabgleich und Kalibrierung können ein einzelnes Gerät verbessern, doch Kurzzeitrauschen, Temperaturwechsel und Erfassungsverzögerung brauchen Messungen. Ein DS3231-Holdover-Ergebnis haben wir noch nicht.

## Holdover in einem Multi-Master-Mesh

Holdover gehört auch zu unserer [künftigen Multi-Master-Grandmaster-Strategie](https://ptob.dev/de/blog/grandmaster-ausfall-und-uhrenensemble/). Ein Empfänger mehrerer Ströme könnte einen kurzen Verlust mit lokaler Vorhersage überbrücken und dabei die übrigen Quellen prüfen. Gemessene Stabilität, Beobachtungsalter und mitgeführte Unsicherheit jedes Beitrags würden dessen Gewicht mitbestimmen.

Gemeinsame Referenzen und zurückgeführte Zeit zählen nicht als unabhängige Uhren. Auch eine gute lokale Vorhersage kann abgelaufene Quellenberechtigung nicht erneuern. Ziel ist brauchbare Kontinuität mit sichtbaren Grenzen: bei gesunden Referenzen lernen, das Altern von Vorhersagen messen und anhand dieser Nachweise entscheiden, wie lange jede Uhr beitragen darf.

Jeder Zeitstempel braucht eine Referenz.
**Welches Ereignis wurde erfasst?**

## Die Einzelheiten erkunden

[Empirisches Holdover unter einer Mikrosekunde Paper, exakte Messpopulationen, Fehlschläge und reproduzierbare Nachweise.](https://ptob.dev/de/forschung/ble-holdover-messungen/)[Auf dem Weg zum Multi-Master-Ensemble Wie mehrere Zeitquellen zur Schätzung eines Empfängers beitragen könnten.](https://ptob.dev/de/blog/grandmaster-ausfall-und-uhrenensemble/)[W12-Zeitarchitektur ESP32-S3-Empfängeruhr, Zeitpfade und Quellengrenzen.](https://ptob.dev/de/hardware/esp32-s3/zeitarchitektur/)

## Quellen und weitere Lektüre

Primärquellen zu den besprochenen Geräten und Methoden.

1. [PToB · Empirical Sub-Microsecond Holdover](https://ptob.dev/de/papers/preview/?file=%2Fpapers%2Fptob-empirical-sub-microsecond-holdover-20261030.pdf)

   Präfixmessungen eingefrorener Uhren, getrennte gleitende und feste Kohorten und Temperatur-Beobachtungshistorie.
2. [Q-Tech · QT2010 MCXO](https://q-tech.com/wp-content/uploads/QPDS-0004-QT2010-MCXO.pdf)

   Kommerzielle MCXO-Architektur und Resonator-Selbstthermometrie; ihre Spezifikationen beschreiben nicht W12.
3. [Espressif · ESP32-S3 temperature sensor](https://docs.espressif.com/projects/esp-idf/en/v5.5.5/esp32s3/api-reference/peripherals/temp_sensor.html)

   Interner Siliziumtemperatursensor und seine Messgrenzen.
4. [Analog Devices · DS3231 datasheet](https://www.analog.com/media/en/technical-documentation/data-sheets/ds3231.pdf)

   RTC-Frequenzgenauigkeit, Batteriepufferung, Rechteckausgänge und Alterungsabgleich.

## Diesen Beitrag zitieren

Jonathan Yantis. ESP32-Holdover: eine Minute unter einer Mikrosekunde PToB-Blog. Veröffentlicht am 30. Oktober 2026.

Artikel-Permalink: [https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/](https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/)

[Zurück zum Blog](https://ptob.dev/de/blog/)[Messnachweise des Projekts ansehen](https://github.com/yantisj2/PToB/blob/main/evidence/README.md)

## Structured data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://ptob.dev/#website",
      "url": "https://ptob.dev/",
      "name": "PToB",
      "alternateName": [
        "Precision Time over BLE",
        "Precision Time over Bluetooth"
      ],
      "description": "Bluetooth and USB software clocks: W12 60.3 ns relative-PPS RMS over 522/600 observations, separate 64 s sampled holdover, and CoreSE diagnostics.",
      "inLanguage": [
        "en",
        "de"
      ],
      "publisher": {
        "@id": "https://ptob.dev/#jonathan-yantis"
      }
    },
    {
      "@type": "Person",
      "@id": "https://ptob.dev/#jonathan-yantis",
      "name": "Jonathan Yantis",
      "url": "https://github.com/yantisj2/PToB/blob/main/CREDITS.md"
    },
    {
      "@type": "Project",
      "@id": "https://ptob.dev/#project",
      "name": "PToB",
      "alternateName": "Precision Time over BLE",
      "url": "https://ptob.dev/",
      "description": "An independent protocol project researching precision time transfer across Bluetooth-enabled microcontrollers and USB clients.",
      "sameAs": "https://github.com/yantisj2/PToB",
      "member": {
        "@id": "https://ptob.dev/#jonathan-yantis"
      },
      "knowsAbout": {
        "@id": "https://ptob.dev/#protocol"
      }
    },
    {
      "@type": "Thing",
      "@id": "https://ptob.dev/#protocol",
      "name": "Precision Time over BLE",
      "alternateName": "PToB",
      "description": "An experimental PTP-inspired protocol proposal for wireless clock synchronization over Bluetooth Low Energy."
    },
    {
      "@type": "WebPage",
      "@id": "https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/#webpage",
      "url": "https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/",
      "name": "ESP32-Holdover, MCXO-Inspiration und das Einminutenergebnis — PToB-Blog",
      "description": "Eingefrorene W12-Uhren erreichten 64 Sekunden unter 1 µs bei P99 in Stichproben. Wie wir Holdover messen, Temperatur erfassen wollen und einen externen DS3231 einordnen.",
      "inLanguage": "de",
      "keywords": [
        "ESP32-S3",
        "Holdover der Uhr",
        "MCXO",
        "Temperaturkompensation",
        "DS3231",
        "Multi-Master-Zeitnetz"
      ],
      "isPartOf": {
        "@id": "https://ptob.dev/#website"
      },
      "author": {
        "@id": "https://ptob.dev/#jonathan-yantis"
      },
      "about": {
        "@id": "https://ptob.dev/#protocol"
      },
      "dateModified": "2026-10-30T00:00:00.000Z",
      "image": "https://ptob.dev/blog/esp32-holdover-v1.png",
      "breadcrumb": {
        "@id": "https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/#breadcrumbs"
      },
      "mainEntity": {
        "@id": "https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/#article"
      },
      "translationOfWork": {
        "@id": "https://ptob.dev/blog/esp32-sub-microsecond-holdover/#webpage"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/#breadcrumbs",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "PToB",
          "item": "https://ptob.dev/de/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://ptob.dev/de/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "ESP32-Holdover: eine Minute unter einer Mikrosekunde",
          "item": "https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/"
        }
      ]
    },
    {
      "@type": "Blog",
      "@id": "https://ptob.dev/de/blog/#blog",
      "url": "https://ptob.dev/de/blog/",
      "name": "PToB-Blog",
      "description": "Entwicklungsnotizen über gemeinsame Zeit, preiswerte Hardware und die Experimente hinter PToB.",
      "inLanguage": "de",
      "publisher": {
        "@id": "https://ptob.dev/#jonathan-yantis"
      },
      "isPartOf": {
        "@id": "https://ptob.dev/#website"
      },
      "blogPost": [
        {
          "@id": "https://ptob.dev/de/blog/esp32-sensoren-ble-synchronisieren/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/esp32-uhren-grundlagen/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/zuverlaessige-firmware-zeitmesh/#article"
        },
        {
          "@id": "https://ptob.dev/blog/lab-sensor-timing-economics/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/starlink-lokaler-stratum-1-zeitserver/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/raspberry-pi-ptp-ntp-ble/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/gnss-resilientes-zeitmesh/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/passives-lora-kanalwechsel/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/lokale-zeit-utc-netz/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/grandmaster-ausfall-und-uhrenensemble/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/ble-uhren-innenraumnavigation/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/passives-ble-esp32/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/warum-utc/#article"
        },
        {
          "@id": "https://ptob.dev/de/blog/warum-ptob/#article"
        }
      ]
    },
    {
      "@type": "BlogPosting",
      "@id": "https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/#article",
      "url": "https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/",
      "headline": "ESP32-Holdover: eine Minute unter einer Mikrosekunde",
      "description": "Eingefrorene W12-Uhren erreichten 64 Sekunden unter 1 µs bei P99 in Stichproben. Wie wir Holdover messen, Temperatur erfassen wollen und einen externen DS3231 einordnen.",
      "mainEntityOfPage": {
        "@id": "https://ptob.dev/de/blog/esp32-holdover-unter-einer-mikrosekunde/#webpage"
      },
      "isPartOf": {
        "@id": "https://ptob.dev/de/blog/#blog"
      },
      "author": {
        "@id": "https://ptob.dev/#jonathan-yantis"
      },
      "publisher": {
        "@id": "https://ptob.dev/#jonathan-yantis"
      },
      "inLanguage": "de",
      "dateCreated": "2026-10-30T00:00:00.000Z",
      "dateModified": "2026-10-30T00:00:00.000Z",
      "datePublished": "2026-10-30T00:00:00.000Z",
      "image": "https://ptob.dev/blog/esp32-holdover-v1.png",
      "articleSection": "Oszillatorvorhersage und Holdover",
      "keywords": [
        "ESP32-S3",
        "Holdover der Uhr",
        "MCXO",
        "Temperaturkompensation",
        "DS3231",
        "Multi-Master-Zeitnetz"
      ],
      "wordCount": 736,
      "citation": [
        {
          "@type": "CreativeWork",
          "name": "PToB · Empirical Sub-Microsecond Holdover",
          "url": "https://ptob.dev/papers/ptob-empirical-sub-microsecond-holdover-20261030.pdf"
        },
        {
          "@type": "CreativeWork",
          "name": "Q-Tech · QT2010 MCXO",
          "url": "https://q-tech.com/wp-content/uploads/QPDS-0004-QT2010-MCXO.pdf"
        },
        {
          "@type": "CreativeWork",
          "name": "Espressif · ESP32-S3 temperature sensor",
          "url": "https://docs.espressif.com/projects/esp-idf/en/v5.5.5/esp32s3/api-reference/peripherals/temp_sensor.html"
        },
        {
          "@type": "CreativeWork",
          "name": "Analog Devices · DS3231 datasheet",
          "url": "https://www.analog.com/media/en/technical-documentation/data-sheets/ds3231.pdf"
        }
      ],
      "about": {
        "@id": "https://ptob.dev/#protocol"
      }
    }
  ]
}
```
