01 · Controls

Buttons

The DiscoX has four buttons.

1
Measure
menu: up
2
Measure
menu: down
3
Menu
menu: select
4
Power
on/off

In normal mode

  • Button 1 (Top) — take a measurement, or wake the laser if it's timed out.
  • Button 2 — short press: take a measurement. Hold 2s: toggle Disco mode.
  • Button 3 — open the settings menu.
  • Button 4 (Bottom) — power on/off.

In menu mode, Buttons 1/2/3 become scroll-up, scroll-down, and select. Button 4 still powers the device off.

02 · Field operation

Taking readings

Press Button 1 or Button 2 (short press) to take a reading. The device waits until the sensors have settled before accepting a shot — hold the device still during readings.

LED states

Red Stabilising — hold the device steady.
Green Stable — shot recorded and sent.
Purple Leg detected — three beeps confirm.

After a shot the display freezes on the recorded reading and the laser turns off. Press any measure button to re-enable the laser, then press again to take the next reading.

Leg detection

When three consecutive shots agree in bearing, clino, and distance (within configurable tolerances), the DiscoX recognises a complete survey leg. The LED pulses purple, the laser flashes briefly, and the buzzer beeps three times. The display stays frozen on the leg data until you press a measure button to continue.

Laser wake

If the laser has auto-timed-out, pressing any measure button re-enables it with a short beep before taking the shot.

03 · On-screen

Display

The OLED display shows three values from your most recent stable shot:

  • Distance (top) — in metres, to two decimal places.
  • Azimuth (middle) — compass bearing, in degrees.
  • Inclination (bottom) — clino angle, in degrees.

The top-left shows BT when Bluetooth is connected, with a count of pending (unsent) readings beside it. The top-right shows a proportional battery bar. If the device is set to measure from the front this is indicated at the top of the display as well.

04 · Why not

Disco mode

Hold Button 2 for 2 seconds to toggle disco/rave mode. The laser shuts off and the NeoPixel cycles through colours. Shake the device for faster colour cycling and full brightness.

To exit press any of the buttons other than the power button. The laser restarts and the device returns to normal operation.

05 · Connectivity

Bluetooth & memory

The DiscoX works with current versions of SexyTopo and TopoDroid via a long-range C++ implementation of the SAP6 BLE protocol. The device advertises continuously, so nearby phones and tablets can discover it, unpair and repair it from the Bluetooth settings on your phone.

Once connected, the device flashes blue, a BT label appears in the top-left of the screen, and live readings are pushed directly to your survey app.

Note · BLE naming

Each DiscoX ships with a unique Bluetooth name, this can be changed from within the settings.json config file by changing the ble_name config item. Change it via the settings file, or request a specific name before assembly. Note the name has a limit of 20 characters.

06 · Worth checking if you need one

Calibration

Calibrate whenever you survey in a new area or if readings seem off. Run a Mag Field Check before each trip to quickly verify accuracy at your survey site.

To start: press Button 3Enter Calibration → choose a type.

80 readings

Long calibration

The most accurate option. Runs in two phases automatically.

Phase 1 — Ellipsoid (56): aim in a wide variety of directions. Best approach is to imagine you're standing in a cube and firing at every face and corner while rotating 90° after each shot. No need to be exact.

Phase 2 — Alignment (24): 3 sets of 8 readings. Each set aims at one fixed point; barrel-roll ~45° between shots. Pick 3 fixed points roughly 90° apart. Three beeps = next direction.

B1 record · B3 undo
B1+B2 save · B2 hold discard
24 readings

Short calibration

Faster option for quick field recalibration.

Take 3 sets of 8 readings. For each set, barrel-roll the laser around a single fixed point, rotating ~45° between shots. The 3 points should be roughly 90° apart — e.g. ahead, right, vertically up.

The same 24 readings fit both ellipsoid and alignment, so this is quicker but less thorough than the long version.

B1 record · B3 undo
B1+B2 save · B2 hold discard
Field check

Mag field check

Verifies calibration accuracy without re-running a full cal.

Shoot a fixed target, walk to it, shoot back. Repeat for 3+ pairs in different directions. The device records each pair's bearing error and calculates an overall correction amplitude.

A consistently high amplitude means it's time for a full long calibration.

B1 take shot
B2 finish (after 2+ pairs)

Quality metrics

After calibration the screen shows three quality scores. Lower is better in all cases. View them any time via Menu → Enter Calibration → View Last Cal.

  • Mag — magnetometer ellipsoid fit uniformity.
  • Grav — accelerometer ellipsoid fit uniformity.
  • Acc — final accuracy in degrees (the most important number).
EXCELLENT < 0.25°
ACCEPTABLE < 0.5°
Tip

For best results, calibrate in the same magnetic environment as your survey — i.e. away from bolts, helmet lights, and SRT kit. Anomaly detection will warn you if your calibration is being contaminated.

07 · Configuration

Settings

All common settings are accessible from the onboard menu — press Button 3 to open it.

Onboard menu

  • Enter Calibration — run Long or Short calibration, perform a Mag Field Check, or view last results.
  • Anomaly Detection — toggle warnings for nearby metallic objects (helmet lights, SRT kit, bolts).
  • Laser Timeout — 30s · 60s · 2m · 5m · 15m · 30m.
  • Auto Shutdown — 5 · 10 · 15 · 30 · 60 min · 2h.
  • Delete Saved Shots — wipe any pending readings stored in flash.
  • Measure From: — lets you choose whether to measure from the front or back of the device.
  • Update / Settings — firmware update and advanced config.
  • Play Snake — hidden bonus for when you're waiting around.

Advanced: config.json

Go to Menu → Update / Settings → Edit Settings File. The DiscoX reboots into USB drive mode and appears as a drive called DISCOX. Open config.json, edit values, save, eject, then hold the power button to restart. Any setting you omit uses its default.

Measurement & stability

stability_tolerancedefault 0.4Degrees the sensors must converge within before a shot is accepted. Lower = stricter.
stability_buffer_lengthdefault 3Consecutive stable samples required before accepting a reading.
ema_alphadefault 0.3Exponential moving average smoothing. Lower = smoother but slower-reacting.
laser_distance_offsetdefault 0.162Device length in metres, subtracted from raw laser distance so readings are station-to-station.

Leg detection

leg_angle_tolerancedefault 1.7Max difference in degrees between three consecutive shots' bearing/clino to count as the same leg.
leg_distance_tolerancedefault 0.05Max difference in metres between three distance readings for leg detection.
laser_wibbledefault trueBlink the laser on/off in quick succession when a leg is detected.

Anomaly detection

anomaly_detectiondefault falseEnable warnings when nearby metallic objects may be distorting the magnetic field.
mag_tolerancedefault 10.0Magnetometer field-strength tolerance in degrees from expected local field.
grav_tolerancedefault 10.0Accelerometer magnitude tolerance in degrees.
dip_tolerancedefault 10.0Magnetic dip-angle tolerance in degrees.

Calibration

cal_mag_consistencydefault 0.5Angular consistency window in degrees for the magnetometer during calibration.
cal_grav_consistencydefault 0.4Angular consistency window in degrees for the accelerometer during calibration.
cal_buffer_lengthdefault 5Samples in the calibration consistency window.
cal_settle_msdefault 250Milliseconds the device must remain stable before a cal point is accepted.
cal_ema_alphadefault 0.3EMA smoothing used during calibration.
cal_timeout_msdefault 3000Max ms to wait for stability before a cal point is force-accepted.

Timers & display

auto_shutdown_timeoutdefault 1800Seconds of inactivity before automatic power-off (1800 = 30 min).
laser_timeoutdefault 120Seconds of inactivity before the laser turns off to save power.
screen_brightnessdefault 255OLED contrast level, 0–255.

Bluetooth

ble_namedefault "SAP6_Unicorn"Bluetooth device name advertised to survey apps. Max 20 characters.

Firmware update

Go to Menu → Update / Settings → Update Firmware. The device enters the UF2 bootloader and appears as a removable drive. Drag and drop the new .uf2 file onto it — the DiscoX reboots when flashing is complete.