• NTP "split" Stratum 1 time source

    From Karl Denninger@karl@denninger.net to questions on Mon Jul 21 01:48:00 2025
    From Newsgroup: comp.protocols.time.ntp

    This is a cryptographically signed message in MIME format.

    --------------ms030608080402030303060000
    Content-Type: multipart/alternative;
    boundary="------------VS13GsKeV00yil5vrGUvzQYb"

    --------------VS13GsKeV00yil5vrGUvzQYb
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    Rm9yIHF1aXRlIGEgbG9uZyB0aW1lIChiYWNrIHRvIHdoZW4gSSBoYWQgYSBXV1ZCIHJlY2Vp dmVyISkgSSBoYXZlIHVzZWQgDQpudHBkIHdpdGggdmFyaW91cyBzb3VyY2VzIHdpdGggUFBT IHRvIHNldCB1cCBhIFN0cmF0dW0gMSB0aW1lc2VydmVyIC0tIA0KbW9zdCB3aXRob3V0IG11 Y2ggaW5jaWRlbnQuDQoNClJlY2VudGx5IEkgZ290IGludGVyZXN0ZWQgaW4gdHJ5aW5nIHRv IG1ha2UgdGhpcyB3b3JrIG9uIGEgUGkzIGFzIHRoYXQgDQp3b3VsZCBtYWtlIGZvciBhIH4k NTAgdG90YWwgU3RyYXR1bSAxIHNlcnZlciAocmF0aGVyIG5pY2UgYXMgdG8gcHJpY2UpLCAN CndoaWNoIGhhcyBvbmx5IG9uZSBzZXJpYWwgcG9ydCBidXQgbG90cyBvZiBHUElPcyAtLSBh bmQgdGhlcmUgYXJlIHBsZW50eSANCm9mIGluZXhwZW5zaXZlIFVTQi1jb25uZWN0ZWQgR1BT IHJlY2VpdmVycyBhbGwgb3ZlciBBbWF6b24gYW5kIHNpbWlsYXIgDQp3aGljaCBjYW4gb3V0 cHV0IE5NRUEgc2VudGVuY2VzIC9hbmQgL2hhdmUgYSBQUFMgb3V0cHV0IHBpbi7CoCBJJ2Qg cHJlZmVyIA0KdG8gbGVhdmUgdGhlIFBpMydzIFVBUlQgYXZhaWxhYmxlIGFzIGEgY29uc29s ZSBzaW5jZSBpZiBhbnl0aGluZyBnb2VzIA0Kd3JvbmcgbmV0d29yay13aXNlIHRoZXJlJ3Mg bm8gb3RoZXIgd2F5IGJhY2sgaW50byBpdCBpZiB5b3Ugc2h1dCB0aGF0IA0Kb2ZmIC0tIHRo ZSBHUFMgYm9hcmQgZG9lcyBhbHNvIGhhdmUgc2VyaWFsIG91dHB1dCBhdmFpbGFibGUgYnV0 IGF0IA0KcHJlc2VudCBJJ20gbm90IHVzaW5nIGl0Lg0KDQpVc2luZyB0aGUgR1BTIHRocm91 Z2ggVVNCIHdpdGhvdXQgUFBTIHdvcmtzIGFzIGl0IGFwcGVhcnMgdG8gYmUgYSBDT00gDQpw b3J0IHRvIHRoZSBzeXN0ZW0gYnV0IG9mIGNvdXJzZSB0aGF0IGlzbid0IGFzIHN0YWJsZSBh cyBpdCBjb3VsZCB3aXRoIGEgDQpzdGFibGUgUFBTIHNpZ25hbC7CoCBBbHRob3VnaCAtLSB0 aGlzIGlzbid0IGhvcnJpYmxlIGFmdGVyIGl0cyBiZWVuIA0KcnVubmluZyBmb3IgYSBmZXcg aG91cnM6DQoNCm50cHE+IHBlZXINCiDCoCDCoCDCoHJlbW90ZcKgIMKgIMKgIMKgIMKgIMKg cmVmaWTCoCDCoCDCoCBzdCB0IHdoZW4gcG9sbCByZWFjaMKgIMKgZGVsYXkgwqBvZmZzZXTC oCANCmppdHRlcg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoqR1BTX05NRUEoMCnCoCDC oCDCoC5HUFMuwqAgwqAgwqAgwqAgwqAgwqAgMCBswqAgwqAxNMKgIMKgMTbCoCAzNzfCoCDC oCAwLjAwMCDCoC0wLjU4McKgIA0KIMKgMS42ODMNCg0KbnRwcT4gc3lzaQ0KYXNzb2NpZD0w IHN0YXR1cz0wNDE1IGxlYXBfbm9uZSwgc3luY191aGZfcmFkaW8sIDEgZXZlbnQsIGNsb2Nr X3N5bmMsDQpzeXN0ZW0gcGVlcjrCoCDCoCDCoCDCoCBHUFNfTk1FQSgwKQ0Kc3lzdGVtIHBl ZXIgbW9kZTrCoCDCoGNsaWVudA0KbGVhcCBpbmRpY2F0b3I6wqAgwqAgwqAwMA0Kc3RyYXR1 bTrCoCDCoCDCoCDCoCDCoCDCoCAxDQpsb2cyIHByZWNpc2lvbjrCoCDCoCDCoC0yMg0Kcm9v dCBkZWxheTrCoCDCoCDCoCDCoCDCoDAuMDAwDQpyb290IGRpc3BlcnNpb246wqAgwqAgMy4w ODgNCnJlZmVyZW5jZSBJRDrCoCDCoCDCoCDCoEdQUw0KcmVmZXJlbmNlIHRpbWU6wqAgwqAg wqBlYzI4MTk4My41MWRmZmNkYcKgIFN1biwgSnVsIDIwIDIwMjUgMjE6NDI6MjcuMzE5DQpz eXN0ZW0gaml0dGVyOsKgIMKgIMKgIDEuNjgyOTkzDQpjbG9jayBqaXR0ZXI6wqAgwqAgwqAg wqAxLjcyNQ0KY2xvY2sgd2FuZGVyOsKgIMKgIMKgIMKgMC4wMjINCmJyb2FkY2FzdCBkZWxh eTrCoCDCoCAtNTAuMDAwDQpzeW1tLiBhdXRoLiBkZWxheTrCoCAwLjAwMA0KDQpUaGUgUGkz IGhhcyBhIGtlcm5lbCBkcml2ZXIgdW5kZXIgRnJlZUJTRCwgYW5kIGEgZHRibyBvdmVybGF5 LCB0aGF0IA0KZ2l2ZXMgeW91IHRoZSBQUFMgc2lnbmFsIHZpYSBvbmUgb2YgdGhlIEdQSU8g cGlucyAocGljayBhbiB1bnVzZWQgb25lKSANCndoaWNoIHdvdWxkIGFwcGVhciB0byBiZSBn cmVhdC4NCg0KVGhlIHByb2JsZW0gYXBwZWFycyB0byBiZSB0aGF0IHRoZXJlIGlzIGVub3Vn aCBza2V3IGJldHdlZW4gdGhlIFBQUyANCmlucHV0ICh3aGljaCBJIHByZXN1bWUgaXMgc3Rh YmxlIHNpbmNlIGl0cyBjb21pbmcgaW4gb24gYSBHUElPIGFuZCANCnRoZXJlJ3MgaW50ZXJy dXB0LWRyaXZlbiBrZXJuZWwgc3VwcG9ydCkgYW5kIFVTQiB0aW1lIHNpZ25hbCB3aGljaCBJ IA0KcHJlc3VtZSBpcyBub3QgbmVjZXNzYXJpbHkgZGV0ZXJtaW5pc3RpYyBpbiB0ZXJtcyBv ZiBpdHMgbGF0ZW5jeSAtLSBhbmQgDQphZnRlciBhIHdoaWxlIG50cGQgZGVjbGFyZXMgYm90 aCBmYWxzZSB0aWNrZXJzICgieCIgc3RhdHVzLinCoCBJdCB3aWxsIA0KY2xlYXIgZm9yIGEg d2hpbGUgYW5kIG9uY2UgYWdhaW4gcmVjb2duaXplIGJvdGggYW5kIHRoZW4gYWZ0ZXIgYSB3 aGlsZSANCmdvZXMgIngiIHN0YXR1cyBhZ2Fpbi7CoCBJIGRvIGhhdmUgYSAiZnVkZ2UiIGxp bmUgaW4gdGhlIFVTQiBpbnB1dCANCih3aXRob3V0IGl0IHRoZSBQUFMgaXMgbmV2ZXIgcmVj b2duaXplZCBhcyB2YWxpZCwgYW5kIGl0IGFwcGVhcnMgaXQgDQpyZWFsbHkgaXMgcmVxdWly ZWQgZnJvbSBsb29raW5nIGF0IHRoZSBvZmZzZXRzIGlmIEkgZ3JhYiByZWZlcmVuY2UgZnJv bSANCnBvb2wgc2VydmVycyBhbmQgY29tcGFyZS4pwqAgTXkgL2V0Yy9udHAuY29uZiBjb25m aWcgKHdoZW4gSSB1bmNvbW1lbnQgDQp0aGUgUFBTIHNpZ25hbCBsaW5lKSBpczoNCg0Kc2Vy dmVyIDEyNy4xMjcuMjAuMCBwcmVmZXIgbWF4cG9sbCA0DQpmdWRnZSAxMjcuMTI3LjIwLjAg dGltZTIgKzAuMDYyDQojIFBQUyBpbnB1dA0Kc2VydmVyIDEyNy4xMjcuMjIuMCBtaW5wb2xs IDQgbWF4cG9sbCA0DQoNCkknbSBvbiBGcmVlQlNEIGlmIGl0IG1hdHRlcnMgaW4gdGhpcyBj YXNlIGJ1dCBpcyB0aGlzIGp1c3Qgb25lIG9mIHRob3NlIA0KIm5vIHJlYWwgd2F5IHRvIHJl c29sdmUgaXQgZHVlIHRvIHRoZSBza2V3IGluIGxhdGVuY3kgdGhhdCBpcyB1bnN0YWJsZSAN CmJldHdlZW4gdGhlIEdQUyBvdXRwdXQgYW5kIHRoZSBQUFMgc2lnbmFsIj/CoCBJJ2QgaGF2 ZSBhc3N1bWVkIHRoZSBQUFMgDQpkaXNjaXBsaW5lIHdvdWxkIGVzc2VudGlhbGx5IHNlcnZl IGFzIHRoZSAibG9jayIgYW5kLCBwcm92aWRlZCB0aGUgR1BTIA0Kb3V0cHV0IHdhcyByZWFz b25hYmx5IHdpdGhpbiB0aGUgUFBTIHdpbmRvdyBhbGwgd291bGQgYmUgd2VsbCwgYnV0IA0K dGhhdCdzIG5vdCB3aGF0IGFwcGVhcnMgdG8gYmUgdGhlIGNhc2UuDQoNCi0tIA0KS2FybCBE ZW5uaW5nZXINCmthcmxAZGVubmluZ2VyLm5ldA0KL1RoZSBNYXJrZXQgVGlja2VyLw0KL1tT L01JTUUgZW5jcnlwdGVkIGVtYWlsIHByZWZlcnJlZF0vDQo= --------------VS13GsKeV00yil5vrGUvzQYb
    Content-Type: text/html; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    <!DOCTYPE html>
    <html>
    <head>

    <meta http-equiv=3D"content-type" content=3D"text/html; charset=3DUTF=

    </head>
    <body>
    <p>For quite a long time (back to when I had a WWVB receiver!) I
    have used ntpd with various sources with PPS to set up a Stratum 1
    timeserver -- most without much incident.</p>
    <p>Recently I got interested in trying to make this work on a Pi3 as
    that would make for a ~$50 total Stratum 1 server (rather nice as
    to price), which has only one serial port but lots of GPIOs -- and
    there are plenty of inexpensive USB-connected GPS receivers all
    over Amazon and similar which can output NMEA sentences=C2=A0<i>and= =C2=A0</i>have
    a PPS output pin.=C2=A0 I'd prefer to leave the Pi3's UART availabl=
    e as
    a console since if anything goes wrong network-wise there's no
    other way back into it if you shut that off -- the GPS board does
    also have serial output available but at present I'm not using it.<=

    <p>Using the GPS through USB without PPS works as it appears to be a
    COM port to the system but of course that isn't as stable as it
    could with a stable PPS signal.=C2=A0 Although -- this isn't horrib=
    le
    after its been running for a few hours:</p>
    <p><font face=3D"monospace">ntpq&gt; peer<br>
    =C2=A0 =C2=A0 =C2=A0remote=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= refid=C2=A0 =C2=A0 =C2=A0 st t when poll reach=C2=A0 =C2=A0delay=C2=A0
    =C2=A0offset=C2=A0 jitter<br> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D<br>
    *GPS_NMEA(0)=C2=A0 =C2=A0 =C2=A0.GPS.=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 0 l=C2=A0 =C2=A014=C2=A0 =C2=A016=C2=A0 377=C2=A0 =C2=A0 0.= 000=C2=A0
    =C2=A0-0.581=C2=A0 =C2=A01.683</font></p>
    <p><font face=3D"monospace">ntpq&gt; sysi<br>
    associd=3D0 status=3D0415 leap_none, sync_uhf_radio, 1 event,
    clock_sync,<br>
    system peer:=C2=A0 =C2=A0 =C2=A0 =C2=A0 GPS_NMEA(0)<br>
    system peer mode:=C2=A0 =C2=A0client<br>
    leap indicator:=C2=A0 =C2=A0 =C2=A000<br>
    stratum:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1<br>
    log2 precision:=C2=A0 =C2=A0 =C2=A0-22<br>
    root delay:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00.000<br>
    root dispersion:=C2=A0 =C2=A0 3.088<br>
    reference ID:=C2=A0 =C2=A0 =C2=A0 =C2=A0GPS<br>
    reference time:=C2=A0 =C2=A0 =C2=A0ec281983.51dffcda=C2=A0 Sun, J=
    ul 20 2025
    21:42:27.319<br>
    system jitter:=C2=A0 =C2=A0 =C2=A0 1.682993<br>
    clock jitter:=C2=A0 =C2=A0 =C2=A0 =C2=A01.725<br>
    clock wander:=C2=A0 =C2=A0 =C2=A0 =C2=A00.022<br>
    broadcast delay:=C2=A0 =C2=A0 -50.000<br>
    symm. auth. delay:=C2=A0 0.000</font><br>
    </p>
    <p>The Pi3 has a kernel driver under FreeBSD, and a dtbo overlay,
    that gives you the PPS signal via one of the GPIO pins (pick an
    unused one) which would appear to be great.</p>
    <p>The problem appears to be that there is enough skew between the
    PPS input (which I presume is stable since its coming in on a GPIO
    and there's interrupt-driven kernel support) and USB time signal
    which I presume is not necessarily deterministic in terms of its
    latency -- and after a while ntpd declares both false tickers ("x"
    status.)=C2=A0 It will clear for a while and once again recognize b=
    oth
    and then after a while goes "x" status again.=C2=A0 I do have a "fu=
    dge"
    line in the USB input (without it the PPS is never recognized as
    valid, and it appears it really is required from looking at the
    offsets if I grab reference from pool servers and compare.)=C2=A0 M=
    y
    /etc/ntp.conf config (when I uncomment the PPS signal line) is:</p>=

    <p>server 127.127.20.0 prefer maxpoll 4<br>
    fudge 127.127.20.0 time2 +0.062<br>
    # PPS input<br>
    server 127.127.22.0 minpoll 4 maxpoll 4<br>
    </p>
    <p>I'm on FreeBSD if it matters in this case but is this just one of
    those "no real way to resolve it due to the skew in latency that
    is unstable between the GPS output and the PPS signal"?=C2=A0 I'd h=
    ave
    assumed the PPS discipline would essentially serve as the "lock"
    and, provided the GPS output was reasonably within the PPS window
    all would be well, but that's not what appears to be the case.</p>
    <div class=3D"moz-signature">-- <br>
    Karl Denninger<br>
    <a href=3D"mailto:karl@denninger.net" class=3D"moz-txt-link-freetex= t">karl@denninger.net</a><br>
    <i>The Market Ticker</i><br>
    <font size=3D"-2"><i>[S/MIME encrypted email preferred]</i></font><= /div>
    </body>
    </html>

    --------------VS13GsKeV00yil5vrGUvzQYb--

    --------------ms030608080402030303060000
    Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename="smime.p7s"
    Content-Description: S/MIME Cryptographic Signature

    MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG9w0BBwEAAKCC C4owggWZMIIDgaADAgECAhRZU8dKdMneRI1Vq5kv0k54Q5rQuDANBgkqhkiG9w0BAQsFADB2 MQswCQYDVQQGEwJVUzESMBAGA1UECAwJVGVubmVzc2VlMRYwFAYDVQQKDA1EZW5uaW5nZXIu TmV0MRcwFQYDVQQDDA5EZW5uaW5nZXIgUm9vdDEiMCAGCSqGSIb3DQEJARYTYWRtaW5AZGVu bmluZ2VyLm5ldDAeFw0yNDA1MDkyMTA4MDNaFw00NDA1MDQyMTA4MDNaMF0xCzAJBgNVBAYT AlVTMRIwEAYDVQQIDAlUZW5uZXNzZWUxFjAUBgNVBAoMDURlbm5pbmdlci5uZXQxIjAgBgNV BAMMGURlbm5pbmdlci5OZXQgU2lnbmluZyBJbnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw ggEKAoIBAQDbR0tSiuLG5HPfo+cWtdeYQ8jc8Bjfuo0GTcNRT0glHnH1apUtInIktUknEZDH ohahInN+mMBdKg54FCHOiYZrJbyxBIo9FwX7hRmOc+spxmSYWnOd2E/YcGInMK4ZpjPzldzB Yt1n3zygkhx2bssxTJS3x4nv1qAXfLSZd1VwqoQufifEoPyTtymkkvHLv86vLgqAqooM/cXc 4LSIQ5u2uM308n42r8RkKtp7X1v9fJW8oRZN2XnFZtiUPH44YY2rHqyN2Hea9Y3+TXbldXjo xhPHTA+JYVFq8KTmbQBqU7YcMhlIG0cSxPeFLMxnP6pqPcIVTAlK+a6YGRFppfjZAgMBAAGj ggE2MIIBMjAdBgNVHQ4EFgQUH+VuxXhBxaJAQrvDekwkH91hBi4wgbMGA1UdIwSBqzCBqIAU RFYC4p6L6KITnEvrpx2cyt+PcMmheqR4MHYxCzAJBgNVBAYTAlVTMRIwEAYDVQQIDAlUZW5u ZXNzZWUxFjAUBgNVBAoMDURlbm5pbmdlci5OZXQxFzAVBgNVBAMMDkRlbm5pbmdlciBSb290 MSIwIAYJKoZIhvcNAQkBFhNhZG1pbkBkZW5uaW5nZXIubmV0ghQZE7NBItWtQsCouuwU6jZ+ HPPwnjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+gLaAr hilodHRwOi8vd3d3LmRlbm5pbmdlci5uZXQvcm9vdC1yZXZva2VkLmNybDANBgkqhkiG9w0B AQsFAAOCAgEAfFbhPc82AfhyUqONs7IccYD36w+OP4nQgwfC4IWf3y/aQAZ2Zk6IITzYqwf7 PFM0bJRT3zi7xyetolqHDhfMJvnOQWpITZiyM/FSKwIvuBsy/uJUqPuqui4XQMYoSbAA1qmI MW/z7VZZHwaRFoeWE40UirYcf0fNcooBZ72bmd+iBaVyjtZvky0Vgcz0eC6e6LR5kNb23yC6 TkyQIlGyQkK5/afXUYFzk49rOHVbVyxW3oXRfq8Ow6HCrpDGAS8p84S04MFwBVAUfbe4aXs3 bampaI2LzKgkVywyFP14LSvvdjCfLYfnLy1Z9hm2EHMqNHA2tCGdRhWp2d7aZC1MYFqng0ZS fjPJjqHrI1qPU0p6k9A1GxAtrQlL2v/IUzUnMZkiawFV3qlxMGZf/kTYTUOcJhx1KU4zSLHu 80qO7ldRpp5gHssCAGFbeTu2gp6LxfmaFhLPDBJ1VGfdPx9lUrU/9OcoHczcl5x2Rb8IUZyX 9elzP5WdAU8p5R/DLlOAq24VcabhFtYBCA2dOESLupSfWKNQuJCN/1gz7ysSc+mjnnPV77IO mpszJfkFFJEDNJlGIVKX1vwwygtC/9Ulox8frgbZlRAYAgDc/YbOBFxticVVre0Y3Ujx6Kzb tkgZRlgfdZWbT1W5smncqJxg5qAL8e/yTb3fCe2nJ0jhiP4wggXpMIIE0aADAgECAhMAmNFt CiCF3j+FwQLYtBTmGjzkMA0GCSqGSIb3DQEBCwUAMF0xCzAJBgNVBAYTAlVTMRIwEAYDVQQI DAlUZW5uZXNzZWUxFjAUBgNVBAoMDURlbm5pbmdlci5uZXQxIjAgBgNVBAMMGURlbm5pbmdl ci5OZXQgU2lnbmluZyBJbnQwHhcNMjQwNTEwMTkyNjU5WhcNMjkwNTA5MTkyNjU5WjBXMQsw CQYDVQQGEwJVUzESMBAGA1UECAwJVGVubmVzc2VlMRcwFQYDVQQKDA5LYXJsIERlbm5pbmdl cjEbMBkGA1UEAwwSa2FybEBkZW5uaW5nZXIubmV0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A MIICCgKCAgEAvh1UssVbSYctzobPjwBkbjv/w4WvQNepeRTwE6+sLnXvc41+X9pa5EclPL4Q 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 hvcNAwICAQUwBwYFKw4DAhowCwYJYIZIAWUDBAIBMAsGCWCGSAFlAwQCAjALBglghkgBZQME AgMwCwYJYIZIAWUDBAIEMAsGCWCGSAFlAwQCBzALBglghkgBZQMEAggwCwYJYIZIAWUDBAIJ MAsGCWCGSAFlAwQCCjALBgkqhkiG9w0BAQEwCwYJK4EFEIZIPwACMAgGBiuBBAELADAIBgYr gQQBCwEwCAYGK4EEAQsCMAgGBiuBBAELAzALBgkrgQUQhkg/AAMwCAYGK4EEAQ4AMAgGBiuB BAEOATAIBgYrgQQBDgIwCAYGK4EEAQ4DMA0GCSqGSIb3DQEBAQUABIICAGXSITubV+5uW2B8 f4rjFKXhy+nuZZDBo2yVXn1eUeol4i2kAAhHhOCI9DLzqrVcNEPCtTgmWmWflRL9R7u9bP3z V0jromnwNAQFyyVgp9qgpWWHhUyejT86p9gZKxmdqMQFVjQfTx/nNwIg/yT/MScTGHKvOYlk Ii8ZQpgNEKVJV1GGaFmbYwU8ljZaAMl5WJ9SfA0JOuxK1vMhY8cxU0jWfII//CQIX5aqiGAk EZDuv3nXF52BMIRqknMaqm8J1Y6ux0ZVRmHqUnVkLk2DBN2QZSBmcmh10lNBByuBqLGuW097 4bobKe2aCXcz89AhWaLsAiwzxKIdEzqxZyqDfkpy/3eoW3o5OxoiAavzE0FZ3tQ52ayHp9LN hz77vyczDgkcAH+6jmfWxkSjt8xROan8T71uoig8KVWgvzQtB8HJ5F9RzR/PIBAPZvMcFOfv qL6AKrhIQ7P0SPW/s+2G/0exaSlPXAJ873tHrXO4FFzvQY3P5adqnq5awK5BfiPMbkzDpUL0 gRkwKgOyE5PY8AkDGrwRNhJggOEGiMqslUViFHIttQKhIa5OfwBpJBRyx3Z22X6gbGVXAZav H3e6BYfOd2Ct9R+1m/nqxqNveOrmsvh7bNwR8or868wUFZ8bJR0XHBB/RLsAdmNYNBkvV/BI 7jf53DJ8MDF3lJY4K8A2AAAAAAAA
    --------------ms030608080402030303060000--

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From \@questions@lists.ntp.org to Karl Denninger on Mon Jul 21 08:03:00 2025
    From Newsgroup: comp.protocols.time.ntp


    On 21 Jul 2025, at 11:14, Karl Denninger <karl@denninger.net> wrote:
    The Pi3 has a kernel driver under FreeBSD, and a dtbo overlay, that gives you the PPS signal via one of the GPIO pins (pick an unused one) which would appear to be great.
    The problem appears to be that there is enough skew between the PPS input (which I presume is stable since its coming in on a GPIO and there's interrupt-driven kernel support) and USB time signal which I presume is not necessarily deterministic in terms of its latency -- and after a while ntpd declares both false tickers ("x" status.) It will clear for a while and once again recognize both and then after a while goes "x" status again. I do have a "fudge" line in the USB input (without it the PPS is never recognized as valid, and it appears it really is required from looking at the offsets if I grab reference from pool servers and compare.) My /etc/ntp.conf config (when I uncomment the PPS signal line) is:
    FWIW I have done something similar but I used a Beagle Bone Black - that is of the same class as a Raspberry Pi (albeit slower) but usefully it has input capture timers.
    On FreeBSD you can add some device tree magic and they appear as a PPS device. I mounted one of these https://gnss.store/neo-m8t-timing-gnss-modules/45-elt0032.html on a proto board cape and it seems to work pretty well.
    The nice thing about the input capture is that the timebase of the timer is locked to the internal time keeping of the CPU.
    All that said, I have also done a 100% USB setup, ie capture PPS using a USB serial interface and the performance is quite acceptable.
    This post from Ian Lepore (RIP) is quite informative: https://lists.freebsd.org/pipermail/freebsd-usb/2019-August/016078.html
    server 127.127.20.0 prefer maxpoll 4
    fudge 127.127.20.0 time2 +0.062
    # PPS input
    server 127.127.22.0 minpoll 4 maxpoll 4
    I'm on FreeBSD if it matters in this case but is this just one of those "no real way to resolve it due to the skew in latency that is unstable between the GPS output and the PPS signal"? I'd have assumed the PPS discipline would essentially serve as the "lock" and, provided the GPS output was reasonably within the PPS window all would be well, but that's not what appears to be the case.
    As I understand it, it should do what you think but make sure you are capturing the correct edge.
    --
    Daniel O'Connor
    "The nice thing about standards is that there
    are so many of them to choose from."
    -- Andrew Tanenbaum
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Ralph Blach@chip.from.nc@gmail.com to Daniel O'Connor on Mon Jul 21 13:28:00 2025
    From Newsgroup: comp.protocols.time.ntp

    --000000000000464c82063a705f9c
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable

    All

    I have been using the a pi as an NTP server for years, using the pi's
    serial port with no problem attached to GPS receiver. To get into the PI,
    I use ssh and this has proven very effective.

    Chip



    On Mon, Jul 21, 2025 at 4:01=E2=80=AFAM "Daniel O'Connor" <questions@lists.= ntp.org>
    wrote:



    On 21 Jul 2025, at 11:14, Karl Denninger <karl@denninger.net> wrote:
    The Pi3 has a kernel driver under FreeBSD, and a dtbo overlay, that
    gives you the PPS signal via one of the GPIO pins (pick an unused one)
    which would appear to be great.
    The problem appears to be that there is enough skew between the PPS
    input (which I presume is stable since its coming in on a GPIO and there'=
    s
    interrupt-driven kernel support) and USB time signal which I presume is n=
    ot
    necessarily deterministic in terms of its latency -- and after a while nt=
    pd
    declares both false tickers ("x" status.) It will clear for a while and
    once again recognize both and then after a while goes "x" status again. =
    I
    do have a "fudge" line in the USB input (without it the PPS is never recognized as valid, and it appears it really is required from looking at
    the offsets if I grab reference from pool servers and compare.) My /etc/ntp.conf config (when I uncomment the PPS signal line) is:

    FWIW I have done something similar but I used a Beagle Bone Black - that
    is of the same class as a Raspberry Pi (albeit slower) but usefully it ha=
    s
    input capture timers.

    On FreeBSD you can add some device tree magic and they appear as a PPS device.

    I mounted one of these https://gnss.store/neo-m8t-timing-gnss-modules/45-elt0032.html on a proto board cape and it seems to work pretty well.

    The nice thing about the input capture is that the timebase of the timer
    is locked to the internal time keeping of the CPU.

    All that said, I have also done a 100% USB setup, ie capture PPS using a
    USB serial interface and the performance is quite acceptable.
    This post from Ian Lepore (RIP) is quite informative: https://lists.freebsd.org/pipermail/freebsd-usb/2019-August/016078.html

    server 127.127.20.0 prefer maxpoll 4
    fudge 127.127.20.0 time2 +0.062
    # PPS input
    server 127.127.22.0 minpoll 4 maxpoll 4
    I'm on FreeBSD if it matters in this case but is this just one of those
    "no real way to resolve it due to the skew in latency that is unstable between the GPS output and the PPS signal"? I'd have assumed the PPS discipline would essentially serve as the "lock" and, provided the GPS
    output was reasonably within the PPS window all would be well, but that's
    not what appears to be the case.

    As I understand it, it should do what you think but make sure you are capturing the correct edge.

    --
    Daniel O'Connor
    "The nice thing about standards is that there
    are so many of them to choose from."
    -- Andrew Tanenbaum



    --=20
    Ralph "Chip" Blach
    (919) 260-0097

    --000000000000464c82063a705f9c
    Content-Type: text/html; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable

    <div dir=3D"ltr">All<div><br></div><div>I have been using the a pi as an NT=
    P server for years, using the pi&#39;s serial port with no problem attached=
    to GPS receiver.=C2=A0 To get into the PI, I use ssh and this has proven v= ery effective.</div><div><br></div><div>Chip</div><div><br></div><div><br><= /div></div><br><div class=3D"gmail_quote gmail_quote_container"><div dir=3D= "ltr" class=3D"gmail_attr">On Mon, Jul 21, 2025 at 4:01=E2=80=AFAM &quot;Da= niel O&#39;Connor&quot; &lt;<a href=3D"mailto:questions@lists.ntp.org">ques= tions@lists.ntp.org</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quot=
    e" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204)= ;padding-left:1ex"><br>

    &gt; On 21 Jul 2025, at 11:14, Karl Denninger &lt;<a href=3D"mailto:karl@de= nninger.net" target=3D"_blank">karl@denninger.net</a>&gt; wrote:<br>
    &gt; The Pi3 has a kernel driver under FreeBSD, and a dtbo overlay, that gi= ves you the PPS signal via one of the GPIO pins (pick an unused one) which = would appear to be great.<br>
    &gt; The problem appears to be that there is enough skew between the PPS in= put (which I presume is stable since its coming in on a GPIO and there&#39;=
    s interrupt-driven kernel support) and USB time signal which I presume is n=
    ot necessarily deterministic in terms of its latency -- and after a while n= tpd declares both false tickers (&quot;x&quot; status.)=C2=A0 It will clear=
    for a while and once again recognize both and then after a while goes &quo= t;x&quot; status again.=C2=A0 I do have a &quot;fudge&quot; line in the USB=
    input (without it the PPS is never recognized as valid, and it appears it = really is required from looking at the offsets if I grab reference from poo=
    l servers and compare.)=C2=A0 My /etc/ntp.conf config (when I uncomment the=
    PPS signal line) is:<br>

    FWIW I have done something similar but I used a Beagle Bone Black - that is=
    of the same class as a Raspberry Pi (albeit slower) but usefully it has in= put capture timers.<br>

    On FreeBSD you can add some device tree magic and they appear as a PPS devi= ce.<br>

    I mounted one of these <a href=3D"https://gnss.store/neo-m8t-timing-gnss-mo= dules/45-elt0032.html" rel=3D"noreferrer" target=3D"_blank">https://gnss.st= ore/neo-m8t-timing-gnss-modules/45-elt0032.html</a> on a proto board cape a=
    nd it seems to work pretty well.<br>

    The nice thing about the input capture is that the timebase of the timer is=
    locked to the internal time keeping of the CPU.<br>

    All that said, I have also done a 100% USB setup, ie capture PPS using a US=
    B serial interface and the performance is quite acceptable.<br>
    This post from Ian Lepore (RIP) is quite informative:<br>
    <a href=3D"https://lists.freebsd.org/pipermail/freebsd-usb/2019-August/0160= 78.html" rel=3D"noreferrer" target=3D"_blank">https://lists.freebsd.org/pip= ermail/freebsd-usb/2019-August/016078.html</a><br>

    &gt; server 127.127.20.0 prefer maxpoll 4<br>
    &gt; fudge 127.127.20.0 time2 +0.062<br>
    &gt; # PPS input<br>
    &gt; server 127.127.22.0 minpoll 4 maxpoll 4<br>
    &gt; I&#39;m on FreeBSD if it matters in this case but is this just one of = those &quot;no real way to resolve it due to the skew in latency that is un= stable between the GPS output and the PPS signal&quot;?=C2=A0 I&#39;d have = assumed the PPS discipline would essentially serve as the &quot;lock&quot; = and, provided the GPS output was reasonably within the PPS window all would=
    be well, but that&#39;s not what appears to be the case.<br>

    As I understand it, it should do what you think but make sure you are captu= ring the correct edge.<br>

    --<br>
    Daniel O&#39;Connor<br>
    &quot;The nice thing about standards is that there<br>
    are so many of them to choose from.&quot;<br>
    -- Andrew Tanenbaum<br>

    </blockquote></div><div><br clear=3D"all"></div><div><br></div><span class= =3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_s= ignature">Ralph &quot;Chip&quot; Blach<br>(919) 260-0097<br><br><br><br></d=


    --000000000000464c82063a705f9c--

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From David Woolley@david@ex.djwhome.demon.invalid to comp.protocols.time.ntp on Mon Jul 21 14:56:29 2025
    From Newsgroup: comp.protocols.time.ntp

    On 21/07/2025 02:48, Karl Denninger wrote:

    root dispersion:    3.088

    fudge 127.127.20.0 time2 +0.062

    I think you need to fudge root dispersion to reflect the uncertainty in
    the interrupt timing, as well as maybe setting time2 to the centre of
    the range.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Karl Denninger@karl@denninger.net to questions on Mon Jul 21 15:33:00 2025
    From Newsgroup: comp.protocols.time.ntp

    This is a cryptographically signed message in MIME format.

    --------------ms050802000909000707030305
    Content-Type: multipart/alternative;
    boundary="------------jAZ4j0s0gYvY7vTyn4oYzIrt"

    --------------jAZ4j0s0gYvY7vTyn4oYzIrt
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    T24gNy8yMS8yMDI1IDA5OjU2LCBEYXZpZCBXb29sbGV5IHdyb3RlOg0KPiBPbiAyMS8wNy8y MDI1IDAyOjQ4LCBLYXJsIERlbm5pbmdlciB3cm90ZToNCj4NCj4+IHJvb3QgZGlzcGVyc2lv bjrCoCDCoCAzLjA4OA0KPg0KPj4gZnVkZ2UgMTI3LjEyNy4yMC4wIHRpbWUyICswLjA2Mg0K Pg0KPiBJIHRoaW5rIHlvdSBuZWVkIHRvIGZ1ZGdlIHJvb3QgZGlzcGVyc2lvbiB0byByZWZs ZWN0IHRoZSB1bmNlcnRhaW50eSANCj4gaW4gdGhlIGludGVycnVwdCB0aW1pbmcsIGFzIHdl bGwgYXMgbWF5YmUgc2V0dGluZyB0aW1lMiB0byB0aGUgY2VudHJlIA0KPiBvZiB0aGUgcmFu Z2UuDQoNCkl0ICpfYXBwZWFyc18qwqB0aGF0IHN5bWxpbmtpbmcgL2Rldi9ncHNwcHMwIHRv IHRoZSBjb3JyZWN0IHBsYWNlIGFuZCANCnVzaW5nIGZsYWcgMSBvbiB0aGUgTk1FQSBkZXZp Y2UgcmF0aGVyIHRoYW4gdXNpbmcgdGhlIHBwcyBkcml2ZXIgc3RvcHMgDQppdC7CoCBOb3Qg c3VyZSB3aHkgdGhvc2UgYXJlIGRpZmZlcmVudCAiaW4gcHJhY3RpY2UiIGJ1dCBpdCBsb29r cyBsaWtlIA0KdGhleSBhcmUuDQoNCk1heWJlLsKgIFRvbyBlYXJseSB0byBiZSBzdXJlIChJ J2xsIGdpdmUgaXQgYSBkYXkgb3IgdHdvIGJlZm9yZSBjYWxsaW5nIA0KdGhpcyBmaXhlZCks IGJ1dC4uLi4gKGp1c3QgcmVzdGFydGVkIGFib3V0IDE1IG1pbnV0ZXMgYWdvKQ0KDQpudHBx PiBwZQ0KIMKgIMKgIMKgcmVtb3RlwqAgwqAgwqAgwqAgwqAgwqByZWZpZMKgIMKgIMKgIHN0 IHQgd2hlbiBwb2xsIHJlYWNowqAgwqBkZWxheSDCoG9mZnNldMKgIA0Kaml0dGVyDQo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCm9HUFNfTk1FQSgwKcKgIMKgIMKgLkdQUy7CoCDCoCDC oCDCoCDCoCDCoCAwIGzCoCDCoDE0wqAgwqAxNsKgIDM3N8KgIMKgIDAuMDAwIMKgKzAuMDAy wqAgDQogwqAwLjAwMQ0KbnRwcT4gcnYNCmFzc29jaWQ9MCBzdGF0dXM9MDQxNSBsZWFwX25v bmUsIHN5bmNfdWhmX3JhZGlvLCAxIGV2ZW50LCBjbG9ja19zeW5jLA0KdmVyc2lvbj0ibnRw ZCA0LjIuOHAxOC1hICgxKSIsIHByb2Nlc3Nvcj0iYXJtNjQiLA0Kc3lzdGVtPSJGcmVlQlNE LzE0LjMtU1RBQkxFIiwgbGVhcD0wMCwgc3RyYXR1bT0xLCBwcmVjaXNpb249LTIyLA0Kcm9v dGRlbGF5PTAuMDAwLCByb290ZGlzcD0xLjAzMCwgcmVmaWQ9R1BTLA0KcmVmdGltZT1lYzI4 ZGFiNS4zYWNmMTA1OMKgIE1vbiwgSnVsIDIxIDIwMjUgMTE6MjY6NDUuMjI5LA0KY2xvY2s9 ZWMyOGRhYjcuZjU4ZjQ4MmbCoCBNb24sIEp1bCAyMSAyMDI1IDExOjI2OjQ3Ljk1OSwgcGVl cj0yMzY5NywgdGM9NCwNCm1pbnRjPTMsIG9mZnNldD0rMC4wMDA4NTIsIGZyZXF1ZW5jeT0t NS4xNDUsIHN5c19qaXR0ZXI9MC4wMDA4NTksDQpjbGtfaml0dGVyPTAuMDE1LCBjbGtfd2Fu ZGVyPTAuMDAwLCB0YWk9MzcsIGxlYXBzZWM9MjAxNzAxMDEwMDAwLA0KZXhwaXJlPTIwMjYw NjI4MDAwMA0KbnRwcT4gc3lzaQ0KYXNzb2NpZD0wIHN0YXR1cz0wNDE1IGxlYXBfbm9uZSwg c3luY191aGZfcmFkaW8sIDEgZXZlbnQsIGNsb2NrX3N5bmMsDQpzeXN0ZW0gcGVlcjrCoCDC oCDCoCDCoCBHUFNfTk1FQSgwKQ0Kc3lzdGVtIHBlZXIgbW9kZTrCoCDCoGNsaWVudA0KbGVh cCBpbmRpY2F0b3I6wqAgwqAgwqAwMA0Kc3RyYXR1bTrCoCDCoCDCoCDCoCDCoCDCoCAxDQps b2cyIHByZWNpc2lvbjrCoCDCoCDCoC0yMg0Kcm9vdCBkZWxheTrCoCDCoCDCoCDCoCDCoDAu MDAwDQpyb290IGRpc3BlcnNpb246wqAgwqAgMS4wNjANCnJlZmVyZW5jZSBJRDrCoCDCoCDC oCDCoEdQUw0KcmVmZXJlbmNlIHRpbWU6wqAgwqAgwqBlYzI4ZGFiNS4zYWNmMTA1OMKgIE1v biwgSnVsIDIxIDIwMjUgMTE6MjY6NDUuMjI5DQpzeXN0ZW0gaml0dGVyOsKgIMKgIMKgIDAu MDAwODU5DQpjbG9jayBqaXR0ZXI6wqAgwqAgwqAgwqAwLjAxNQ0KY2xvY2sgd2FuZGVyOsKg IMKgIMKgIMKgMC4wMDANCmJyb2FkY2FzdCBkZWxheTrCoCDCoCAtNTAuMDAwDQpzeW1tLiBh dXRoLiBkZWxheTrCoCAwLjAwMA0KDQpUaGF0J3MgTVVDSCBiZXR0ZXIsIElGIGl0IGhvbGRz Lg0KDQotLSANCkthcmwgRGVubmluZ2VyDQprYXJsQGRlbm5pbmdlci5uZXQNCi9UaGUgTWFy a2V0IFRpY2tlci8NCi9bUy9NSU1FIGVuY3J5cHRlZCBlbWFpbCBwcmVmZXJyZWRdLw0K --------------jAZ4j0s0gYvY7vTyn4oYzIrt
    Content-Type: text/html; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DUTF=

    </head>
    <body>
    <div class=3D"moz-cite-prefix">On 7/21/2025 09:56, David Woolley
    wrote:<br>
    </div>
    <blockquote type=3D"cite" cite=3D"mid:105lgue$3vq3q$1@dont-email.me">=
    On
    21/07/2025 02:48, Karl Denninger wrote:
    <br>
    <br>
    <blockquote type=3D"cite">root dispersion:=C2=A0 =C2=A0 3.088
    <br>
    </blockquote>
    <br>
    <blockquote type=3D"cite">fudge 127.127.20.0 time2 +0.062
    <br>
    </blockquote>
    <br>
    I think you need to fudge root dispersion to reflect the
    uncertainty in the interrupt timing, as well as maybe setting
    time2 to the centre of the range.=C2=A0<br>
    </blockquote>
    <p>It=C2=A0<b><u>appears</u></b>=C2=A0that symlinking /dev/gpspps0 to=
    the
    correct place and using flag 1 on the NMEA device rather than
    using the pps driver stops it.=C2=A0 Not sure why those are differe=
    nt
    "in practice" but it looks like they are.</p>
    <p>Maybe.=C2=A0 Too early to be sure (I'll give it a day or two befor=
    e
    calling this fixed), but.... (just restarted about 15 minutes ago)<=

    <p><font face=3D"monospace">ntpq&gt; pe<br>
    =C2=A0 =C2=A0 =C2=A0remote=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= refid=C2=A0 =C2=A0 =C2=A0 st t when poll reach=C2=A0 =C2=A0delay=C2=A0
    =C2=A0offset=C2=A0 jitter<br> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D<br>
    oGPS_NMEA(0)=C2=A0 =C2=A0 =C2=A0.GPS.=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 0 l=C2=A0 =C2=A014=C2=A0 =C2=A016=C2=A0 377=C2=A0 =C2=A0 0.= 000=C2=A0
    =C2=A0+0.002=C2=A0 =C2=A00.001<br>
    ntpq&gt; rv<br>
    associd=3D0 status=3D0415 leap_none, sync_uhf_radio, 1 event,
    clock_sync,<br>
    version=3D"ntpd 4.2.8p18-a (1)", processor=3D"arm64",<br>
    system=3D"FreeBSD/14.3-STABLE", leap=3D00, stratum=3D1, precision= =3D-22,<br>
    rootdelay=3D0.000, rootdisp=3D1.030, refid=3DGPS,<br>
    reftime=3Dec28dab5.3acf1058=C2=A0 Mon, Jul 21 2025 11:26:45.229,<=

    clock=3Dec28dab7.f58f482f=C2=A0 Mon, Jul 21 2025 11:26:47.959,
    peer=3D23697, tc=3D4,<br>
    mintc=3D3, offset=3D+0.000852, frequency=3D-5.145,
    sys_jitter=3D0.000859,<br>
    clk_jitter=3D0.015, clk_wander=3D0.000, tai=3D37,
    leapsec=3D201701010000,<br>
    expire=3D202606280000<br>
    ntpq&gt; sysi<br>
    associd=3D0 status=3D0415 leap_none, sync_uhf_radio, 1 event,
    clock_sync,<br>
    system peer:=C2=A0 =C2=A0 =C2=A0 =C2=A0 GPS_NMEA(0)<br>
    system peer mode:=C2=A0 =C2=A0client<br>
    leap indicator:=C2=A0 =C2=A0 =C2=A000<br>
    stratum:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1<br>
    log2 precision:=C2=A0 =C2=A0 =C2=A0-22<br>
    root delay:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00.000<br>
    root dispersion:=C2=A0 =C2=A0 1.060<br>
    reference ID:=C2=A0 =C2=A0 =C2=A0 =C2=A0GPS<br>
    reference time:=C2=A0 =C2=A0 =C2=A0ec28dab5.3acf1058=C2=A0 Mon, J=
    ul 21 2025
    11:26:45.229<br>
    system jitter:=C2=A0 =C2=A0 =C2=A0 0.000859<br>
    clock jitter:=C2=A0 =C2=A0 =C2=A0 =C2=A00.015<br>
    clock wander:=C2=A0 =C2=A0 =C2=A0 =C2=A00.000<br>
    broadcast delay:=C2=A0 =C2=A0 -50.000<br>
    symm. auth. delay:=C2=A0 0.000<br>
    </font><br>
    </p>
    <p>That's MUCH better, IF it holds.</p>
    <div class=3D"moz-signature">-- <br>
    Karl Denninger<br>
    <a href=3D"mailto:karl@denninger.net" class=3D"moz-txt-link-freetex= t">karl@denninger.net</a><br>
    <i>The Market Ticker</i><br>
    <font size=3D"-2"><i>[S/MIME encrypted email preferred]</i></font><= /div>
    </body>
    </html>

    --------------jAZ4j0s0gYvY7vTyn4oYzIrt--

    --------------ms050802000909000707030305
    Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename="smime.p7s"
    Content-Description: S/MIME Cryptographic Signature

    MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG9w0BBwEAAKCC C4owggWZMIIDgaADAgECAhRZU8dKdMneRI1Vq5kv0k54Q5rQuDANBgkqhkiG9w0BAQsFADB2 MQswCQYDVQQGEwJVUzESMBAGA1UECAwJVGVubmVzc2VlMRYwFAYDVQQKDA1EZW5uaW5nZXIu TmV0MRcwFQYDVQQDDA5EZW5uaW5nZXIgUm9vdDEiMCAGCSqGSIb3DQEJARYTYWRtaW5AZGVu bmluZ2VyLm5ldDAeFw0yNDA1MDkyMTA4MDNaFw00NDA1MDQyMTA4MDNaMF0xCzAJBgNVBAYT AlVTMRIwEAYDVQQIDAlUZW5uZXNzZWUxFjAUBgNVBAoMDURlbm5pbmdlci5uZXQxIjAgBgNV BAMMGURlbm5pbmdlci5OZXQgU2lnbmluZyBJbnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw ggEKAoIBAQDbR0tSiuLG5HPfo+cWtdeYQ8jc8Bjfuo0GTcNRT0glHnH1apUtInIktUknEZDH ohahInN+mMBdKg54FCHOiYZrJbyxBIo9FwX7hRmOc+spxmSYWnOd2E/YcGInMK4ZpjPzldzB Yt1n3zygkhx2bssxTJS3x4nv1qAXfLSZd1VwqoQufifEoPyTtymkkvHLv86vLgqAqooM/cXc 4LSIQ5u2uM308n42r8RkKtp7X1v9fJW8oRZN2XnFZtiUPH44YY2rHqyN2Hea9Y3+TXbldXjo xhPHTA+JYVFq8KTmbQBqU7YcMhlIG0cSxPeFLMxnP6pqPcIVTAlK+a6YGRFppfjZAgMBAAGj ggE2MIIBMjAdBgNVHQ4EFgQUH+VuxXhBxaJAQrvDekwkH91hBi4wgbMGA1UdIwSBqzCBqIAU RFYC4p6L6KITnEvrpx2cyt+PcMmheqR4MHYxCzAJBgNVBAYTAlVTMRIwEAYDVQQIDAlUZW5u ZXNzZWUxFjAUBgNVBAoMDURlbm5pbmdlci5OZXQxFzAVBgNVBAMMDkRlbm5pbmdlciBSb290 MSIwIAYJKoZIhvcNAQkBFhNhZG1pbkBkZW5uaW5nZXIubmV0ghQZE7NBItWtQsCouuwU6jZ+ HPPwnjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+gLaAr hilodHRwOi8vd3d3LmRlbm5pbmdlci5uZXQvcm9vdC1yZXZva2VkLmNybDANBgkqhkiG9w0B AQsFAAOCAgEAfFbhPc82AfhyUqONs7IccYD36w+OP4nQgwfC4IWf3y/aQAZ2Zk6IITzYqwf7 PFM0bJRT3zi7xyetolqHDhfMJvnOQWpITZiyM/FSKwIvuBsy/uJUqPuqui4XQMYoSbAA1qmI MW/z7VZZHwaRFoeWE40UirYcf0fNcooBZ72bmd+iBaVyjtZvky0Vgcz0eC6e6LR5kNb23yC6 TkyQIlGyQkK5/afXUYFzk49rOHVbVyxW3oXRfq8Ow6HCrpDGAS8p84S04MFwBVAUfbe4aXs3 bampaI2LzKgkVywyFP14LSvvdjCfLYfnLy1Z9hm2EHMqNHA2tCGdRhWp2d7aZC1MYFqng0ZS fjPJjqHrI1qPU0p6k9A1GxAtrQlL2v/IUzUnMZkiawFV3qlxMGZf/kTYTUOcJhx1KU4zSLHu 80qO7ldRpp5gHssCAGFbeTu2gp6LxfmaFhLPDBJ1VGfdPx9lUrU/9OcoHczcl5x2Rb8IUZyX 9elzP5WdAU8p5R/DLlOAq24VcabhFtYBCA2dOESLupSfWKNQuJCN/1gz7ysSc+mjnnPV77IO mpszJfkFFJEDNJlGIVKX1vwwygtC/9Ulox8frgbZlRAYAgDc/YbOBFxticVVre0Y3Ujx6Kzb tkgZRlgfdZWbT1W5smncqJxg5qAL8e/yTb3fCe2nJ0jhiP4wggXpMIIE0aADAgECAhMAmNFt CiCF3j+FwQLYtBTmGjzkMA0GCSqGSIb3DQEBCwUAMF0xCzAJBgNVBAYTAlVTMRIwEAYDVQQI DAlUZW5uZXNzZWUxFjAUBgNVBAoMDURlbm5pbmdlci5uZXQxIjAgBgNVBAMMGURlbm5pbmdl ci5OZXQgU2lnbmluZyBJbnQwHhcNMjQwNTEwMTkyNjU5WhcNMjkwNTA5MTkyNjU5WjBXMQsw CQYDVQQGEwJVUzESMBAGA1UECAwJVGVubmVzc2VlMRcwFQYDVQQKDA5LYXJsIERlbm5pbmdl cjEbMBkGA1UEAwwSa2FybEBkZW5uaW5nZXIubmV0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A MIICCgKCAgEAvh1UssVbSYctzobPjwBkbjv/w4WvQNepeRTwE6+sLnXvc41+X9pa5EclPL4Q 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 hs/zl7dgfNCGPTak/N/fAAAAAAAA
    --------------ms050802000909000707030305--

    --- Synchronet 3.21a-Linux NewsLink 1.2