Pick a motor
This guide shortlists the motors that fit a rocket, flies the rocket on each, and picks an
ejection delay, all with hpr on the command line. It is for a flier choosing a motor for a
design they already have. hpr’s figures are estimates from a model:
Accuracy says how close they come, and the motor’s printed data and your range
safety officer have the last word. The outputs on this page are made by running each command, and
CI checks that they still match what hpr prints.
The steps:
- List the motors that fit.
- Fly the rocket on each.
- Compare them.
- Choose the delay.
- Put the choice in your design.
The examples use the guides’ own rocket,
level-1.ork,
with a 38 mm motor mount; Fly your .ork introduces it.
List the motors that fit
Start from the mount’s diameter: a motor’s case must match it. In OpenRocket, the motor mount
tube’s inner diameter is the size; a 38 mm mount takes 38 mm motors. hpr motors list filters
the 32 motors built into hpr by diameter, impulse class or maker:
$ hpr motors list --diameter 38
6 motors from ThrustCurve.org data files marked public domain, downloaded 2026-09-17; size, masses and delays from each file's header, the rest from its curve.
designation maker class dia mm len mm impulse N·s avg N burn s delays
G69N AeroTech G 38 106 136.3 72.1 1.89 1000
H170M AeroTech H 38 191 318.0 165.4 1.92 2,4,6,8,10,14
H125-CT Loki H 38 177.8 241.7 125.0 1.93 8-18
I175WS AeroTech I 38 214 333.2 177.5 1.88 5-9-13
411I175-14A Cesaroni I 38 245 411.4 174.1 2.36 6-8-9-11-12-13
I377-CT Loki I 38 292 525.8 377.9 1.39 8-18
The figures are worked out from each motor’s public-domain ThrustCurve.org curve file, the curve
hpr flies (The bundled motors). The delays column lists
the ejection delays as the file’s header writes them, in seconds after burnout, with - between
settings (5-9-13 is 5, 9 and 13 s; 8-18 is 8 and 18 s), which can be fewer than the maker
sells: check the motor’s instructions. P (or 1000) is a plugged motor with no
ejection charge. A
Level 1 certification flight uses an H or I motor (NAR and Tripoli’s Level 1 rules;
Check stability for a certification flight
quotes them).
Many more motors exist than the 32 built in. Name any motor ThrustCurve.org lists, such as
--motor H128W, and hpr fetches its thrust curve once online and keeps it
(Fetch a motor hpr doesn’t have).
hpr motors search lists what vendors have in stock and at what price
(Motors you can buy). hpr motors show gives one motor’s figures as
hpr reads its curve:
$ hpr motors show I175WS
I175WS (AeroTech), from the bundled catalog
impulse class I
total impulse 333.2 N·s
average thrust 177.5 N
peak thrust 252.6 N
burn time 1.88 s, from 0.023 s to 1.900 s (NFPA 1125, 5% of peak)
propellant 168.0 g of 348.0 g loaded
casing 38 mm across, 214 mm long
delays 5 s, 9 s, 13 s
curve file https://www.thrustcurve.org/simfiles/5f4294d20002e900000008bf/ (public domain)
Fly the rocket on each
--motor flies the design with another motor in its mount, and --delay sets that motor’s
ejection delay. Without --delay, the motor fires no charge, so a parachute set to open on the
charge, as the guide rocket’s is, never opens. Give one of the motor’s delays, in seconds, or P
for a plugged motor when your electronics fire the charges. This flies the guide rocket on a Loki
H125, with a 10 s delay:
$ hpr sim validation/fixtures/ork/guides/level-1.ork --motor H125-CT --delay 10
Level 1 guide rocket (level-1.ork)
configuration 1 of 2: [H170M-10] with --motor H125-CT --delay 10
help: --config flies the others, by number or name: 2 [I175WS-9]
static margin 1.59 calibres off the rail; least 1.59 calibres, at 0.17 s, before apogee
apogee 914.5 m above the site at 11.42 s
rail exit speed 25.9 m/s
delay apogee 9.42 s after burnout; the motor's set delay: 10 s; its charge fires 0.58 s after apogee
descent 4.7 m/s at landing under `Parachute`
motor: 1 × H125-CT (from the bundled catalog) in `Motor mount tube`, lit at launch
recovery: `Parachute` at the ejection charge, 0.520 m² of drag area, opened at 12.00 s
launched at 0° N, 0° E, 0 m above sea level, from a 1.5 m vertical rail, in calm air
help: see the Accuracy page before trusting these numbers: https://nrdptel.github.io/hpr-sim/accuracy.html
note: the file's 1 recovery device flies as OpenRocket flies it: each opens fully at its event, with the file's drag coefficient or OpenRocket's own, and once one opens the rocket descends as a point under the open devices' drag alone
warning: drag: issue #18: skin friction is taken as fully turbulent, but on a smooth surface the flow stays laminar near the nose, where friction is lower: hpr's reads high by 3.6% on RocketPy's Calisto at Mach 0.3; if this surface is that smooth, the drag reads high, so the apogee, the top speed and the drift read low, and the flutter margin and the largest dynamic pressure look better than they are (https://github.com/nrdptel/hpr-sim/issues/18)
warning: stability: issue #172: the static margin read up to 0.1108 calibres higher than OpenRocket's on four private designs, for a reason not yet found, so this flight's margin may read high by as much (https://github.com/nrdptel/hpr-sim/issues/172)
event time height speed
liftoff 0.02 s 0.4 m 0.0 m/s
rail exit 0.17 s 1.9 m 25.9 m/s
burnout 2.00 s 303.8 m 201.2 m/s
apogee 11.42 s 914.5 m 0.1 m/s
charge 12.00 s 912.8 m 5.6 m/s
deployment 12.00 s 912.8 m 5.6 m/s
ground hit 202.71 s 0.0 m 4.7 m/s
(heights are the center of gravity's above the site; speeds are over the ground)
top speed 217.0 m/s at 1.56 s
top Mach number 0.639
landing 0.7 m from the pad at 202.71 s, at 4.7 m/s
And on the hardest-hitting motor in the list, a Loki I377, with the same delay:
$ hpr sim validation/fixtures/ork/guides/level-1.ork --motor I377-CT --delay 10
Level 1 guide rocket (level-1.ork)
configuration 1 of 2: [H170M-10] with --motor I377-CT --delay 10
help: --config flies the others, by number or name: 2 [I175WS-9]
static margin 1.18 calibres off the rail; least 1.18 calibres, at 0.08 s, before apogee
apogee 1320.4 m above the site at 12.02 s
rail exit speed 42.3 m/s
delay apogee 10.59 s after burnout; the motor's set delay: 10 s; its charge fires 0.59 s before apogee
descent 5.0 m/s at landing under `Parachute`
motor: 1 × I377-CT (from the bundled catalog) in `Motor mount tube`, lit at launch
recovery: `Parachute` at the ejection charge, 0.520 m² of drag area, opened at 11.43 s
launched at 0° N, 0° E, 0 m above sea level, from a 1.5 m vertical rail, in calm air
help: see the Accuracy page before trusting these numbers: https://nrdptel.github.io/hpr-sim/accuracy.html
note: the file's 1 recovery device flies as OpenRocket flies it: each opens fully at its event, with the file's drag coefficient or OpenRocket's own, and once one opens the rocket descends as a point under the open devices' drag alone
warning: design checks: the motor in `Motor mount tube` reaches 22.0 mm past the mount's forward end (configuration [H170M-10] with --motor I377-CT --delay 10)
warning: drag: issue #67: a cone-like nose's or shoulder's pressure drag reads high from Mach 0.8 (about twice a measured cone's at Mach 0.85, still +15% at 1.5), so the apogee, the top speed and the drift read low, and the flutter margin and the largest dynamic pressure look better than they are; this flight reaches Mach 1.10 at 1.1 s (https://github.com/nrdptel/hpr-sim/issues/67)
warning: drag: issue #68: base drag reads high from Mach 0.8 to 1.2 (0.225 against a measured 0.156 at Mach 0.9), so the apogee, the top speed and the drift read low, and the flutter margin and the largest dynamic pressure look better than they are; this flight reaches Mach 1.10 at 1.1 s (https://github.com/nrdptel/hpr-sim/issues/68)
warning: drag: issue #222: supersonic pressure drag on an ogive nose or airfoil fins is about twice OpenRocket's, and which is right is unresolved: if hpr's is high, so the apogee, the top speed and the drift read low, and the flutter margin and the largest dynamic pressure look better than they are; this flight reaches Mach 1.10 at 1.1 s (https://github.com/nrdptel/hpr-sim/issues/222)
warning: drag: issue #18: skin friction is taken as fully turbulent, but on a smooth surface the flow stays laminar near the nose, where friction is lower: hpr's reads high by 3.6% on RocketPy's Calisto at Mach 0.3; if this surface is that smooth, the drag reads high, so the apogee, the top speed and the drift read low, and the flutter margin and the largest dynamic pressure look better than they are (https://github.com/nrdptel/hpr-sim/issues/18)
warning: stability: issue #172: the static margin read up to 0.1108 calibres higher than OpenRocket's on four private designs, for a reason not yet found, so this flight's margin may read high by as much (https://github.com/nrdptel/hpr-sim/issues/172)
event time height speed
liftoff 0.00 s 0.3 m 0.0 m/s
rail exit 0.08 s 1.8 m 42.3 m/s
burnout 1.43 s 384.0 m 335.1 m/s
charge 11.43 s 1318.2 m 10.1 m/s
deployment 11.43 s 1318.2 m 10.1 m/s
apogee 12.02 s 1320.4 m 0.0 m/s
ground hit 269.86 s 0.0 m 5.0 m/s
(heights are the center of gravity's above the site; speeds are over the ground)
top speed 371.7 m/s at 1.08 s
top Mach number 1.095
landing 0.8 m from the pad at 269.86 s, at 5.0 m/s
The warning says the I377’s 292 mm case, which sits 10 mm out of the back of the rocket’s
260 mm mount tube, reaches 22.1 mm past the tube’s forward end. hpr flies it as drawn; whether it fits the real rocket is for you to check.
--motor replaces the motor of the configuration flown, so --config picks which of the file’s
configurations it goes in, and --mount which mount, if the design has several.
Compare them
Read the same five lines for each motor: margin, apogee, rail exit speed, delay and descent. Between the two flights above:
- Apogee. The I377 climbs higher. If your field has a ceiling, its waiver sets it, not hpr.
- Rail exit speed. The I377 leaves the rail much faster. The safety codes ask for a speed that ensures a stable flight but give no number; competitions set their own, such as 25 m/s for the Spaceport America Cup (Rail exit speed quotes them).
- Stability margin. It changes with the motor: a motor’s mass sits behind the center of gravity, so a heavier motor moves the center of gravity aft, toward the center of pressure, and shrinks the margin. Check it with every motor you might fly (Check stability for a certification flight).
- Top Mach number. The I377 takes the rocket past the speed of sound, Mach 1; the H125 stays well below it, and the H170M, at Mach 0.842, just reaches the range below. Between Mach 0.8 and 1.2, hpr’s center of pressure is up to 2.36 calibres behind NASA’s wind-tunnel data, so its margin there reads high (Known gaps), and published guidance asks for a larger margin (Compare with published guidance).
Flying a few more motors is quick: change --motor and --delay and run again. --json prints
each flight as data, for a script that tabulates many.
Choose the delay
The delay line’s first figure is the coast, from burnout to apogee: a delay near it fires the
charge near apogee, where the rocket moves slowest. The second figure is the delay you gave, and
the third says how far from apogee the charge then fires. In the events table, the charge row
gives the speed at that moment: the further the charge is from apogee, the faster the rocket
moves when the parachute comes out.
In the H125 flight above, the coast is 9.42 s, and the 10 s delay fires the charge 0.58 s after apogee. The H125’s delays are 8, 10, 12, 14 and 18 s, so 10 s is the nearest. hpr flies any delay you give; give one the maker sells, or one your motor’s delay can be adjusted to. A delay is a burning fuse, and real ones vary from motor to motor; hpr flies the stated time exactly. Monte Carlo dispersion, in the library, can scatter it.
The guide rocket’s own second configuration, [I175WS-9], is an example where the set delay
fires before apogee:
$ hpr sim validation/fixtures/ork/guides/level-1.ork --config 2
Level 1 guide rocket (level-1.ork)
configuration 2 of 2: [I175WS-9]
help: --config flies the others, by number or name: 1 [H170M-10]
static margin 1.67 calibres off the rail; least 1.67 calibres, at 0.14 s, before apogee
apogee 1100.7 m above the site at 11.48 s
rail exit speed 28.9 m/s
delay apogee 9.51 s after burnout; the motor's set delay: 9 s; its charge fires 0.51 s before apogee
descent 4.5 m/s at landing under `Parachute`
motor: 1 × I175WS (the design's) in `Motor mount tube`, lit at launch
recovery: `Parachute` at the ejection charge, 0.520 m² of drag area, opened at 10.97 s
launched at 0° N, 0° E, 0 m above sea level, from a 1.5 m vertical rail, in calm air
help: see the Accuracy page before trusting these numbers: https://nrdptel.github.io/hpr-sim/accuracy.html
note: the file's 1 recovery device flies as OpenRocket flies it: each opens fully at its event, with the file's drag coefficient or OpenRocket's own, and once one opens the rocket descends as a point under the open devices' drag alone
warning: drag: issue #67: a cone-like nose's or shoulder's pressure drag reads high from Mach 0.8 (about twice a measured cone's at Mach 0.85, still +15% at 1.5), so the apogee, the top speed and the drift read low, and the flutter margin and the largest dynamic pressure look better than they are; this flight reaches Mach 0.83 at 1.8 s (https://github.com/nrdptel/hpr-sim/issues/67)
warning: drag: issue #68: base drag reads high from Mach 0.8 to 1.2 (0.225 against a measured 0.156 at Mach 0.9), so the apogee, the top speed and the drift read low, and the flutter margin and the largest dynamic pressure look better than they are; this flight reaches Mach 0.83 at 1.8 s (https://github.com/nrdptel/hpr-sim/issues/68)
warning: drag: issue #18: skin friction is taken as fully turbulent, but on a smooth surface the flow stays laminar near the nose, where friction is lower: hpr's reads high by 3.6% on RocketPy's Calisto at Mach 0.3; if this surface is that smooth, the drag reads high, so the apogee, the top speed and the drift read low, and the flutter margin and the largest dynamic pressure look better than they are (https://github.com/nrdptel/hpr-sim/issues/18)
warning: stability: issue #172: the static margin read up to 0.1108 calibres higher than OpenRocket's on four private designs, for a reason not yet found, so this flight's margin may read high by as much (https://github.com/nrdptel/hpr-sim/issues/172)
event time height speed
liftoff 0.02 s 0.4 m 0.0 m/s
rail exit 0.14 s 1.9 m 28.9 m/s
burnout 1.97 s 385.2 m 260.5 m/s
charge 10.97 s 1099.1 m 8.0 m/s
deployment 10.97 s 1099.1 m 8.0 m/s
apogee 11.48 s 1100.7 m 0.0 m/s
ground hit 247.48 s 0.0 m 4.5 m/s
(heights are the center of gravity's above the site; speeds are over the ground)
top speed 281.3 m/s at 1.75 s
top Mach number 0.830
landing 0.7 m from the pad at 247.48 s, at 4.5 m/s
Put the choice in your design
hpr doesn’t change your .ork file: set the motor and its delay in OpenRocket, save, and fly
the file again. Without --motor, hpr sim flies the motors and delays the file holds, as
Fly your .ork shows, and its delay line checks the delay you set.
What it leaves out
- Motor-to-motor differences. Each motor flies one thrust curve, ThrustCurve.org’s, and its stated delay exactly. Real motors differ a little from their published curves.
- Fit. hpr’s design checks flag a motor wider than its mount, and warn on one longer than its tube; they don’t know your motor retainer, thrust ring or closure.
- A verdict. hpr ranks nothing as safe or unsafe. The motor’s printed data, the safety codes and your range safety officer decide.