Skip to content

Eliminate "high speed deployment" warning in dual-deploy scenario #2670#3129

Open
thzero wants to merge 8 commits into
openrocket:unstablefrom
thzero:droguewarnings
Open

Eliminate "high speed deployment" warning in dual-deploy scenario #2670#3129
thzero wants to merge 8 commits into
openrocket:unstablefrom
thzero:droguewarnings

Conversation

@thzero
Copy link
Copy Markdown
Contributor

@thzero thzero commented Apr 20, 2026

Recovery Device Speed Warnings

Adds support for drogue-aware recovery speed warnings, giving dual-deploy fliers more relevant simulation feedback. This issue #2670.

Motivation

The existing high-speed deployment warning fires on every recovery device regardless of role. On a dual-deploy rocket, this means the drogue — which is intended to deploy at high speed — constantly triggers a false warning. This change allows a recovery device to be marked as a drogue, enabling warnings that are actually meaningful for dual-deploy configurations.

Changes

  • Drogue flag — Parachutes and streamers can now be marked as a drogue chute via a new checkbox in the component config dialog.
  • Dual-deploy warnings — When a drogue is present, the simulation engine evaluates four targeted warnings:
    • Drogue deploys below minimum speed (e.g. too slow to be effective)
    • Main deploys above maximum speed (high-speed main deployment)
    • Main deploys below minimum speed (main may not fully inflate)
    • A recovery device is marked as drogue but no main parachute exists in the configuration
  • Configurable thresholds — All four speed thresholds are configurable per-simulation in the simulation options panel, and default values can be set application-wide in the preferences dialog. Previously the single threshold was hardcoded.
  • Backward compatible — Rockets without a drogue flagged behave exactly as before, except the high-speed deployment threshold is now user-adjustable rather than hardcoded.
  • File persistence — The drogue flag and threshold values are saved/loaded in the .ork file format.

@neilweinstock
Copy link
Copy Markdown
Contributor

I'll be testing this out tonight. Screenshots showing the affected UI would be helpful.

@thzero
Copy link
Copy Markdown
Contributor Author

thzero commented Apr 20, 2026

Recovery Item Dialog to mark a recovery item as a drogue or not.
droguesetting

OR Preferences for default speed limits
recoveryspeedwarningdefaults

Simulation Options (think I'm going to change this as its just too much unnecessary white space with this approach)
simulatoroptions

@thzero
Copy link
Copy Markdown
Contributor Author

thzero commented Apr 20, 2026

Here is revised simulator options.

image

@neilweinstock
Copy link
Copy Markdown
Contributor

I haven't had a chance to try this out yet, but in the meantime one quick UI comment: please try to get the spacing within your "Recovery Speed Warnings" box the same as the others in the program. Your padding around the inside of the box (particularly, top and left) is too small.

I have a suspicion that eventually more configurable warnings thresholds are going to be added and they will have to get bumped to a separate tab somehow, but I guess for now it makes sense for these to live in the Simulation Options tab the way you have them.

@thzero
Copy link
Copy Markdown
Contributor Author

thzero commented Apr 21, 2026

I haven't had a chance to try this out yet, but in the meantime one quick UI comment: please try to get the spacing within your "Recovery Speed Warnings" box the same as the others in the program. Your padding around the inside of the box (particularly, top and left) is too small.

Will look at that!

@thzero
Copy link
Copy Markdown
Contributor Author

thzero commented Apr 21, 2026

I haven't had a chance to try this out yet, but in the meantime one quick UI comment: please try to get the spacing within your "Recovery Speed Warnings" box the same as the others in the program. Your padding around the inside of the box (particularly, top and left) is too small.

I have a suspicion that eventually more configurable warnings thresholds are going to be added and they will have to get bumped to a separate tab somehow, but I guess for now it makes sense for these to live in the Simulation Options tab the way you have them.

Tweaked the UI to be consistent with padding and also where the editable fields are located.

@JoePfeiffer
Copy link
Copy Markdown
Contributor

This looks like a great improvement to the deployment warnings. One question, is "Recovery speed warning" a drogue high speed warning? It should probably be labelled that more clearly.

@neilweinstock
Copy link
Copy Markdown
Contributor

I have played with it a bit. A few comments:
image

  1. The box should be named "Recovery Warning Thresholds" and then remove the word "warning" from each of the line items.
  2. I would name the items as follows, although I'm not necessarily completely happy with this:
    a. High Speed Deployment
    b. Low Speed Drogue Deployment
    c. High Speed Drogue Deployment
    d. Low Speed Main Deployment
    e. High Speed Main Deployment
  3. I'd probably like to see a bit more explanation directly included in the UI, and not just via tooltips. I'm vaguely uncomfortable that the separation between dual-deploy settings and single-deploy settings is not entirely obvious.

Moving on to the preferences:
image

  1. The layout of the thresholds box is still messed up.
  2. "Reset to Defaults" should be available for the thresholds as well as the stuff on the left. I don't know if it needs its own separate button for that or if it should be lumped in with the other stuff. It does appear as if it's lumped in on the Simulation Settings page above, although the Reset button does not actually seem to do anything there right now.

And finally:
6. What is the intent when someone is not using a traditional drogue, either JLCR, using a streamer as drogue, or going purely drogueless? Apart from whatever is needed to tell the program that such a configuration is in use, they are likely to have different threshold requirements (.e.g, even if I configure a zero-size drogue when simulating a JLCR, there's going to be no such thing as a low-speed drogue warning... which the requires the user to manually tweak the sim settings for that rocket.) Ultimately it seems like it's going to require a lot of manual fiddling by the user to handle typical situations. There may be no good way around this. I do think, though, that JLCR operation should be considered here.

@thzero
Copy link
Copy Markdown
Contributor Author

thzero commented Apr 24, 2026

Thanks for the comments back.. let me work on some of those items.

And finally: 6. What is the intent when someone is not using a traditional drogue, either JLCR, using a streamer as drogue, or going purely drogueless? Apart from whatever is needed to tell the program that such a configuration is in use, they are likely to have different threshold requirements (.e.g, even if I configure a zero-size drogue when simulating a JLCR, there's going to be no such thing as a low-speed drogue warning... which the requires the user to manually tweak the sim settings for that rocket.) Ultimately it seems like it's going to require a lot of manual fiddling by the user to handle typical situations. There may be no good way around this. I do think, though, that JLCR operation should be considered here.

I had pondered that too. I thought of some ways, but I'm thinking about saying on the recovery device a 'drogueless' option and/or on the simulator options too.

I'm not quite sure what you mean by JLCR. I use both JLCRs as well as traditional altimeters for DD. You simply set the drogue for apogee, and you set the main parachute(s) for the altitude you expect them to deploy at. With JLCR its basically same but drogue comes out based on the ejection charge, main is set for your JLCR altitude.

@JoePfeiffer
Copy link
Copy Markdown
Contributor

I still don't understand: what is "High speed deployment" if it isn't one of the other four?

@neilweinstock
Copy link
Copy Markdown
Contributor

I'm not quite sure what you mean by JLCR. I use both JLCRs as well as traditional altimeters for DD. You simply set the drogue for apogee, and you set the main parachute(s) for the altitude you expect them to deploy at. With JLCR its basically same but drogue comes out based on the ejection charge, main is set for your JLCR altitude.

My apologies, you're correct, although my impression is that JLCRs are commonly used without drogues, so in those instances they would fit into the "drogueless" scenario.

I still don't understand: what is "High speed deployment" if it isn't one of the other four?

Here's where I get a bit fuzzy on this. The "High Speed Deployment" warning is for single deployment scenarios. My impression (as an LPR flyer) has always been that the max deployment speed for mains on HPR are somewhat higher than for the typical apogee-deployed LPR parachutes, and that is what calls for a different threshold. Likewise, there is no "low speed deployment" warning in that situation.

At present there is insufficient explanation in the dialog to make the user understand this. Even if there were, it's still messy and confusing... but I'm not sure how to fix it.

@thzero, where did you get the threshold values that you put in there as defaults?

Oh, one more issue: I was wondering if the "Drogue" checkbox should be moved higher up (like at the top of the deployment box). It'd be easy to not notice it where it is now.

@thzero
Copy link
Copy Markdown
Contributor Author

thzero commented Apr 24, 2026

My apologies, you're correct, although my impression is that JLCRs are commonly used without drogues, so in those instances they would fit into the "drogueless" scenario.

Well true, I guess I've seen both drogue and drogueless if I stop and think about it

I still don't understand: what is "High speed deployment" if it isn't one of the other four?

Here's where I get a bit fuzzy on this. The "High Speed Deployment" warning is for single deployment scenarios. My impression (as an LPR flyer) has always been that the max deployment speed for mains on HPR are somewhat higher than for the typical apogee-deployed LPR parachutes, and that is what calls for a different threshold. Likewise, there is no "low speed deployment" warning in that situation.

Yup. I just got annoyed because I was having to explain to someone about it.

At present there is insufficient explanation in the dialog to make the user understand this. Even if there were, it's still messy and confusing... but I'm not sure how to fix it.

@thzero, where did you get the threshold values that you put in there as defaults?

High end? Frankly from what I use - from mentors, HPR rocketry, etc.

Current warning is 20ms, hardcoded.

I normally use 100fps max for drogues. And 20fps for landing.

@neilweinstock
Copy link
Copy Markdown
Contributor

What about the "low speed" thresholds? I was not aware that was even a thing. I thought first deploy was usually set at apogee, so deployment velocity of the drogue could be very low.

@thzero
Copy link
Copy Markdown
Contributor Author

thzero commented Apr 24, 2026

What about the "low speed" thresholds? I was not aware that was even a thing. I thought first deploy was usually set at apogee, so deployment velocity of the drogue could be very low.

Yes, unless you screw up and say delay for 5 seconds or something then it could be much higher. I.e. I often look at it, and say ok my backup charge is going to go off at 2 seconds after apogee, what speed is it at...

@thzero
Copy link
Copy Markdown
Contributor Author

thzero commented Apr 24, 2026

ok, tried to break things out a bit more into single deploy (i.e. current) state and dual deployment (drogue and drogueless)....

single dual

@JoePfeiffer
Copy link
Copy Markdown
Contributor

It's true that main deployment speed for high power is nearly always higher than deployment speed for low power. All the same, I think it's less confusing to treat the low power single deployment as the main deployment for consistency.

I've also never really heard of a deployment speed being too low, but at least for IREC we have a minimum speed at main deployment as we'll have occasional teams come through who are afraid enough of their recovery system that they want to bring the drogue down slower than the competition wants for the main. So I like the minimums for the selfish reason that it'll make reviewing them easier for me!

The idea of having a high speed landing warning has come up periodically -- would this UI be a good place to configure it?

@thzero
Copy link
Copy Markdown
Contributor Author

thzero commented Apr 25, 2026

Well I removed that anyway, it was too hard to explain and even I don't know that I really was using it.

For normal usage, it works as it does today - bonus is that user can adjust instead of having a 20m/s.
Dual deployment - if you have a drogue recovery device then there is the high/low main warnings. High is obviously your 'hey this is far too fast than I'm expecting', and low is really for playing with drogue chutes and setting a lower threshold that you don't want to go below... far easier than looking at graphs.

@thzero
Copy link
Copy Markdown
Contributor Author

thzero commented Apr 25, 2026

The idea of having a high speed landing warning has come up periodically -- would this UI be a good place to configure it?

Maybe? You mean that if say your rocket lands at say 30fps, its probably needs a warning to be flagged?

@neilweinstock
Copy link
Copy Markdown
Contributor

neilweinstock commented Apr 25, 2026

I'm still not clear about the low speed drogue warning, but if it's to be included then the default threshold should be zero, so those deploying at apogee won't have the warning all the time unless they go in and explicitly set it.

image Second one should be "Drogue High Speed warning". Actually, looking at your new setup, I would word them as "Drogue low speed deployment warning" and "Drogue high speed deployment warning", and make the analogous changes for the other settings. Wording should be consistent.

I also feel like the word "thresholds" should be in there somewhere, because that's what those numbers are. You could add that word to the end of each setting, which is redundant but maybe OK (e.g.: Drogue High Speed Deployment Warning Threshold").

In the future there are likely to be more of these thresholds; in that case this all will likely need to be rethought and redone. For example, these fall under the general category of "Warning thresholds", but I don't think it's worth putting another box wrapper around it all as long as all we're doing are the recovery thresholds. Once we add anything else, though (including "high speed landing") then this probably needs to change. It might even be best put into its own subtab under Simulation options, then we can load it up and organize it as needed.

@thzero
Copy link
Copy Markdown
Contributor Author

thzero commented Apr 28, 2026

Ok, latest commit.

  • One of things I noticed was that the warnings weren't stage specific
    • While I'm not much of a dual stage guy (yet) I wanted to cover this ground also.

After a bunch of configuration options, and not trying to add/modify too much, I've ended up with the following Recovery Warning System.

  • Note I explicitly did not want to add any fake recovery devices to act as a 'droguless' configuration; it just felt counter intuitive and just wrong.

Recovery Warning System — Per-Stage Dual/Single/Drogueless Detection

Overview

Recovery deployment speed warnings are evaluated per stage, independently, using the rocket's component configuration.


Warning Paths

Each stage gets one of three warning paths when a recovery device deploys:

Stage condition Warning(s) fired
Has a drogue device (auto-detected) HighSpeedMainDeployment + LowSpeedMainDeployment for the main chute
Marked as drogueless HighSpeedMainDeployment only
Neither (no drogue, not drogueless) RecoveryHighSpeedDeployment (current single deploy)

Drogueless covers the case where a rocket freefalls or tumbles from apogee down to a lower deployment altitude, then deploys the main directly — no drogue chute is used to slow the descent. Because the rocket is in uncontrolled freefall until main deployment, a low-speed main warning doesn't apply (the main deploying too slowly is not a concern in this mode).


How Detection Works

At every recovery device deployment event, the engine:

  1. Checks if the deploying stage is flagged isDrogueless() → drogueless path
  2. Otherwise, scans active components in that stage only for a RecoveryDevice with isDrogue() == true and a non-NEVER deploy event → dual-deployment path
  3. If neither → single-deployment path

The scan is scoped to the deploying stage so a drogue in stage 1 of a multi-stage rocket does not affect stage 2's warning thresholds.


Configuration

Per-device: "Is Drogue" checkbox (ParachuteConfig, StreamerConfig)

Marks a recovery device as the drogue for its stage. Blocked if:

  • The stage is already marked drogueless
  • Another device in the same stage is already marked as a drogue

Per-stage: "Drogueless main deployment" checkbox (AxialStageConfig → Recovery tab)

Marks a stage as using main-only deployment (no drogue). Blocked if:

  • Any recovery device in the stage is marked as a drogue

The Recovery tab also shows a status line — either the name of the detected drogue device or "No drogue device found in this stage."


Simulation Options Panel

The dual deployment tab shows two always-visible threshold fields (no radio buttons or conditional sections):

  • Main low-speed warning — fires LowSpeedMainDeployment if main deploys below this speed in a dual-deployment stage
  • Main high-speed warning — fires HighSpeedMainDeployment if main deploys above this speed in a dual-deployment or drogueless stage

Warning Thresholds

Configured in simulation options (defaults):

Threshold Default Used for
RecoverySpeedWarning 20 m/s Single-deployment high-speed deploy
RecoveryDrogueMainHighSpeedWarning 30.48 m/s (100 fps) Main deploy too fast (dual or drogueless)
RecoveryDrogueMainLowSpeedWarning 15.24 m/s (50 fps) Main deploy too slow (dual only)

@neilweinstock
Copy link
Copy Markdown
Contributor

neilweinstock commented May 1, 2026

Your latest description sounds better, sorry I'm a bit slow to get around to testing this. Will try to do so this weekend.

I'm a bit concerned about the potentially conflicting "drogueless" and "this is a drogue" settings. I can't think of any other instance where component settings have been dependent on each other in this way (although I suppose the various "automatic" checkboxes are kind of like that). But I'll see how it looks when I try it out.

Thanks for sticking with this one, it's tricky but should be valuable when finished.

@thzero
Copy link
Copy Markdown
Contributor Author

thzero commented May 1, 2026

No problem. :) The other thing I was toying with is moving the 'is drogue' to Stage just like drogueless, but give them the option of selection a recovery device in a dropdown. Then that can just show in the recovery device, but that where there is one place to go to manage it per stage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants