Useful tools, on every gauge

Modules run in the background: warnings, speed runs, laps and saved results. Their screens are optional. This guide and the controls work offline from your Gauge.S Wi-Fi access point.

Start here

  1. Choose a module card (or the module selector on mobile).
  2. Check Input bindings. Browse shows available parameters, units and changing values. A binding only changes when you save it.
  3. For settings or appearance changes: Stop session → Save choices → Apply saved setup → Start session. You can prepare a draft while running. Applying setup leaves the module stopped.
  4. Turn on Run on boot and save if you want automatic startup after a restart. Start/Stop session affects only this boot.

Select Lap timer to see Lap history, or Performance to see Run history. Saved results open automatically above the setup fields and remain available while stopped. Refresh reads a new status snapshot. Published outputs such as performance.live and performance.best_t0_100 can be bound in a gauge or logged normally.

Screen navigation or popup messages?

Include in screen navigation adds the running module's dedicated views after your ordinary gauges in next/previous navigation and to the device Modules → Views menu. It does not switch screens immediately or enable the module.

Popup messages allows automatic event overlays over your current gauge. You can leave screen navigation off and keep popups on, as for an oil warning.

Higher priority wins; newest breaks ties. Menus hide popups. Dismiss popup and further interaction give a ten-second quiet period. An active warning can return afterward.

One run, every performance result

The Performance module collects acceleration, standing GPS distances and following braking in one run. It uses Vehicle Speed (km/h) by default; choose GPS speed in settings to use coherent receiver fixes instead. Optional acceleration magnitude uses accel mag, including gravity. An absent sensor leaves its results unavailable; adding a previously missing source requires applying setup again.

A stationary dwell arms a standing start. Timing begins at the last stationary observation after confirmed departure, without rollout. Rolling pulls and braking can start runs too. Stopping, a rearmed new pull, the configured time limit or Finish current run saves the combined run. Finish an unfinished run before stopping its session.

Open Runs & personal bests to see all 20 measurements. Saved runs previews each run, with previous/next navigation. — means a measurement was not reached or its sensor was unavailable. A slower run stays in history but never replaces a faster best. Each Reset clears only that best; history stays, and only subsequent runs compete. The device Modules menu has the same individual resets.

Metric/imperial acceleration includes a custom interval. GPS standing distances cover 60 ft, 330 ft, ⅛ mile, 1,000 ft, ¼ mile, ½ mile, 1 km and 1 mile. Finish speeds are interpolated GPS readings, not trap-zone averages. Braking measures time and speed-integrated distance from 100 km/h or 60 mph down to the configured stopped threshold.

The device has separate km/h and mph acceleration views. The results panel’s Display units selector shows finish speeds and braking distances in metric, imperial or both. Both is the default. Each speed interval is independently timed: 0–60 mph is not 0–100 km/h.

Missing or discontinuous GPS never fabricates a distance. Vehicle-speed acceleration/braking can still work. Already-completed measurements survive source loss. Check pending/error/drop status: accepting a queued write is not confirmation it is saved. Ordinary CSV logging is independent. Changed measurement setups have separate histories under All configurations. Extra decimal places do not establish physical sensor accuracy.

Your oil-temperature warning

Bind the warning to your real Oil Temp parameter in Celsius. Warn at starts it; a reading below Clear below clears it. Separate thresholds prevent flicker.

Minimum display time begins when the popup first appears. If it clears early, the message remains until that duration ends. If it is still active, it stays longer. Zero clears immediately. Menus, dismissal and stopping the module still take priority. A warning that clears before ever appearing is discarded.

Under Message & appearance, edit your heading, temperature precision, colours, opacity, font and sizes. Open style preview renders the unsaved draft with the production WASM renderer. Change the sample temperature to check the fit; no sensor value or device setting is changed. Close the preview to release it.

Actual pixels keeps the native 466-pixel display inspectable on a narrow phone; scroll within the preview to see its edges. Fit preview returns to responsive sizing. Sample controls sit beside the preview on desktop and below it on mobile.

Colour text is #AARRGGBB: AA is opacity, from 00 transparent to FF solid. The colour picker and alpha control are synchronized. Visitor is the small pixel font; larger fonts generally need size 1. Keep the heading short enough to fit.

Progressive shift lights

Download the complete Shift crown module (.ogp). Import it through Module packages, bind your real engine speed parameter, then apply setup and start. The package includes MIT-licensed Lua and editable OGS views.

Eight segments fill from 6000 to 7000 RPM, clear below 6000 and blink at 4 Hz from 7000. Unlit segments reveal the original gauge. After more than three continuous seconds at 6800 RPM (redline minus margin), a central DANGER TO MANIFOLD! window appears for at least two seconds from its first appearance. Falling RPM resets measurement; the retained window keeps its live lights.

Under Message & appearance, choose 2–16 segments, an Arc span up to 180° and Left, Top, Right or Bottom. Bottom fills counterclockwise; the other sides fill clockwise. Whole-segment thresholds scale evenly from First light to All lights. The last two segments use the red colour. Both Warning line fields are editable; keep them short and check the unsaved Style preview with sample segments and flash set to 1.

Under Appearance, Shift-light smoothing defaults to 5: 0 is instant; higher positive values respond faster. Segments remain whole, with immediate first light and clearing. Flashing offers No flash, Normal flash (default), and Whole-screen inversion. Inversion keeps lit segments present while alternating the entire display's colours. RPM thresholds and danger timing stay independent of smoothing and flash mode.

Thresholds, blink rate, dwell, minimum display time, colours and placement are editable. Show shift lights and Show danger window are independent appearance switches. The crown stays visible alongside central oil warnings and result messages; central messages still compete by priority. Menus and interaction quiet time suppress both, including module inversion. Version 4 needs firmware with presentation inversion support. Run on boot is opt-in. Existing gauge graphics remain underneath, so their own lights can still be visible when this overlay clears. Manual view selection and style previews show authored content; automatic popup timing and whole-screen inversion apply when returning to the gauge.

Laps, sectors & stages

  1. Choose Lap timer, then Choose / create / import track. Installed tracks load automatically: select one and press Use selected track.
  2. To import, choose Import course JSON and open a previously exported timing course. To create, choose Create a track, load the offline catalogue, search the circuit and pick its outline.
  3. Select Finish and press Draw timing line. Tap one side of the racing surface, then the opposite side. The line must cross the route. Check the orange arrow points in the driving direction; press Reverse direction if needed.
  4. One finish line is enough for laps. Add gate adds optional sector lines; draw and order them as encountered while driving. For a point-to-point stage, put Start first and Finish last. Place A/B and the coordinate fields let you adjust endpoints.
  5. Name the track, then Install & select track → Save choices. Stop the module, Apply saved setup → Start session. Installation alone does not activate timing. Increase the revision when changing an installed course; Export course saves a portable JSON copy.

The ? beside each field explains GPS fix age, fix gaps, HDOP, satellites, crossing speed, rearm distance and timeout. They control which observations are accepted; extra decimal places do not improve physical GPS accuracy.

Views → Screen shows a large current-lap timer, session best and track record. Views → Timing concentrates on the timer and latest completed sector: its signed SESSION and TRACK rows compare against the matching sectors of the session-best complete lap and track-record complete lap, never a theoretical mix of fastest sectors. Green/negative is faster; red/positive is slower; -- means no complete reference. Times use m:ss.mmm (for example 1:45.772); comparisons update at gates, and the final sector remains into the next lap until the next split. Rounded translucent panels leave the central/lower gauge readouts clear. GPS WAIT means no valid fix; READY means waiting to cross the start line.

Offline OpenStreetMap outlines help locate a circuit. They are not verified timing gates: author and validate the actual lines. The catalogue is downloaded only when you press Load offline catalogue. Its ODbL attribution is separate from MIT module code.

Your sessions & recovered logs

Choose Lap timer: its Lap history opens automatically. Select Track and Session, then View lap for the lap time and individual sector times. The top View laps button jumps back to this list. Performance similarly opens Run history, with View run for its measurements. — means unavailable or unreached. Export session CSV saves the displayed session. Recording details use readable names and descriptions; internal journal files are not the results browser.

Start/Stop session controls the module engine and retains the current track session. New session clears current lap count, last and session best, keeping historical sessions and the track record. It requires the module to be started. The first valid start-line crossing on another GPS UTC date starts a new session automatically. Without a trustworthy GPS date, the saved session continues. The round menu shows Last lap / Session best / Track record.

Forgot to enable the module while recording?

  1. Open History → Analyse logs. Select local Gauge.S CSV files, or enter their SD folder and press Browse SD logs.
  2. Check Input columns: elapsed timestamp in milliseconds, speed in km/h, positions in decimal degrees. For lap timing choose the installed track. Older logs missing GPS quality require the explicit displayed assumption.
  3. Press Analyse selected logs. The installed production measurement logic runs locally in your browser. Review results and tick those to keep.
  4. Save selected results puts them in normal module History with recording names, hashes, mappings and assumptions. Each recovered lap recording becomes a session under the track. Repeating the same save is safe.
  5. Start the module once to refresh device summaries/personal bests; stop it again if desired. Individual Performance best resets retain their effect across restarts.

Analysis works offline and does not change live sensor values. Precision is limited by the original recording. The supplied Cadwell example uses private trace-derived lines, not official or surveyed timing gates.

Edit or create your own module

A standalone module is an ordinary .ogp pack. Its first JSON file has "kind": "module". It contains a manifest, text Lua source, OGS view JSON and any local assets/preset sidecars.

  1. Expand Module packages · import and author offline. Import an exported module pack or a folder containing your files.
  2. Edit the manifest and Lua with the source file selector. Validate checks the complete pack. Export preserves all included files.
  3. For visual layout editing, open the pack in the OGS editor's File → Modules source tools. Open a view in the gauge editor, use its ordinary widgets/Customs/preview, then copy the edited view back to the source package.
  4. In the editor, select page-local memory for a disposable preview, stage the package, register/apply setup and start explicitly. Optional input replay uses real simulator inputs; it never writes device outputs.
  5. Export the finished .ogp. On the device, import it, choose a stable instance id and stage the package. Register a new instance or stop/apply setup for a replacement. Start when ready.

Installed packages are immutable and content-addressed. Edit/export source and stage a new pack instead of changing files inside an installed hash directory. Saved settings and inputs stay per-instance. Registration, saving and activation are separate operations.

If several instances share one package id, stage its replacement for every instance, then restart to apply their new source together. Applying just one while its siblings use the old path reports package identity collision and keeps the old runtime. Omit settings/input overrides during staging to preserve saved choices.

Start with Create a reusable module: a practical guide to the Lua sandbox, transparent views, timers, production-renderer verification and installation. The compact author / LLM reference includes a complete small example and API limits. Both are available offline.

V6 / V6.1 · Lua 5.5.1, 32-bit numbers · Module API 1. New V5 module support is deferred until 2027.