OPEN
OR CLICK
PRECISION CLOCK COMPANION BETA MK IV FIRMWARE — WEBASSEMBLY · VIRTUAL GPS
PRECISION CLOCK
COMPANIONBETA
{{connState}} {{connSub}}
{{connState}} {{connSub}}
PORT{{portLabel}}
FRAMING115200 8N1
FIX · SATS{{fixTypeLabel}} · {{satsLabel}}
FIX AGE{{ageLabel}}
SIM FIX
REVIEWING HISTORY {{reviewBannerTime}} — every room shows this moment, not live
TIME · PRECISION · STANDBY
HOLDOVER TOLERANCES
{{tolNote}}
TIME SOURCE
FORMATS
⚠ {{modesCapNote}}
Tick every mode you want — the buttons cycle them. ON FACE
{{modeCurLabel}}
{{modeEnabledCount}} ENABLED
DATE ROW
WEEKDAY
TIME ROW
ASTRO DATE ROW · SUN / MOON / GRID · TIME ROW KEEPS TICKING
MODE
PAGE DWELL
MS — SUN & LAT/LON PAGE THROUGH THEIR SUB-SCREENS AT THIS RATE (MIN 250)
FACE
BRIGHTNESS {{brightPctLabel}}
DAC CURVE γ {{gammaLabel}}
MASTER DAC — PERCEPTUAL LAW
COLON STYLE
{{colonFreezeNote}}
POINT VALUES · DAC CURVE {{dacApplyNote}}
DRAG A POINT · X = SENSOR ADC 0–4095 · Y = DAC BRIGHTNESS 0–4095
PTADCDAC
{{r.n}}{{r.adc}}{{r.dac}}
PRESETS
config.txt — DEVICE USB VOLUME {{cfgName}}
UNSAVED CHANGES
Serial config is write-only — the file is read/written via the mounted clock USB volume (Chromium only). Write-back is gated off by default; re-plug or reboot the clock to reload it.
EMULATOR config.txt — LIVE via the firmware's own parser BETA
APPLY feeds each line through the REAL firmware parser (parseConfigString + postConfigCleanup) and reboots the emulator — exactly as a config.txt does on the device. IMPORT a clock's config.txt to align the emulator to it. {{emuCfgSync}}
CLOCK SETTINGS LIVE OVER SERIAL
Timezone override
Matrix frequency
Time tolerance ms
Simulated position
RE-ENUMERATES USB · ≈3 S
DIAGNOSTICS
TTFF DEVICE ONLY
Diagnostic modes override the face until cleared.
FIRMWARE & DATA
Emulator firmware{{fwVer}}
Source{{fwSrc}}
Built{{fwBuilt}}
ProvenanceBYTE-FAITHFUL — 4363/4363 VS INDEPENDENT TRUTH · ANCHORED TO A PHYSICAL MK IV ON REAL GPS
Timezone data{{fwTz}}
{{fwUpdState}}
THE CLOCK FACES IN THIS APP *ARE* THIS FIRMWARE — THE REAL clock4 C (ROLLUP: ALL DRAFT PRs) COMPILED TO WEBASSEMBLY AT BUILD TIME, DRIVEN BY A VIRTUAL GPS. THE UPDATE CHECK COMPARES THE BUILT-IN COMMIT AGAINST THE rollup BRANCH HEAD ON GITHUB.
STANDBY — NO CLOCK CONNECTED
You're seeing your computer's system time. Connect your Precision Clock Mk IV for its live, GPS-disciplined data — or explore a simulation if you don't have one to hand.
{{standbySerialNote}}
01 · {{faceRoomCap}} {{faceStatusLine}}
DATE ROW SOURCE
Send / set below hands the date row to that source.
{{sourceTag}}
HARDWARE CALIBRATION drag furniture on the board, or edit the JSON — changes apply to the clock live
{{hwJsonStatus}} x = mm along board · y = mm down the pane
{{hwReadout}}
PRECISION — SIGNIFICANT DIGITSBETA
{{precLevel}}
±{{precUnc}} · significant to {{precDigits}} {{precColon}}
{{precHold}}
Turn on Significance Fade, drop GPS, and run time-lapse to watch the sub-second digits fade out as they lose significance.
SIMULATION ONLY
OBSERVER — DRIVES SIDEREAL / SOLAR / GRID & THE REAL SKY
LAT LON
{{emuObserverTag}}
TIME ZONE
{{emuTzTag}} The real Mk IV auto-detects the zone from its GPS fix; here it follows your browser’s zone (DST-aware). No fix + no filesystem ⇒ a bare device shows UTC.
ACCESSORIES — FOLD OPEN ON APPROACH
MARQUEE
{{marqueeNote}}
PRESET
TARGET {{cdTargetLabel}}
No sources yet — add a REST feed (JSON path, regex, or first line of text) and it polls, then push its value to the date row.
{{d.name}}{{d.val}}
Stored in this browser (localStorage) — header tokens are saved in the clear. Auto-pushes each new value (won't stomp countdown / diagnostics).
Weather is coming soon (hopefully).
01 · CONNECTION WEB SERIAL
{{connState}} {{connSub}}
Port{{cPort}}
Device{{cDevice}}
Framing115200 8N1
Session{{cSession}}
Fix{{cFix}}
Satellites used / in view{{cSats}}
Fix age{{cAge}}
CONNECT DEVICE OPENS A REAL MK IV OVER WEB SERIAL — THE PRINCIPAL USE CASE. SIMULATE RUNS A CLEARLY-LABELLED DEMO FOR EXPLORING WITHOUT HARDWARE (ALWAYS AVAILABLE; ONLY PAUSED WHILE A REAL CLOCK IS LIVE, SINCE SIM AND REAL DATA NEVER MIX). READ config.txt PULLS THE DEVICE'S REAL SETTINGS FROM ITS USB DRIVE (SERIAL CAN'T READ CONFIG BACK).
BROWSER SUPPORT LIVE CHECK
Web Serial API{{supSerial}}
Secure context{{supCtx}}
Engine{{supChrom}}
THIS CONTEXT CANNOT REACH THE CLOCK
Web Serial needs a Chromium browser on https or localhost. The emulator and simulated session still run.
CONNECTION STATES REFERENCE
DISCONNECTEDNo port open — emulator on host time
CONNECTINGPort chooser open / handshake
LOCKEDValid 3D fix, stream healthy
ACQUIRINGConnected, searching the sky
NO FIXSignal lost — always labelled, never hue-only
REBOOTUSB re-enumeration, auto-reconnect
UNSUPPORTEDBrowser gate — see support panel
03 · SKY PLOT N UP · RINGS 30°/60° · SIZE = C/N₀
TRAIL
WINDOW
GPS FIX {{fFix}}
Latitude{{fLat}}
Longitude{{fLon}}
Altitude{{fAlt}}
HDOP{{fHdop}}
Satellites used / in view{{fSatsUV}}
Maidenhead grid{{fGrid}}
CELESTIAL OBSERVER FRAME
Sun alt / az{{cSunAlt}} / {{cSunAz}}
Moon alt / az{{cMoonAlt}} / {{cMoonAz}}
Moon phase{{cMoonPhase}} · {{cMoonIllum}}
Sunrise{{cRise}}
Sunset{{cSet}}
SESSION RECORDED PASSES
Started{{sStarted}}
Passes{{sPasses}}
Observations{{sObs}}
Peak elevation{{sPeak}}
Sky coverage{{sCover}}
GPS {{nGps}} GLO {{nGlo}} GAL {{nGal}} BDS {{nBds}}
04 · C/N₀ VS ELEVATION ANTENNA / MULTIPATH QC
GPS GLO GAL BDS
SIGNAL BARS dB-Hz · DIM = UNUSED
{{b.key}} {{b.val}} {{b.el}}
C/N₀ OVER TIME — PER PRN TOP 8 BY SIGNAL · 30 MIN
CONSTELLATION
05 · STATIC-POSITION SCATTER E/N OFFSET FROM RUNNING MEAN
WINDOW
EACH FIX = ONE SAMPLE · AGE-FADED
PRECISION THE CONFIDENCE FIGURE
CEP 50%
{{pCep}}
2DRMS 95%
{{pDrms}}
σ east / σ north{{pSigE}} / {{pSigN}}
Mean latitude{{pMeanLat}}
Mean longitude{{pMeanLon}}
Fixes in window{{pN}}
Time to first fix{{ttffLabel}}
DOP HISTORY HDOP — · PDOP – – · VDOP · ·
FIX CONTINUITY TYPE BAND + SATS USED
06 · TIMING — PPS HOST-TIMESTAMPING {{ppsBanner}}
PHASE JITTER RMS
{{tJitter}} {{tJitterU}}
PEAK-TO-PEAK
{{tP2p}} {{tP2pU}}
OSC DRIFT
{{tDrift}} ppm
HOLDOVER
{{tHold}} s
{{tHoldSub}}
DIE TEMP
{{tTemp}} °C
PPS EDGES
{{tSeq}}
DROPPED {{tDrop}}
PHASE AT PPS EDGE MEDIAN-CENTRED · ROBUST ±1σ BAND
CAPTURED IN FIRMWARE AT THE EDGE (SYSTICK ≈12.5 ns) — USB TRANSPORT JITTER NEVER TOUCHES THIS NUMBER.
OSCILLATOR DRIFT + DIE TEMP CAL WINDOW 63 s → STAIRCASE
ppm = calerr · 10⁶ / (32768 · 63) — ONE STEP PER SUCCESSFUL RTC CALIBRATION.
DRIFT VS DIE TEMP {{fitStatus}}
THE 32 kHz TUNING FORK'S PARABOLA — FITTED CURVE IN AMBER.
TEMP COMPENSATION — SOFTWARE TCXO HOST FIT · CROSS-CHECK OF ON-DIE LEARNING
k0 / k1 / k2 (ref 25 °C){{fitK0}} / {{fitK1}} / {{fitK2}}
Samples{{fitN}}
Temp spread{{fitSpread}}
Fit residual RMS{{fitRms}}
Compensation state{{compState}}
{{compLine}}
$PMTXTS TIMESTAMP + DIE-TEMP COME FROM DRAFT FIRMWARE PRs (pps=on). THE HOST FITS ppm(T) FROM THE RTC CAL ERROR — THE LSE CURVE — AND EMITS THE FIRMWARE'S tc_* SEED BLOCK (PASTE INTO config.txt; tc_seed=on LAST WARM-STARTS THE ON-DIE LEARNER). tc_dump ON THE CLOCK STAYS CANONICAL — THIS IS THE HOST'S INDEPENDENT ESTIMATE OF THE SAME CURVE. WHILE LOCKED, calibrateRTC OWNS CALR; ABSOLUTE UTC OFFSET ISN'T RECOVERABLE OVER USB (≈1 ms FLOOR), SO THE APP SHOWS JITTER, STABILITY AND DRIFT.
07 · GLOBE ORTHOGRAPHIC · DRAG TO ROTATE
{{gClock}}
READOUTS LIVE
Sub-solar point{{gSub}}
In view at observer{{gVis}}
Observer grid{{fGrid}}
NOTES
SATELLITES AT SUB-SATELLITE POINTS · TRAILS = GROUND TRACKS · OBSERVER MARKED GREEN.
{{landNote}}
08 · MAP GROUND TRACKS — WORLD · EQUIRECTANGULAR
{{gSub}}
SATELLITES AT SUB-SATELLITE POINTS · SUN GOLD · OBSERVER GREEN
08 · CONDITIONS AT FIX OPEN-METEO · KEYLESS
Temperature{{wTemp}}
Feels like{{wApp}}
Sky{{wCode}} · {{wCloud}}
Humidity{{wRh}}
Pressure MSL{{wMslp}}
Wind / gust{{wWind}} / {{wGust}}
Precipitation{{wPrecip}}
Updated{{wAsOf}}
Point forecast at{{wPos}}
WEATHER UNAVAILABLE
Open-Meteo could not be reached. The clock and GNSS views are unaffected — weather returns when the network does.
PROTOTYPE CONTROL
PUSH TO CLOCK TEXT MODE
{{pushPreview}}
REFRESH
Sends as text mode — marquees automatically past 10 characters. The date row carries the message; time keeps ticking.
09 · SERIAL MONITOR — RAW NMEA {{monRate}}
{{r.ts}} {{r.tag}} {{r.text}}
RX TEXT · TX RED · ERR ORANGE
$
TELEMETRY LOG — PERSISTENT BETA INDEXEDDB · CONNECTED ONLY
Persists your Precision Clock's live stream — position, satellites, temperature, clock skew — to this browser so you can rewind and scrub through it later. Opt-in, off by default. A simulation is NEVER logged. Nothing leaves your machine.
{{telStat}} KEEP
REWIND · SCRUB BETA {{rvTime}}
Drag the timeline to scrub. Hatched spans are CLOCK DISCONNECTED — no data recorded.
POSITION
{{rvPos}}
FIX
{{rvFix}}
SATS
{{rvSats}}
TEMPERATURE
{{rvTemp}}
CLOCK SKEW
{{rvSkew}}
No recorded telemetry yet. Turn on LOG MY CLOCK'S DATA above, connect your Precision Clock, and its stream lands here to rewind through.
10 · SESSION IN-MEMORY
Started{{eStarted}}
Duration{{eDur}}
Position fixes{{eFixes}}
Satellite observations{{eObs}}
NMEA lines held{{eLines}}
PPS samples{{ePps}}
SESSION LIVES IN MEMORY — CLEARED ON RELOAD.
RECORDED DATA DOWNLOADS
POSITION CSV
Fix time series — lat/lon/alt, E/N offsets, DOP, sats, fix type
{{eCsvN}}
SESSION JSON
Full session — observer, stats, satellite snapshot, PPS fit
STRUCTURED
TRACK GPX
Fix track for GIS tools — 1 point / 5 s
{{eGpxN}}
SATELLITE CSV
Sky history — az/el per satellite (1 pt / 30 s) with nearest C/N₀
{{eSatN}}
RAW NMEA
Received sentences as captured, checksums intact
{{eNmeaN}}