← Sub One

User’s Guide · v0.3.0

Sub One

Shot timer for iPhone and Apple Watch

Set up your firearm, calibrate it on your watch, time a string, tag what you did and correct the count. Everything you need at the range, in the order you need it.

Download PDF (v0.3.0)

Contents

ChapterWhat it covers
1 Before you startWhat you need and how the Phone and Watch divide the work
2 Send your firearm to the watchAdd a gun on the phone and confirm it arrived
3 CalibrateTeach the app what this gun feels like on this watch
4 Time a stringSTART, the beep, shooting, STOP, and the result screen
5 Tag labelsStart position and the list of what you did
6 Fix the shot countWhen the detector got it wrong
7 Trace LabRe-run detection on a recorded string
8 Par drill, settings and headsetsEverything else on the watch
9 Your dataWhere it lives, the Watch tab, export
10 TroubleshootingMessages you may see and what to do
Quick referenceOne page for the range
TutorialThe app has a built-in tutorial that walks through chapters 2 to 6 with a simulated watch. It opens the first time you start the app. To open it again, go to the Watch tab and tap Tutorial.

Chapter 1

Before you start

Sub One times a shot string from the wrist. The Apple Watch listens to its accelerometer for the recoil of each shot, so it needs no microphone and sends audio commands via Bluetooth to your enabled hearing protection. The iPhone is where you access your firearms and history.

What you need

  • An iPhone with the Sub One app installed.
  • An Apple Watch paired to that phone.
    • The watch app installs along with the phone app, which can take several minutes. If it doesn’t automatically install, It appears under Available Apps in the Watch app on the phone.

Who does what

On the watchOn the iPhone
Calibrating a firearm. Starting a string. Seeing the result. Discarding a string and entering the real count with the Digital Crown.Adding and editing firearms. Sending them to the watch. Reviewing sessions. Confirming or correcting the start position. Tagging what you did. Correcting a count. Export.
StandaloneThe watch works on its own. The phone can stay in the car. Strings queue on the watch and arrive on the phone whenever the two are next in range.

Which watch you have changes one thing

Series 8, SE (2nd generation), Ultra and later sample the accelerometer at 800 Hz. Older watches sample at 100 Hz. The app uses whichever your watch offers and shows the rate on the watch home screen and on every result. You do not set it.

Chapter 2

Send your firearm to the watch

A firearm profile holds the gun’s details and, once calibrated, what it feels like at your wrist. It is created on the phone and used on the watch.

  1. On the phone, open the Firearms tab and tap +. Name the gun and fill in what you know. Save.
  2. A gun that has not been calibrated shows an orange warning triangle in the list. That is expected.
  3. Saving a firearm sends the list to the watch. You can also send it yourself: open the Watch tab and tap Send firearms to watch.
  4. Wait for the green Profiles received pill. It appears after the watch has written the list to disk, so it means the guns are really there.
  5. On the watch, tap the firearm name on the home screen. Your gun should be in the list, marked not calibrated.
No pill?A queued send that has not been confirmed is not lost. It lands the next time the watch app runs. Open the watch app, check the firearm list, and tap Send again if the gun is missing.

Firearms are added and edited on the phone only. The watch list ends with a reminder of that.

Chapter 3

Calibrate

Calibration teaches the app what this gun feels like on this wrist. It is required before START will work, and it belongs to the pair of this firearm and this watch.

The watch home screen shows START greyed out and Calibration required until the gun has been calibrated on this watch. If you get a new watch, calibrate again on it. Calibrate is always available, so you can never be locked out.

Run a calibration

  1. On the watch, pick the firearm, then scroll down and tap Calibrate. Read the intro and tap Begin.
  2. The watch starts its workout session and sensor. You get four seconds to settle.
  3. Listen for beep, beep, BEEP. Fire exactly one shot after the long beep ends. The screen says FIRE and a 1.20 second window is open.
  4. Two rising tones mean the shot counted. Two falling tones mean it did not and the same shot is repeated.
  5. Repeat until you have five clean shots. You get up to twelve attempts.
  6. The result screen lists every attempt, the median peak, the floor and the energy. Tap Accept to save them to the gun.
Rep resultMeaning and what to do
GoodBanked.
Nothing heardNo shot in the window. The rep is repeated.
Too earlyThe shot landed during the beep. Wait for the long beep to finish.
Two eventsMore than one event in the window. The rep is repeated.
No sensor dataThe watch sent no motion data. It is not a missed shot, so do not re-shoot it. Two in a row stops the run and saves what it saw.
Need fourAt least four clean shots are needed before Accept is offered. If the five accepted shots are not alike (a spread over 2x between strongest and weakest), the screen warns you. Consider redoing it.

End keeps what the run saw so far and saves it for review. Cancel discards the run. Neither changes the gun until you tap Accept on a finished run.

Chapter 4

Time a string

  1. On the watch home screen, check the firearm name under START. Tap START.
  2. Shooter ready: low tones count down your prep time. You set the length in Settings.
  3. Stand by: take your start position and hold still. The watch reads which way gravity points during the half second before the beep to work out your start position.
  4. A random delay, then the start signal. The clock starts at the signal.
  5. Shoot. The screen shows the running time, your shot count and the latest split.
  6. Tap STOP when you are done.

The result screen

ItemWhat it is
Big timeTotal time: start signal to your last detected shot.
Shots and HzHow many shots were detected, and the rate the samples actually arrived at.
1st / Best / AvgFirst shot time, best split and average split.
StartThe start position the watch sensed. Display only on the watch.
Shot listEvery detected shot with its time and split.
Orange question markA shot that only just cleared the detector’s bar. If it is the last or first shot, the total or draw time rests on it.
Draw and total estimatedShown when the start-signal delay is a class average and not something measured for your headset. Splits are not affected.
Samples were droppedThe watch lost some motion data during the string. Treat the times with care.

Swipe left on any shot to delete it, for example a neighbour’s shot or a bumped bench. Then choose Save to keep the string, or Discard if the count is wrong (chapter 6).

TipShoot your last round, then stop. A last shot at slide lock is the one most likely to be missed, and it is the one your total depends on.

Chapter 5

Tag labels

Labels turn a string into something you can learn from later. They are added on the phone after the fact and are never placed on the sensor data.

Start position

Open Sessions, tap the string, and look at the Capture block. The watch reads one of these:

LabelMeaning
Hands above shouldersSurrender position
Low readyGun at low ready
Hands below waistHands low, gun not up
Firearm on a surfaceGun resting on a table or barrel.
OtherAnything else

If the watch read it right, leave it. Leaving it as sensed counts as confirmed. If it got it wrong, tap the right one. Both values are kept, and the pair is what teaches the watch. If it could not read the position it says Not read, and you can set it yourself.

String actions

Further down the string page, tap Edit string and build the list of what you did, in order.

  1. Pick the starting position.
  2. The editor offers only actions that can follow the last one. After Low ready; slide forward and slide back are offered as conditions of the low ready not next steps.
  3. Tap Fire a string and enter how many rounds. Use Dry fire for a trigger press with no round fired.
  4. Keep going: reload, malfunction, holster, draw, and so on. Undo last removes the latest one.
  5. Tap Save.
CountThe footer shows whether your rounds match what was detected. If they differ, saving sets You fired to your rounds and takes the string out of your stats. Detected and fired are both kept.

What the colors mean

Each action in the string list is a colored pill, so the order of a string can be read at a glance. The colors are fixed:

ActionColor
StartBlue
Slide forwardTeal
Slide backOrange
Slide release, Rack slideYellow
FireLime green
Dry fireMint
ReloadPurple
MalfunctionRed
HolsterIndigo
DrawCyan

A few other colors on the phone carry meaning too. None of them is a grade of your shooting.

ColorWhat it tells you
Yellow tinted rowIn Sessions, the string was kept but is not one of your numbers, because you corrected its count. In a calibration list, the run had fewer than four clean shots.
Orange timeThe big time on a string row is orange when the last shot only just cleared the detector’s bar. The recorded time rests on that shot, so treat the number with care.
Red capsuleSomething went wrong while the watch was capturing the string. Treat that string with caution.
Orange warning triangleOn a firearm in the Firearms list: it has not been calibrated yet.
Orange shot countIn Trace Lab, the count from your slider settings differs from the count recorded for that string.

Chapter 6

Fix the shot count

If the detector counted a handling noise as a shot, or missed a shot, tell the app. Your correction is the only ground truth it can get.

On the watch, right after a string

  1. On the result screen tap Discard.
  2. Choose a reason. Un-Needed deletes the string. Incorrect data tells the app the detector was wrong and allows for editing.
  3. With Incorrect data, turn the Digital Crown to the number of shots you fired. If you do not remember, tap Unknown. A wrong count is worse than none.
  4. When Complete, Tap Save.

On the phone, any time later

  1. Open the string in Sessions. Under Count, tap Correct this count.
  2. Set Shots fired with the stepper, or I’m not sure if unsure. Zero is a valid answer.
  3. When Complete, Tap Save.

A corrected string is kept out of your stats. The recorded data and both counts stay. If you change your mind, tap Actually, the count was right.

WhyCorrecting counts is how the detector gets better for your gun. Dry fire and handling register as shots too, so a string with no rounds fired is worth recording as zero.

Chapter 7

Trace Lab

Trace Lab replays a string’s recorded sensor data through the same detector the watch ran, so you can see why a shot was counted or missed without going back to the range.

Open it from Sessions: tap a string, then Open in trace lab. The link only appears for strings that have a recording. Raw traces are on by default, and calibration always keeps one (chapter 8).

What you see

PartWhat it shows
ChartThe strength of the motion over the whole recording, with the sample count and rate above it. A lime line marks each shot found at the current settings. A dashed orange line marks the start signal.
Detection parametersFour sliders, described below. The sliders start at your gun’s current settings for the watch that recorded the string.
ComparisonThe count recorded live next to the count at the current slider settings. The count changes as you move a slider.
Re-detectedEach shot found: its number, its time from the start signal, its peak in g, and its margin (shown as x and a number). A margin in orange is close to the detector’s bar. When the gun has a learned recoil direction, the last figure is the angle off that direction in degrees, orange when large. Nothing is rejected on the angle. It is there to be looked at.

The four sliders

SliderWhat it does
Peak floor (g)The smallest peak that can count as a shot. Raise it to drop weak events. Lower it to find weak shots.
Energy floor (g·s)The smallest total energy that can count. It works alongside the peak floor.
SigmaHow far above the background noise an event must stand out. Lower finds more, including noise.
Refractory (s)The quiet time after a shot during which another event is not counted. It stops the ring-down after a shot from being counted twice.

Using it

  1. Open a string where the count was wrong, such as one you corrected.
  2. Look at the chart. Check each lime line sits on a real shot.
  3. Move the sliders until the count matches what you know you fired.
  4. Look at what changed. A false shot that disappears at a modest floor is a good sign. A real shot that disappears means the floor is too high.
CarefulMatching the live count is not the goal, because the live count may have been wrong. The goal is the count you know you fired. Be sure of your own count before you tune to it.

Saving your settings

Save these as the firearm’s profile writes the peak floor and energy floor into the calibration of the watch that recorded the string, and the refractory into the gun. Sigma is not saved. This changes how every future string on that gun and watch is detected. There is no undo. To go back, calibrate again (chapter 3).

TipTry one string first, then check the result on a second string before you save. A setting that fixes one string can break another.

Chapter 8

Par drill, settings and headsets

Par drill

Choose Par drill on the watch home screen for a timer with a par time and no shot detection. It records nothing. Use it for dry-fire practice.

Settings

SettingWhat it does
Range commandsThe prep sequence. One low tone for each second of prep time, then Stand by, a random delay and the start signal. The last tone lands a second before the delay opens, so it cannot be mistaken for the go signal.
How you wear itTell the app which hand you shoot with and which side of your wrist the watch sits on. The watch already knows which wrist. Wearing it on the inside of the wrist changes what the sensors see, mostly at low ready. Strings record how you wore it.
Start signalShows how the beep leaves the watch (speaker or headset) and lets you measure a headset’s delay. See below.
Raw tracesOn by default. Keeps the sensor recording for every string so it can be re-examined later. Turn it off to save space. Calibration always keeps one.

Bluetooth headsets and electronic muffs

Bluetooth adds roughly 150 to 200 ms between the app playing the beep and you hearing it. The app compensates, but the figure is only as good as what it knows about your headset. To measure it, go to Settings, Start signal, and run Measure. A metronome ticks and you tap the watch in time.

  • First measure your own tap bias on the watch speaker, with the headset disconnected. This is done once.
  • Then measure each headset. The result is the difference from your baseline.
  • If your taps are inconsistent (about 40 ms of spread or more) the screen tells you to run it again.
  • If the headset connects in a narrow telephony mode the beep is quiet. Reconnect it as a media device.

Until a headset is measured, draw and total are marked estimated on the result. Splits are unaffected.

Chapter 9

Your data

Where it lives

Strings, firearms, calibrations and sensor recordings are kept in one folder. On a phone that has iCloud Drive available to the app, that folder is in Files, iCloud Drive, Sub One. It survives deleting and reinstalling the app, which matters because TestFlight builds expire.

To check, open the phone’s Watch tab. Under Stored, the Kept in row reads iCloud Drive or This iPhone. If it says This iPhone, iCloud is not available to the app, so your strings are deleted with the app. Check that iCloud Drive is on for Sub One in iPhone Settings.

The phone’s tabs

TabWhat it holds
SessionsYour strings and calibration runs. Tap a string for its shots, count, capture details, labels and sensor recording.
FirearmsYour guns. Add, edit and delete. Shows a warning for any gun that is not calibrated.
WatchLink health (paired, installed, reachable), Send firearms to watch, what is stored and where, the version and build, and the Tutorial.

Trace Lab

A string with a sensor recording can be re-examined in Trace Lab. See chapter 7.

Export

On the Sessions tab, tap the share icon at the top right to export your strings through the iOS share sheet. The files are JSON and CSV, named prime-factor- followed by a description. The file format is documented and versioned, so it can be read by other tools. The app has no server of its own and sends nothing to one.

Chapter 10

Troubleshooting

You seeWhat to do
START is grey, Calibration requiredThe gun has no calibration on this watch. Tap Calibrate on the watch and finish a run. A calibration made on another watch does not count.
Calibrated on another watchCalibrate again on this watch. Each watch keeps its own.
Firearm missing on the watchPhone, Watch tab, Send firearms to watch. Wait for Profiles received. Open the watch app.
Watch did not confirmNot necessarily lost. Open the watch app, check the list, send again if needed.
Calibration says Nothing heard every timeFire after the long beep, not during it, and keep the gun in your normal shooting grip.
No sensor dataThe watch sent no motion data. Do not re-shoot that rep. Check the watch has the app in front and a workout session can start.
Too many or too few shots countedDelete false shots on the watch, correct the count, and recalibrate if it keeps happening.
Start position says Not readThe wrist was moving or no position matched. Hold still during Stand by. You can set it by hand on the phone.
Start position often wrongCheck How you wear it in Settings. Firearm on a surface is the hardest for the watch to sense.
Beep is faint or lateCheck the headset is connected as a media device and run the Start signal measurement.
Watch app will not installWait up to 15 minutes with the watch unlocked and nearby. The app appears under Available Apps in the iPhone Watch app.
Strings gone after reinstallCheck the Kept in row on the Watch tab. If it said This iPhone, the strings were deleted with the app.

Guide

Quick reference

Every session

  1. Phone: Watch tab shows a paired, installed, reachable watch.
  2. Phone: firearm sent and received.
  3. Watch: pick the gun. START is lit, so this gun is calibrated on this watch.
  4. Watch: START, stand by, shoot, STOP.
  5. Watch: check the shot list. Swipe away false shots.
  6. Watch: Save, or Discard and enter the true count.
  7. Phone: confirm the start position, tag the actions, correct anything wrong.

Calibration in one line

Five shots, one per cue, fired after the long beep. Rising tones count, falling tones repeat. At least four clean, then Accept.

Watch buttons

ButtonResult
STARTLive-fire string. Needs calibration on this watch.
Par drillTimer with par time. No shot detection.
CalibrateFive prompted shots for the selected gun.
SettingsRange commands, wear, start signal, raw traces.
Swipe a shotDelete that shot.
DiscardUn-Needed, or Incorrect data with the true count.
SafetySub One is a timer. It does not replace range rules, a range officer or safe gun handling.