HOLDG · barrel-mounted IMU

HOLDG for ISSF shooters

What the device measures, what it cannot measure, and how to build real training around the difference.

Written for the competitive ISSF shooter and their coach. It assumes you already know your discipline. It does not assume you know or care how the sensor works — but it does explain the parts you have to know in order not to be misled by it, because the single most expensive mistake with any electronic trainer is trusting a number it was never able to produce.

SensorBarrel-clamped IMU over BLE
Rate416 Hz gyro + accelerometer
Units10 m-equivalent millimetres
DistanceIrrelevant — it measures angles
ModesHold Trainer · Free practice · Match series
PlatformsAndroid, iOS, macOS

01The one idea, and why it matters to you

A sensor on the barrel measures where the bore is pointing, as an angle. It does not see the target, the room, or the distance.

10 m-equivalent mm = tan(angle) × 10000

Everything in the app — every trace, every score, every recoil figure — is reported in 10 m-equivalent millimetres. One milliradian is ten millimetres. That has three consequences that matter on a real training week.

bore0.05 mrad0.5 mm10 m1.25 mm25 m2.5 mm50 m
One angle, three distances. The physical ten ring grows with range; the angle does not. HOLDG measures the angle and quotes it as what it would be at 10 m — which is why a 50 m event trains honestly in a 10 m hall.

Distance is irrelevant

A 50 m rifle shooter can train in a 10 m hall, a 25 m pistol shooter in a corridor, and the numbers are directly comparable to the ones they produce on the range. There is no print scale to get wrong, no region of interest to align, no marker to detect, and no re-calibration when you move.

Every discipline lands on one scale

A 50 m three-position shooter and an air rifle shooter can compare hold figures directly, because both are quoted as angles wearing millimetre clothes.

The difficulty of your event is a number

This one is worth internalising — the table below is the whole sport, measured on a single axis.

EventTen ring (physical)DistanceTen ring (angular)10 m-equivalent
10 m Air Rifle0.5 mm10 m0.050 mrad0.5 mm
50 m Rifle (3P / Prone)10.4 mm50 m0.208 mrad2.08 mm
50 m Pistol50 mm50 m1.00 mrad10.0 mm
10 m Air Pistol11.5 mm10 m1.15 mrad11.5 mm
25 m Pistol / Standard / Centre Fire50 mm25 m2.00 mrad20.0 mm
25 m Rapid Fire Pistol100 mm25 m4.00 mrad40.0 mm

The 10 m air rifle ten ring is the smallest angular target in the sport — a quarter the angular size of the 50 m rifle ten, and one twenty-third of the air pistol ten. Centring it means holding the bore inside twenty-five microradians. That is roughly the angle subtended by a human hair at arm's length, and it is why air rifle rewards hold work more than any other event and punishes a trigger that moves the gun at all.

02What the hardware actually is

An IMU device clamped to the barrel, streaming over Bluetooth Low Energy to a phone, tablet or Mac.

Rate416 Hz, gyro and accelerometer, every sample sent
Gyro±500 °/s, 17.5 mdps/LSB — the finest trace resolution the part offers
Accelerometer±8 g, 0.244 mg/LSB (≈0.014° of tilt)
Microphone16.125 kHz PDM, used for shot onset detection only
Power416 Hz while shooting, 26 Hz idle, deep sleep with wake-on-motion

The module makes no decisions. It ships raw calibrated sensor data and candidate shot events; the phone does the orientation estimation, the drift handling, the shot gating, the dry/live call and the scoring. Every algorithm on this page can therefore be improved by an app update rather than a reflash.

No hardware yet?

Device → Connect → demo shooter. The synthetic device models a real shooter's tremor, a real gyro's bias and real thermal drift, and drives the actual pipeline through the actual wire format. Every screen and every drill described here works without a module — which makes it a legitimate way to learn the app, or to decide whether you want one.

03Read this before you trust a number

Two limits shape everything. Both are stated plainly rather than hidden, because a shooter who knows them can work around them and a shooter who does not will draw false conclusions from real data.

3.1Yaw drifts. Absolute position is not durable.

The board has no magnetometer. Left–right aim is pure gyro integration, and gyro bias instability alone is 30–60 mm per minute at 10 m. Over a 75-minute 60-shot air rifle match, the origin can wander further than the entire scoring face.

HOLDG deliberately does not hide this behind an automatic recentring leak, because that would also erase genuine slow aim wander — which is real coaching information, and one of the few things that distinguishes a tiring shooter from a fresh one. Instead:

  • zero-rate updates whenever the gun is genuinely at rest, which is most of the time between shots;
  • an origin that follows a settled hold, announced on screen when it moves, never silently;
  • a one-tap re-centre.

What this means for you. Anything measured over a short window is trustworthy. Anything measured against a long-lived reference is not.

TrustworthyTreat with care
Hold size and shape over the last few secondsWhere the group sits on the face
Tremor frequency and sway shareAbsolute score of a 60-shot string
Movement at the breakPoint of impact / zero
Recoil magnitude, direction, loop, recoveryComparing shot 1's position to shot 60's
Shot-to-shot recoil agreementElevation vs windage bias over a match

This is why the live screen shows recoil rings rather than a scored face for the two firing modes. Recoil is displacement measured across the fraction of a second after the break, over which drift is negligible — so it means the same thing on shot one and shot sixty, and between sessions weeks apart. A group plotted on a face does not.

Re-centre whenever you settle into position, and again if you break position. Treat scores as a within-string indication, not as a match result.

3.2Dry and live cannot share a threshold

A spring-piston rifle's dry impulse is larger than a match PCP's live impulse. There is no universal number that separates them, so HOLDG fits the boundary per weapon from a six-shot enrolment (three dry, three live) and refines it from any in-session correction you make. Until a gun is enrolled, shots are recorded and measured but not classified — which is honest, and costs you nothing for pure dry-fire work.

3.3A shot appears about three seconds after you fire it

Recoil recovery — how long the muzzle takes to come back inside your hold — is one of the measurements, and it cannot be known until it has happened. The window is three seconds. Until it closes, a corner indicator on the rings tells you the shot was heard (SHOT), then that it is being measured, with an arc closing over the wait. You never have to wonder whether the app missed you.

04What you get per shot

Every accepted shot is measured on four axes. These are the app's actual outputs, not a wish list.

Holdhow still the gun was
MetricWhat it isWhat it tells you
Trace lengthTotal path the aim travelled in the final second, mmThe single best summary of hold quality. Falls as technique improves, rises with fatigue.
Mean radial deviationAverage distance from the hold's own centreHold size, independent of where it sat
95% hold ellipseThe ellipse containing 95% of the aimHold shape. A tall thin ellipse is breathing or position; a round one is tremor.
Time in tenFraction of the final second spent inside the tenThe number that actually predicts scores
Tremor spectrumDominant frequency, sway share vs tremor shareSway and tremor look identical on a trace and need opposite coaching. Slow postural sway → stance and balance. Physiological tremor at 8–12 Hz → grip tension and timing.
Approach and releasewhat you did with the trigger
MetricWhat it is
Approach length and directionHow the aim came into the shot over the final second
Approach driftNet movement across that second — settling in, or sliding off
Shot-moment jump (“at break”)Aim 8 ms before mechanical onset vs 30 ms after. This is the trigger-snatch metric, and it is kept out of the recoil figure on purpose.
Aiming timeHow long you were inside the aiming area before the break
First-ten entry to shotHow long between first entering the ten and releasing — hesitation, or hunting
Follow-through deviationHow far the aim wandered in the three seconds after the break
CantGun roll at the moment of the shot

The aim point is sampled a few milliseconds before mechanical onset, so recoil can never contaminate the recorded shot position.

Recoilwhat the gun did
MetricWhat it is
Peak excursionFurthest the muzzle was thrown, in 10 m-equivalent mm
DirectionBearing it went
Rise timeHow long to reach that peak
Recoil widthHow wide the excursion loop was
The loop itselfThe muzzle's actual path, drawn on the rings
RecoveryHow long until the aim came back inside your hold, and whether it did at all
Settle pointWhere the gun ended up relative to where it was aimed

Read the ring's centre correctly, because everything else follows from it. The centre is where the gun was pointing 8 ms before the sear let go — not the target centre, not your hold centre. Every millimetre drawn is departure from that instant.

peakbreak−330 ms · trigger+250 ms · impulse
The centre is not the target. It is where the gun was pointing 8 ms before the sear let go, and every millimetre drawn is departure from that instant.

The drawn loop has two halves, in two colours, and they are two different faults:

Amber, running inwardthe last third of a second before the break. This is the gun departing under your trigger pull. Its fault is the trigger finger.
Red, running outwardthe 250 ms after the break. This is the shot's own impulse. Its fault is the grip, the position and the gun.

Both brighten toward the break, so the eye lands on the instant they join.

The peak, the direction and the width are measured over the red half only. The trigger pull is deliberately not folded into them, and is reported separately as at break — the aim 8 ms before onset against 30 ms after. This separation is the point. A 90 mm kick with 0.2 mm at the break is a clean release on a gun that moves; the same 90 mm with 4 mm at the break is a snatch. Those need opposite work, and a single combined figure would send you to the wrong one.

Agreement — the circular concentration of the recoil bearings across a string — is reported as a percentage, and it is the number to watch. A muzzle that goes 40 mm the same way every time is a gun and a position you can shoot around. One that averages the same 40 mm scattered through a half turn is a hand doing something different each shot, and no per-shot figure separates the two.

Classificationdry or live, and how sure

Each shot carries a dry/live call and a confidence. Low-confidence calls are drawn as an incomplete ring, so a shot worth arguing with is visible against the group rather than buried in a list. Correcting one folds back into the weapon profile.

05The three modes, and what each is for

Hold Trainerno firing at all

The mode to start with, and the one that needs neither a weapon profile nor shot detection. A ringless milliradian grid, a 60-second trace window, and a density heat map instead of a line — because a line trace turns into a solid blot after about thirty seconds of holding, and density does not.

This is the drill that survives everything. It works with an unenrolled gun, in a hotel room, with no pellets, in the ten minutes before bed. It is also the mode where the drift caveat matters least, because it is entirely about the shape of a hold over seconds.

Hold ellipseTrace lengthTime in tenTremor spectrum
Free practicerecoil rings, unlimited shots

Each shot draws a vector from the centre at its own length and bearing. Newest brightest. The mean bearing is drawn over the set with an arc spanning the spread, so a tight fan and a starburst are told apart at a glance. The most recent shot also draws its full path — amber into the break, red out of it.

Mean kickWorst kickAt break (last shot)Agreement + bearing in the header
Match seriesthe same rings over a counted string

10, 20, 40 or 60 shots, with a running total, decimal scoring and a shot table.

The picture is identical to free practice on purpose. What separates the two modes is the count and the total, which are numbers rather than a different instrument.

Running totalDecimal score per shotShot table

Note the gap: the selectable string lengths are 10/20/40/60, so a 50 m Three Positions shooter cannot currently set a 120-shot series and must shoot it as three 40s. The per-discipline course of fire is defined in the code but is not yet wired to the picker.

06Building a training week around it

The pattern that works is to use the device for what it measures well, and to keep the range for what only the range can settle.

Hold TrainerDaily · 15–20 min

Three blocks of 60 seconds in position, full recovery between. Log trace length and the ellipse. Do not chase the numbers within a session — the signal is the trend across weeks, and a single block is dominated by how recently you climbed the stairs.

Watch the tremor split, not just the size. Two shooters with identical trace lengths, one at 70% sway and one at 40% sway, need opposite work. The app says which you are and updates it four times a second.

Free practice, dry, 20–40 shots3× a week

The recoil rings are the instrument. You are looking for two things:

  1. Agreement above 85%. Below that, the release is doing something different shot to shot. Work grip and trigger finger placement, not hold.
  2. Shot-moment jump near zero. This is trigger snatch, measured. It is the highest-value single number in the app for a developing shooter, and it is invisible to the naked eye and to paper.

Open individual shots afterwards. The shot screen shows the muzzle's actual path either side of the break: a needle is a gun driven straight back, an open loop is torque, and the side it opens to is the hand doing it. Check the amber run-in against the red loop — a long amber tail with a short red one is a trigger problem wearing a recoil problem's clothes.

Match series, dry, full course of fireWeekly

Shoot the string you compete over — 60 for air rifle and air pistol; 50 m three positions goes as three 40s, since 120 is not currently selectable — at match pace. Re-centre at the start and if you break position; ignore the absolute group placement.

What you are training is the thing a match actually tests and a range session usually does not: whether your hold and your release survive shot fifty. Compare the first ten shots' trace length and agreement against the last ten in the same session. Degradation there is a conditioning and routine problem, and it is the most common reason a 580 shooter is not a 600 shooter.

Live, with the module fittedAt the range

Enrol the weapon once (six shots), then shoot normally. The value here is the combination the app can produce and paper cannot: for each shot on the target, what the hold was, what the trigger did, and what the gun did afterwards.

Recovery matters most here and cannot be trained dry with the same fidelity — a dry release does not load the shooter the way a live one does.

07Discipline by discipline

Six events, six different uses of the same instrument. Open the one you shoot.

  • 60 shots, decimal qualification, max 654.0
  • The event with the smallest angular ten in the sport, and therefore the one where hold work pays most.
  • Time in ten is the metric that maps most directly to score. At 0.5 mm ten-ring diameter, a hold that spends 40% of the final second inside the ten and one that spends 70% are different shooters, and the difference is visible long before it shows in a score.
  • Shot-moment jump is brutal here. A 0.3 mm movement at the break — well under a millimetre, imperceptible in the sights — is more than half the ten ring. This is the number that explains “I called it a ten”.
  • Cant matters more than most rifle shooters believe. It is reported per shot.
  • Decimal scoring in qualification since 2013 means the difference between 10.9 and 10.0 is 0.9 points of a 654 maximum, and it is exactly the difference the hold ellipse predicts.
  • 60 shots, integer qualification, decimal final
  • A ten ring 23 times the angular area of the air rifle's, held one-handed without support.
  • Hold size dominates, and the ellipse shape is the diagnostic: pistol holds are typically vertical (arm fatigue, breathing), and a horizontal ellipse usually means the stance line is wrong.
  • Because qualification is integer-scored but finals are decimal, an air pistol shooter aiming at finals should train against the decimal figure the app reports rather than the ring count. HOLDG reports decimal for every discipline, which is the harder and more informative standard.
  • Follow-through deviation and recovery are the two most under-trained numbers in pistol. A shooter who drops the arm at the break scores well in practice and badly under pressure.
  • 3 × 40 shots · 60 shots prone
  • The angular ten is four times the air rifle's, so hold requirements are looser — but the positions are not comparable to each other, and the app lets you quantify that.
  • Shoot a Hold Trainer block in each of prone, standing and kneeling and read the ellipse: the ratio between them is a position-quality figure you can track across a season.
  • Train the 50 m event in a 10 m hall at full angular fidelity. This is the single largest practical benefit of an angular instrument for a three-position shooter, especially through a winter.
  • Kneeling and standing have distinct tremor signatures. The sway/tremor split tells you whether a bad standing block was balance or muscle.
  • 60 shots
  • Long, slow, and the event where fatigue across the string is decisive.
  • The weekly match-series drill is the one that matters: first-ten versus last-ten trace length, over a full 60.
  • precision + duelling / timed stages
  • The precision stage behaves like 50 m pistol at twice the angular size. The duelling and timed stages are where HOLDG earns its place.
  • Recovery is the discipline. How long the muzzle takes to come back inside the hold, shot to shot, is the thing the clock is testing, and it is measured directly in milliseconds.
  • Recoil agreement across a five-shot series predicts whether the series holds together. A scattered rose in the timed stage is a grip that is being re-established between shots.
  • 5 shots in 8 s, 6 s, 4 s
  • The purest recovery event in the sport, and the one where the recoil instrument is the whole point rather than an accessory.
  • The app shortens its trace-colouring windows automatically for rapid fire — a one-second “final approach” would cover an entire four-second series and colour every shot the same.
  • Read the recovery time distribution across the series, not the mean. One slow recovery in five is the shot that costs the series, and the mean hides it.
  • The final is hit-or-miss at 9.7. Against a 4 mrad ten ring that is a tolerance you can rehearse against dry, using recovery and settle point, without burning a single round.

08For coaches

The trace is not the deliverable; the diagnosis is. Four things the app gives a coach that a paper target and a spotting scope cannot:

  1. Trigger snatch, quantified. Shot-moment jump separates “the shot went left” from “you moved the gun 0.4 mm left at the break”. These need different corrections and look identical downrange.
  2. Sway versus tremor. Opposite coaching, identical appearance. The spectrum settles the argument in four seconds.
  3. Recoil agreement across a squad. Ten shooters, the same gun, ten different roses is a technique spread; one gun with a scattered rose across all ten shooters is the gun.
  4. Remote review. Sessions export as CSV, JSON and a printable A4 PDF, so a coach can work from the numbers without being in the room. The raw session is also kept as a .holdgrec — the wire bytes, not decoded objects, so a recording made today stays replayable after the filter or the feature set changes — and it replays through the identical live pipeline.

Note the gap: replay is currently driven from the session's own stored file. There is no in-app import, so a coach replaying a shooter's session needs the file placed on their own device and a record pointing at it; a plain file-open would close this and does not exist yet.

Every shooter and weapon is a first-class record. Weapon profiles belong to the gun, shared across shooters, because physics does not change per person — re-enrolling one club rifle for every member would be pure waste.

09Practical setup notes

Mounting

The clamp must not move relative to the bore. A module that shifts by half a degree between strings invalidates the comparison you were trying to make. It does not need to be aligned precisely — the bore-learn step measures where the sensor actually sits relative to the barrel — but it does need to stay there.

Bore learn

A one-time roll of the gun about its own axis teaches the app the bore direction in the sensor's frame. Get this right and gun cant no longer corrupts the aim point; get it wrong and cant leaks into every group in a way that looks exactly like the shooter's fault. The app reports a confidence for it, and refuses to claim a learn it did not get.

Shot detection tuning

Two sliders, both in Trace settings on the live screen:

  • Shot sensitivity — how clear the recoil signature must be. Raise it if keystrokes, bench knocks or a dropped magazine are arriving as shots.
  • Prior motion tolerance — how still the gun must have been beforehand. Raise it if cocking a break-barrel registers as a shot.

Diagnostics → Shot gate counts every rejection by reason (Too quiet, No IMU, Too small, Was moving, Cooldown), so tuning is a matter of reading which stage is firing rather than guessing.

Range etiquette

One tap silences every audio cue, and nothing else degrades when it is on. The screen stays awake through a string.

10Where this fits against the alternatives

Optical trainers (SCATT, Rika, Noptel and similar) measure against the actual target and therefore have a true, drift-free origin. They score honestly over a full match. They also need the real target at a known distance, controlled lighting, and a mount and setup procedure per session.

HOLDG is not a replacement for that; it is a different trade. It gives up absolute position over long periods and gains: no target, no distance, no lighting, no setup — plus a recoil measurement set that optical systems do not produce at all, because a camera watching a target cannot see what the muzzle did in the 250 ms after the shot.

Use an optical system when you need a scored match at the range. Use HOLDG for everything else, which for most shooters is most of their training hours.

 Optical trainerHOLDG
OriginTrue, drift-freeDrifts in yaw; short windows only
Needs the real targetYes, at a known distanceNo — angles, any room
Lighting and setupControlled, per sessionNone
Scores a full matchYes, authoritativelyWithin-string indication
Measures recoilNoPeak, bearing, loop, recovery, settle

It is also worth noting where the sport itself has gone: the 2026 ISSF rulebook incorporates live aiming into rifle and pistol events, alongside expanding all individual finals to eight athletes. Aim-trace technology is no longer a training curiosity — it is part of how the sport is presented at the top level, and a shooter who is fluent in reading their own trace is reading the same instrument the broadcast now shows.

Model by model, with sourced figures: HOLDG versus SCATT.

11What this version does not do

Stated so nobody discovers it mid-season.

LimitationWhat it means
No cloud sync and no accounts.Data is on the device and in your exports.
A 120-shot match series cannot be selected.10/20/40/60 only; shoot 50 m Three Positions as three 40s.
No .holdgrec import.Replay works from a session already on the device.
No MOA units.Everything is millimetres and milliradians.
No Windows or Linux build.Android, iOS and macOS.
Web is architecturally impossible.No BLE, no serial in a browser.
Absolute scoring over a long string is indicative, not authoritative.A physical limit of a magnetometer-free sensor, not a bug awaiting a fix. See §3.1.
Follow-through metrics changed meaning.When that window was shortened from 15 s to 3 s. Recovery figures either side of that change are not directly comparable; a single session always is.

12Quick reference — the six numbers worth memorising

NumberGood directionWhat it is really telling you
Trace length (mm, final second)DownOverall hold quality. The headline.
Time in ten (%)UpThe best single predictor of score.
Sway share (%)ContextHigh → stance and balance. Low → grip and timing.
At break / shot-moment jump (mm)Down, toward zeroTrigger snatch, measured — and never mixed into the recoil figure.
Recoil agreement (%)UpWhether your release repeats.
Recovery (ms)DownDecides every timed event.

Everything else in the app exists to explain one of these six.

Get HOLDGAndroid, iOS and macOS · Works today against the demo shooter

FAQ

  • No. HOLDG measures where the bore points as an angle and reports everything in 10 m-equivalent millimetres, so a 50 m rifle shooter can train in a 10 m hall and a 25 m pistol shooter in a corridor. There is no print scale, no region of interest, no marker to detect and no re-calibration when you move.
  • Treat scores as a within-string indication, not a match result. The sensor has no magnetometer, so left–right aim is gyro integration and the origin drifts 30–60 mm per minute at 10 m. Hold shape, movement at the break, recoil and recovery are all measured over short windows and stay trustworthy; absolute group placement over a long string does not.
  • Recoil. Peak excursion, bearing, rise time, loop width, the muzzle path itself, recovery time and settle point — a camera watching a target cannot see what the muzzle did in the 250 ms after the shot. HOLDG also separates trigger snatch (the aim 8 ms before onset against 30 ms after) from the gun's own impulse, which are opposite faults.
  • Yes. Device → Connect → demo shooter runs a synthetic device that models real tremor, real gyro bias and real thermal drift through the actual pipeline and wire format, so every screen and every drill works before a module arrives.
  • After a six-shot enrolment per weapon — three dry, three live. A spring-piston rifle's dry impulse is larger than a match PCP's live impulse, so no universal threshold exists. Until a gun is enrolled, shots are recorded and measured but not classified.
  • Android, iOS and macOS. There is no Windows or Linux build, and a web version is architecturally impossible because browsers have neither BLE nor serial access of the kind the module needs.

Sources

ISSF rules and formats cited above were checked against, rather than recalled:

ISSF — 2026 Rulebook changesAll individual finals expanded to eight athletes; mixed team medal matches consolidated; live aiming incorporated into rifle and pistol events; in force 1 January 2026 and applying through Los Angeles 2028.issf-sports.orgISSF Pistol Rules (2023 approved version)Ring geometry and courses of fire for the pistol events.backoffice.issf-sports.orgISSF 10 metre air rifle60-shot qualification, decimal scoring since 2013, maximum 654.0.en.wikipedia.orgISSF 10 metre air pistol60-shot qualification scored in whole rings to a maximum of 600, decimals in the final.en.wikipedia.orgISSF event descriptions — Welsh Airgun AssociationEvent-by-event formats.welsh-airgun.org.ukA beginner's guide to ISSF 25 m rapid fire pistol8 s / 6 s / 4 s series of five; final scored hit-or-miss at 9.7.target-log.net

Ring geometry, sensor specifications and every app behaviour described here were taken from the HOLDG codebase and firmware — target definitions, metrics, detection and the engineering spec — not from the sources above.

HOLDG is a training instrument for the shooting sports. It does not sell, promote or facilitate the purchase of firearms or ammunition.