OPEN
OR CLICK
PRECISION CLOCK COMPANION BETA MK IV FIRMWARE · WEBASSEMBLY · SYSTEM TIME · SIMULATE OR CONNECT INSIDE
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
TIME · PRECISION · STANDBY
HOLDOVER TOLERANCES
{{tolNote}}
TIME SOURCE
FORMATS
⚠ {{modesCapNote}}
Tick the modes to enable; the buttons cycle through 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 SUB-SCREENS PAGE AT THIS RATE (MIN 250)
FACE
BRIGHTNESS {{brightPctLabel}}
DAC CURVE γ {{gammaLabel}}
MASTER DAC — PERCEPTUAL LAW
COLON STYLE
{{colonFreezeNote}}
LED BALANCE
Per-segment{{balSeg}}
Colon{{balColon}}
CURRENT-SHARING COMPENSATION · OFF / AUTO / MANUAL STRENGTH · SET VIA config.txt OR MENU
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
AS SET IN MENU — ON-DEVICE EDITS (SETTINGS.BIN)
{{o.label}} {{o.value}} {{o.tag}}
{{menuOvrNote}}
Writes these values into the editor below as key = value lines. SAVE TO CLOCK then makes config.txt the source of truth for them.
Serial config is write-only. Read config.txt and SETTINGS.BIN (the on-device menu-edit store) via the CLOCK drive (Chromium only). Write-back is off by default; re-plug or reboot the clock to reload it.
EMULATOR config.txt — LIVE via the firmware's own parser BETA
APPLY runs each line through the firmware parser and reboots the emulator. IMPORT aligns the emulator to a clock's config.txt. {{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 AN INDEPENDENT REFERENCE · VERIFIED AGAINST A PHYSICAL MK IV ON GPS
Timezone data{{fwTz}}
{{fwUpdState}}
THE CLOCK FACES RUN clock4 C COMPILED TO WEBASSEMBLY AT BUILD TIME, DRIVEN BY A VIRTUAL GPS. THE UPDATE CHECK COMPARES THE BUILT-IN COMMIT TO THE rollup HEAD ON GITHUB.
PCC BRIDGE · pccd
Installed{{pccdVer}}
{{pccdUpdState}}
THIS pccd RUNS FROM A DEV CHECKOUT (-w). SELF-UPDATE IS DISABLED. UPDATE BY HAND:
{{pccdCmd}}
UPDATE NOW: pccd DOWNLOADS AND VERIFIES THE LATEST RELEASE (SHA-256 + SELF-TEST), SWAPS ITSELF, AND RELAUNCHES. THE APP RECONNECTS.
App{{pccdAppLine}}
{{pccdWebState}}
REFRESH APP: pccd PULLS THE LATEST WEB APP FROM PAGES (SHA-256 VERIFIED) AND SWAPS IT IN WITHOUT RESTARTING — WEB-ONLY FIXES BETWEEN RELEASES. DAEMON FEATURES STILL COME VIA UPDATE NOW.
STANDBY — NO CLOCK CONNECTED
This is your computer's system time. Connect a Precision Clock Mk IV for live GPS-disciplined data, or run a simulation.
{{standbySerialNote}}
01 · {{faceRoomCap}}
POSE
DATE ROW SOURCE
Send / set below switches the date row to that source.
THE TWO BUTTONS ON THE DATE BOARD EDGE ARE LIVE — SAME CONTROLS. HOLD 1 + 2 TO OPEN THE MENU · TAP 1 / 2 TO MOVE · HOLD 1 + 2 TO SELECT
THESE DRIVE THE BUILT-IN FIRMWARE'S MENU, NOT THE CONNECTED CLOCK'S. ITS OWN MENU IS THE TWO BUTTONS ON ITS DATE BOARD.
{{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}}
Significant to
{{rkSigV}}{{rkSigU}}
{{rkSigS}}
Date row
{{rkRowV}}
{{rkRowS}}
Brightness
{{rkBrtV}}%
{{rkBrtS}}
Zone
{{rkZoneV}}
{{rkZoneS}}
Grid
{{rkGridV}}
{{rkGridS}}
Source
{{rkSrcV}}
{{rkSrcS}}
OBSERVER — DRIVES SIDEREAL / SOLAR / GRID & THE REAL SKY {{emuObserverTag}}
LAT LON
TIME ZONE
{{emuTzTag}}
The Mk IV takes its zone from the GPS fix. The emulator follows the browser zone; a bare device with no fix shows UTC.
ACCESSORIES
MARQUEE
{{marqueeNote}}
PRESET
TARGET {{cdTargetLabel}}
No sources yet. Add a REST feed (JSON path, regex, or first line of text); it polls, and PUSH sends 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 but does not override countdown or diagnostics.
Not implemented yet.
Link
{{vLinkV}}
{{cPort}}
Session
{{cSession}}
{{vDeviceS}}
Fix
{{cFix}}
{{vSatsS}}
Firmware
{{vFwV}}
{{vFwS}}
Config
{{vCfgV}}{{vCfgU}}
{{vCfgS}}
Transport
{{vTransV}}
{{vTransS}}
01 · CONNECTION WEB SERIAL · PCC BRIDGE
{{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: PCC BRIDGE IF pccd IS RUNNING, ELSE WEB SERIAL (CHROMIUM). SEE "CONNECTING A REAL CLOCK" BELOW. SIMULATE RUNS A LABELLED DEMO; IT PAUSES WHILE A REAL CLOCK IS CONNECTED. READ CLOCK DRIVE READS config.txt FROM THE DEVICE'S USB DRIVE (SERIAL CONFIG IS WRITE-ONLY).
BROWSER SUPPORT LIVE CHECK
Web Serial API{{supSerial}}
PCC bridge (pccd){{supBridge}}
Secure context{{supCtx}}
Engine{{supChrom}}
THIS CONTEXT CANNOT REACH THE CLOCK
Web Serial needs Chromium on https or localhost. The PCC BRIDGE below works in any browser.
CONNECTING A REAL CLOCK TWO TRANSPORTS · PICK ONE
Web serial{{trWsV}}
RequiresCHROMIUM · HTTPS OR LOCALHOST
InstallsNOTHING
OpensPORT PICKER · ONE TAB
PCC bridge{{trBrV}}
RequiresANY BROWSER
ServesTHIS APP AT :4192
Also feedsCHRONY · STRATUM-1 NTP
Install pccd RELEASES
Run pccd, then open the address it prints and click CONNECT DEVICE. Served over https, Safari and Firefox cannot reach a local bridge — use the localhost copy.
SIMULATION DRILL SIMULATION ONLY
Drop GPS and run time-lapse to watch holdover grow. With fade on, sub-second digits dim as the 3-sigma bound passes their place value.
Satellites
{{fSatsUV}}
{{kConst}}
HDOP
{{fHdop}}
{{kDopNote}}
Grid
{{fGrid}}
{{kLatLon}}
Fix age
{{cAge}}
{{kFixNote}}
Sky coverage
{{sCover}}
{{kPeak}}
Recorded
{{sPasses}}passes
{{kRecSub}}
03 · SKY PLOT N UP · RINGS 30°/60° · SIZE = C/N₀
LAYERS
TRAIL
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}}
NEXT TRANSITS {{starSrc}} · $PMSTAR
{{b.name}} {{b.eta}} {{b.alt}} {{b.dir}}
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
CONSTELLATION
WINDOW
05 · STATIC-POSITION SCATTER E/N OFFSET FROM RUNNING MEAN
WINDOW
EACH FIX = ONE SAMPLE · AGE-FADED · SHARED WITH SIGNAL
PRECISION FROM POSITION SCATTER
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}}
1σ AT THE PPS EDGE
Peak-to-peak
{{tP2p}}{{tP2pU}}
WORST EXCURSION
Osc drift
{{tDrift}}ppm
FREE-RUNNING CRYSTAL
Holdover
{{tHold}}s
{{tHoldSub}}
Die temp
{{tTemp}}°C
ON-DIE SENSOR
PPS edges
{{tSeq}}
{{tRackProv}}
PHASE AT PPS EDGE MEDIAN-CENTRED · ROBUST ±1σ BAND
CAPTURED IN FIRMWARE AT THE PPS EDGE (SYSTICK ≈12.5 ns). USB TRANSPORT JITTER IS EXCLUDED.
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}}
32 kHz TUNING-FORK PARABOLA. FITTED CURVE IN AMBER.
ALLAN DEVIATION — FREE-RUNNING OSCILLATOR σ_y(τ) · OCTAVE TAUS · LOG-LOG
COMPUTED IN FIRMWARE (MODE_ADEV / $PMADEV). HADAMARD IN AMBER WHEN PRESENT; DASHED τ^-½ = WHITE-FM REFERENCE.
TEMP COMPENSATION — FIRMWARE LEARNED MODEL {{fwTcState}}
HSE — system clock{{fwTcHse}}
LSE — battery RTC{{fwTcLse}}
Learned die range{{fwTcRange}}
Read back{{fwTcMeta}}
LEARNED ON-DIE, READ VIA "tc_dump = on" → $PMTXTC. APPLIED DURING HOLDOVER.
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}}
NEEDS DRAFT FIRMWARE WITH pps=on ($PMTXTS TIMESTAMP + DIE TEMP). FITS ppm(T) FROM RTC CALIBRATION ERROR AND PRODUCES A tc_* SEED BLOCK FOR config.txt (tc_seed=on GOES LAST). tc_dump ON THE CLOCK IS THE REFERENCE. ABSOLUTE UTC OFFSET IS NOT MEASURABLE OVER USB (≈1 ms), SO JITTER, STABILITY AND DRIFT ARE SHOWN.
07 · SIGNAL PATH — pccd PREFILTER
{{spChipTxt}}
{{spAbsentMsg}}
RAW PPS OFFSETS IN, ONE TRIMMED MEAN OUT PER GROUP. A MAD GATE DROPS OUTLIERS, A TRIMMED MEAN OF {{spGVal}} CUTS SCATTER ~√{{spGVal}}.
RAW → CLEAN RMS
{{spRawRms}}{{spCleanRms}} µs
REDUCTION
{{spReduction}}
AGGREGATE {{spSqrtG}}
REJECTED
{{spRej}} / {{spTot}}
KEPT
{{spKept}}
GROUPS OUT
{{spGroups}}
1 PER ~{{spGVal}} s
GATE
{{spGate}} µs
{{spGateSub}}
GATE σ ×K{{spKVal}}
TIGHTER DROPS GOOD · LOOSER PASSES OUTLIERS
GATE WINDOW{{spWVal}}
RING FOR MEDIAN + MAD
GROUP SIZE{{spGVal}}
SCATTER ÷ √GROUP
σ FLOOR µs{{spFVal}}
NEVER GATE TIGHTER THAN THIS
corrtimeratio{{spCVal}}
DOWNSTREAM · CHRONY CORRECTION PACING
chrony.conf
{{spConfig}}
{{spCaption}}
ARCHIVE — OFFSET TO GPS TIME
{{archCaption}}
RECORDED BY pccd ON THE BRIDGE HOST (ONE POINT PER PREFILTER GROUP, ~8 s). TOP: OFFSET SENT TO chrony; BAND = MIN/MAX PER BUCKET. BOTTOM: OSC DRIFT (RED, ppm) + DIE TEMP (AMBER).
07 · GROUND TRACK
ORTHOGRAPHIC · DRAG TO ROTATE WORLD · EQUIRECTANGULAR PROJECTION
{{gClock}}
{{gSub}}
TRAIL
READOUTS LIVE
Sub-solar point{{gSub}}
In view at observer{{gVis}}
Observer grid{{fGrid}}
NOTES
SATELLITES AT SUB-SATELLITE POINTS · TRAILS = GROUND TRACKS · SUN GOLD · MOON COOL · OBSERVER GREEN.
ONE TRAIL CONTROL — SHARED WITH THE SKY PLOT.
{{landNote}}
08 · SKY ARCHIVE DAEMON · AGGREGATE
RANGE
{{archCaption}}
RECORDED BY pccd (ONE SNAPSHOT PER 60 s). C/N0 MEAN (RED), MAX (DASHED), SATS USED (AMBER, RIGHT SCALE). AGGREGATE ONLY — THE RECORDER KEEPS NO PER-SATELLITE TRACK YET.
08 · SKY ARCHIVE
NO RECORDER
The archive reads the pccd bridge daemon's flight log. Connect through pccd to record and browse past sky conditions.
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}}
FILTER {{monShown}}
RX TEXT · TX RED · ERR ORANGE
$
TELEMETRY LOG — PERSISTENT BETA INDEXEDDB · CONNECTED ONLY
Logs position, satellites, temperature and clock skew to this browser for rewind and scrub. Off by default. A simulation is NEVER logged.
{{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 and connect the clock. Its stream is recorded here.
10 · SESSION IN-MEMORY
Started{{eStarted}}
Duration{{eDur}}
Position fixes{{eFixes}}
Satellite observations{{eObs}}
NMEA lines held{{eLines}}
PPS samples{{ePps}}
SESSION IS HELD 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}}