(Yet Another) 100k Attempt

The Rocketry Forum

Help Support The Rocketry Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Staging and Apogee Detection Logic:

I've been taking a closer look at both staging and apogee detection logic. I'm hoping to do a stacked test flight on small motors in a couple weeks so I want to have this nailed down (albeit with different absolute numbers on some of the constraints compared to the full up flight).

Here's my planned logic for the full flight. No surprises here, but to be complete the flight conditions I'm trying to handle are:
  • Nominal two stage flight
  • Flight where second stage doesn't light
  • Something bad happens on first stage boost/coast (prohibit second stage from lighting)
I think my sims are decent, but one thing I'm concerned about is lighting the second stage either going too fast (which means a higher than intended final second stage velocity) or too slow (got my delay too long, rocket may have tipped past acceptable tilt angle). Accordingly, and I'm curious on folks thoughts on this, rather than constraining time to be after some value, I'm looking to constrain velocity to acceptable low and high speeds.

I haven't written a UI on the programming for my altimeter yet - I do it through command line atm so my equivalent of a programming snapshot is a text file. The input should be fairly self descriptive and I've also left comments and added units here, but please let me know if something is not clear. Here's my planned logic for:
  • second stage separation
  • second stage ignition
  • apogee (nominal flight)
  • apogee (second stage didn't light)
Staging Altimeter:
//Second stage separation charge

*Event,Active=1,Channel=APOGEE,
Event=BURNOUT, //triggering event to begin testing constraints
DelayAfterEvent=1000(ms), //1 second to account for any tailoff in booster burn
DelayAfterConstraintsMet=0,
Constraints=
  • THRUST_COUNTER>0 //make sure we've had a boost

//Second stage ignition
*Event,Active=1,Channel=MAIN,
Event=BURNOUT, //triggering event to begin testing constraints
DelayAfterEvent=0,
DelayAfterConstraintsMet=0,
Constraints=
  • ALTITUDE>3000(m), //Something wrong if not above at least this altitude. Note staging is simmed to occur at ~6000 m.
  • VELOCITY<272(m/s), //Less than mach=0.8. Still need to account for delay due to igniter/ignition via sims/static testing.
  • VELOCITY>170(m/s), //Greater than mach=0.5. Something wrong if not at least this fast.
  • THRUST_COUNTER>0, //Make sure we got booster motor burn
  • TILT_ANGLE<20, //Current tilt angle less than 20 degrees
  • MAX_TILT_ANGLE<35 //Max tilt angle over full flight from liftoff less than 35 degrees

Recovery Altimeter (Primary - backup has 1 second time delays on all this logic)
//Both sets of apogee logic below are on same channel which functionally acts like an OR

//Apogee for nominal flight where second stage lights and rocket is high
*Event,Active=1,Channel=APOGEE,
Event=LIFTOFF, //triggering event to begin testing constraints
DelayAfterEvent=100000(ms), //100 seconds after liftoff. Rasaero sim to apogee is 97 seconds (with smooth paint).
DelayAfterConstraintsMet=0,
Constraints=None

//Apogee for flight where second stage did not light and rocket can still use baro+accelerometer based apogee
*Event,Active=1,Channel=APOGEE,
Event=APOGEE, //triggering event to begin testing constraints
DelayAfterEvent=0,
DelayAfterConstraintsMet=0,
Constraints=
  • ALTITUDE<15000(m) //make sure altitude is less than 15,000 m (50,000 ft). In theory, the apogee triggering event above should prevent any shenanigans I can think of, but I figure this can't hurt. EDIT: This one is still important, because of unreliable baro past 100k ft potentially causing false apogee detection. I knew there was some reason I wanted this...

I also still need to create Rasaero sims of all the non nominal situations (large tilt angle, second stage didn't light etc) so I can run the data through my firmware test setup with this programming logic.
 
Last edited:
I notice that you are using carbon tubes and nose, do you have problems with getting a tracking signal through? I use a Big Red Bee xmitter, and had to get a FG nose cause the carbon nose was blocking the signal.

Thanks
 
I got around to passing the staging and recovery logic through my altimeter test function today. I describe more of the details of this on page one but long story short, this code is exactly the same as what gets uploaded to the altimeters, with the exception of mock sensor drivers - rather than pulling raw data from sensors as in an actual flight (usually 2 or 4 byte digital readings), I pull Rasaero data and convert it back to raw sensor data.

For completeness, here's a direct copy/paste of the settings I'm using. Time in ms, altitude in mm, velocity in mm/s, tilt angle in 100*deg.

//Second stage staging
*Event,Active=1,Channel=APOGEE,Event=BURNOUT,DelayAfterEvent=1000,DelayAfterConstraintsMet=0,Constraints=THRUST_COUNTER>0
*Event,Active=1,Channel=MAIN,Event=BURNOUT,DelayAfterEvent=0,DelayAfterConstraintsMet=0,Constraints=ALTITUDE>3000000&&VELOCITY<272000&&VELOCITY>170000&&THRUST_COUNTER>0&&TILT_ANGLE<2000&&MAX_TILT_ANGLE<3500
*Event,Active=1,Channel=THIRD,Event=MAIN_PYRO_CONDITIONS_MET,DelayAfterEvent=0,DelayAfterConstraintsMet=0,Constraints=None

//Second stage recovery primary
*Event,Active=1,Channel=APOGEE,Event=LIFTOFF,DelayAfterEvent=105000,DelayAfterConstraintsMet=0,Constraints=None
*Event,Active=1,Channel=APOGEE,Event=APOGEE,DelayAfterEvent=0,DelayAfterConstraintsMet=0,Constraints=ALTITUDE<15000000
*Event,Active=1,Channel=MAIN,Event=APOGEE_PYRO_CONDITIONS_MET,DelayAfterEvent=0,DelayAfterConstraintsMet=0,Constraints=ALTITUDE<1800000
*Event,Active=1,Channel=THIRD,Event=APOGEE_PYRO_CONDITIONS_MET,DelayAfterEvent=1000,DelayAfterConstraintsMet=0,Constraints=None

//Second stage recovery backup
*Event,Active=1,Channel=APOGEE,Event=LIFTOFF,DelayAfterEvent=107000,DelayAfterConstraintsMet=0,Constraints=None
*Event,Active=1,Channel=APOGEE,Event=APOGEE,DelayAfterEvent=2000,DelayAfterConstraintsMet=0,Constraints=ALTITUDE<15000000
*Event,Active=1,Channel=MAIN,Event=APOGEE_PYRO_CONDITIONS_MET,DelayAfterEvent=0,DelayAfterConstraintsMet=1000,Constraints=ALTITUDE<1800000
*Event,Active=1,Channel=THIRD,Event=MAIN_PYRO_CONDITIONS_MET,DelayAfterEvent=1000,DelayAfterConstraintsMet=0,Constraints=None

I ran three scenarios:
  • nominal flight where I want the second stage to light, and deploy the drogue with a timer
  • flight with large tilt angle where I do not want the second stage to light. I want to deploy the drogue at the detected apogee and not use a timer.
  • flight where there is some problem with the booster motor (for example a cato, but the second stage continues to go up vertically). I do not want the second stage to light. I want to deploy the drogue at the detected apogee and not use a timer.
Nominal flight:
nominal_flight_staging_logic_zoomed_in_labeled.png

nominal_flight_second_stage_primary_recovery_zoomed_out_labeled.png

Large tilt angle:
large_tilt_angle_flight_staging_logic_labeled.png

large_tilt_angle_flight_staging_logic_tilt_angle.png
large_tilt_angle_flight_second_stage_primary_recovery.png

Failed booster flight:
  • omitting the staging logic plot because it looks exactly the same as large tilt angle - second stage igniter output not triggered
  • omitting the primary recovery plot because it looks similar to large tilt angle - apogee output triggered because apogee detected, rather than waiting for the timer.
  • Tilt angle plot is interesting because it shows that, even with the low tilt angle, the second stage igniter output is not triggered:
failed_booster_flight_staging_logic_tilt_angle_labeled.png

I'm glad I did this little exercise - I caught a couple bugs due to the high altitudes, and properly handling bad baro altitude data, but I feel pretty good about things now with all the tests working!
 

Attachments

  • failed_booster_flight_staging_logic_labeled.png
    failed_booster_flight_staging_logic_labeled.png
    87.8 KB · Views: 0
  • failed_booster_flight_second_stage_primary_recovery.png
    failed_booster_flight_second_stage_primary_recovery.png
    90.3 KB · Views: 0
And a couple other items crossed off the list:

I got a couple fresh parachutes sewed this weekend. Both are toroidal, using the patterns generated from this site: https://chutemaker.lfence.de/

The second stage is 24 in diameter, booster is 45 in. I'm getting quite a bit quicker on the sewing side of things so if I'm not happy with descent rates on a couple test flights this weekend I'll try again.

Here's the inflated booster main:
IMG_3322.jpg

Packs pretty tight:
IMG_3324.jpg

Shoutout to @brockrwood for pushing albright knots. They really make it easy to get shroud line lengths and spill hole lengths on the toroidals right. Here's my untrimmed knot - the left side are the 8 (plus center so 9) shroud lines of the parachute. The right side is a single 1/8 in kevlar cord which will be attached to the recovery harness.
IMG_3343.jpg

And most of the motor hardware is ready to go. It sure is nice to have a (freshly!) retired Pops who enjoys lathe'in around:
IMG_3344.jpg
 
A few strikes and gutters on this project since I last updated things.

Both airframes are complete. I painted them with Interlux two part boat paint - Primekote 404 primer and Perfection topcoat. It's kind of expensive, and takes some time to do it right, but I'm a big fan because it can a) be brushed on and b) holds up to heat much better than anything else I've tried.

Major components:
IMG_3346.jpg

Airframes break apart here for stage separation and recovery:
IMG_3347.jpg

Stages:
IMG_3348.jpg

And stacked:
IMG_3349.jpg

I have 5 test flights now with my latest firmware. So far I've been really happy with my telemetry setup and all the items I was worried about appear to be working so far - GPS gets a lock quickly when it's in the tower, battery life is acceptable, no weird RF issues so far, and range is a fair bit better than my old Walstons. I'm still getting used to the concept that you don't really need a solid constant tone for recovery, if you get 1 packet anywhere near the ground you're probably going to be good.

Unfortunately, I also found a bug in my firmware which caused my sustainer fincan to come in hot on its first test flight. Long story short, it was something subtle in my pad offsets buffer which would cause a failure in 0.5% of flights, but after another change I made, bumped this chance up to ~10%. Once I understood it, it was an easy fix, but disappointing nonetheless that I hadn't found it before, even with my bench test setup. Damage was fortunately minimal, I lost a GoPro and my payload section of tubing but the fincan and casing were undamaged.

My lovely wife (who got her L1 just before this!) snapped this while enjoying the schadenfreude:
1687019486458.png

Finally, I got the second stage moonburner tested and think I found an igniter combo which will consistently give instant on. The original plan was to crank through a big matrix of ~50 igniter combos of igniter and burst disk material in motors with inert grains, then follow up those tests with 4-5 38mm static tests of the best found before firing the full scale motor.

Unfortunately, my motor buddies and I had some trouble with our pressure transducer(?) and weren't capturing good data on the igniters. We did fire the 38's and the 54's though. I wasn't able to get enough data to verify @jsdemar 's igniter sizing equation in this awesome thread for myself, or to isolate all variables (pyrogen type, mass, burst disk material, thickness etc) but did notice a few trends:
  • the igniter mass dipped per the equation generally seemed small and also failed to light motors with burst disks the couple times I used igniters sized using this method
  • The Quickburst BKNO3 was disappointing to the point I wonder if I somehow messed up making it
  • Brittle burst disks didn't seem to work very well - they would crack and (presumably) dump pressure, causing one failed ignition and another with several chuffs before coming up to pressure
  • Every test with a compliant burst disk came up to pressure very quickly.
  • Magnalite and pyrodex pellets visually look impressive
The final combination used for the 54mm second stage motor was:
  • Burst disk was contained by two nozzle washers behind the aft snap ring. Printed with TPU (very compliant material) with 0.0625 in thickness and a 0.125 in hole in the center.
  • 1 50 caliber pyrodex pellet, potted in the top of the motor (I think this will work well for the actual motor - the core is 0.375 in and the pellet is 0.5 in
  • Ematch dipped in 0.35 grams of magnalite
I still need to take a close look at the pressure data - there was a spike at the beginning of the burn which wasn't surprising, as this igniter size was... aggressive for the core volume.

Pellet at the top of the grain
IMG_7395.jpg

Burst disk
IMG_7396.jpg

Liner after firing. Other than being (very) expensive, I was really happy with the fancy Loki phenolic liners. The inside of the case along the thin moonburner web was clean after firing.
IMG_7398.jpg

And a low res video of the 54 mm test. Keeping details vague as I'm not in the research section, this was an L330 using Orange Sunset. Burn time was simmed at ~9 seconds.
View attachment FullSizeRender.MOV
 

Attachments

  • 1687019484819.png
    1687019484819.png
    6.4 MB · Views: 0
Last edited:
Sounds great Rob, good thing you found that bug in the firmware. Not sure about your BKNO3 issue, usually that stuff will light dirt in my experience.
 
@rharshberger - yes, there are so many good reviews of it that I feel like it’s operator error on my part. But it was so easy to mix that…. Who knows. I did realize while I was dipping all those igniters that it’s not the worst thing in the world if they’re not BKNO3 zippy for the motor sizes I usually fly - it’s kind of hard to consistently dip 0.05 g igniters, although I did get better at it after a while.
 
@rharshberger - yes, there are so many good reviews of it that I feel like it’s operator error on my part. But it was so easy to mix that…. Who knows. I did realize while I was dipping all those igniters that it’s not the worst thing in the world if they’re not BKNO3 zippy for the motor sizes I usually fly - it’s kind of hard to consistently dip 0.05 g igniters, although I did get better at it after a while.
iirc BKNO3-V (aka Procast) doesnt generate much in the way of gas, it does generate very hot particles in abundance. As for dipping igniters that small I dont worry to much and dip them to what fits in the nozzle, if its .07g or 1g both will work, undersized not so much.
 
iirc BKNO3-V (aka Procast) doesnt generate much in the way of gas, it does generate very hot particles in abundance. As for dipping igniters that small I dont worry to much and dip them to what fits in the nozzle, if its .07g or 1g both will work, undersized not so much.
My understanding was that BKNO3 generated more gas per mass than typical igniters. Compared to some of the other measured values in the thread I linked above, about twice as much pressure.

https://quickburst.net/qb/procast-order-page/1687104451318.png
 
Back from a weekend of tests flights. Many thanks to OROC for another successful NXRS!

A bit of a mixed bag, but I feel good enough about where things are at to feel good about the design after a couple tweaks. I did 3 flights on the rocket(s):
  • I200 in the second stage - failed to get main parachute out
  • full second stage motor, ~L330 in the second stage - successful
  • J350 in the booster - failed to get main parachute out
The bad first:

The major disappointment is that, after 5 or 6 successful flights in a row with the Y harness recovery system, it failed on two out of three flights to get the main out of the airframe. On recovery for both failures, the main was loose at the end of the tube but just would quite fall out. I'll add another post below with some more details on this, and videos of my original ground test and a new concept I tried when I got home. I think the issue can be solved with a small piston between the main charge and the main parachute.

@plugger called my next two issues:

Because of the failed mains above, I cracked fins on both one of my boosters and one of my second stages leaving me fairly disappointed with the EA-60(and 120)HP I've been using. It's just kind of brittle... It's also pretty expensive. Accordingly, I think I'm going to move back to laminating resin with milled fiberglass and west systems filler although I'm still going to omit the tip to tip on the replacement fincans - these are the first fin failures I've had without tip to tip.

Now I have a good reason to move to head end ignition. I bailed on the full stack test flight because I wasn't confident enough that my copper tape job would survive through second stage ignition. Things always work better at home than in the field... I spent a good portion of the drive home thinking about what my process would be to feel safe with head end, and feel good that prep at the pad would be simple and think things will work. I'm not thrilled about this, but I think I have a solution which I'm okay with. More to come here...

The good:

The full up second stage flight test was nominal to ~23.5k ft. I lost a good chunk of altitude because the rocket kicked or weather cocked ~15deg out of the tower. Entering this angle into Rasaero, sims line up again with the flight. I also got good on board video of the flight, a first for me (well second, following the smaller I200 flight). Here's a link:


A few plots of the flight:
altitude.png

Drag comparison with Rasaero - both are power off plots. Orange is flight data, blue is the simulation:
drag_comparison.png

And motor data from Burnsim, the static test and the flight. I only measured pressure on the static test (and was having some issues with the pressure transducer, I think the data I collected is okay but not quite convinced). I derived thrust by setting the thrust coefficient to match the flight data at the beginning of the flight. I used the nozzle which is designed for 25k ft, so not very efficient for lower altitudes. Motor came out to a ~2800 Ns L285 from the flight data.

I'm also not sure yet about the spike at the beginning of the burn. My guess is it is some combination of a (very) aggressive igniter (1 pyrodex pellet, core volume is quite small) and perhaps some erosive burning?
motor_comparison.png

My updated tower went together okay (albeit a bit slowly) in the field, and I got three flights out of it.
IMG_7432.JPG

My altimeter with added telemetry was rock solid on the first big out of sight+far recovery (hoping this wasn't beginners luck...?). I don't think I missed a packet for the duration of the flight and coordinates put me right on top of the rocket. Probably the easiest 20k+ recovery I've had, and without any of the anxiety hoping to pick up a Walston tone again.
IMG_7436.JPG
 
Last edited:
I mentioned I had some trouble getting main chutes out in my summary above. On two out of three test flights, I didn't get my main out. On recovery, the chutes were loosely hanging at the end of the nosecone tube, but hadn't rattled all the way out. I've been doing some more ground testing and hopefully have a solution.

I've posted this around before, but here's a (very professional) diagram of my recovery config. The main parachute stays in the nosecone after separation because of the longer cord, and then a charge blows it out of the open tube at low altitude.
recovery_design.png

I think my issue is that, in all my tests of this recovery system the mains packed very tight and basically became pistons. On the actual flights with this rocket, things packed a little easier. Easier enough the gases could pass by the main. To fix this, I tried adding a piston to push the main out. Things are kind of tight, so the idea is there is a gap in the piston to hold the charge, the bulkhead, then the main packs into the top of the piston. The main hangs out the end so that it will shake loose once the package is ejected from the nosecone.
1688138385980.png


IMG_7459.jpg


IMG_7461.jpg

And videos of some ground tests. First is the original setup without the piston, second is with the piston.
View attachment original_main_test.mp4


View attachment piston_test.mp4

I think I'll repeat test 2 for both stages several times to convince myself that it's an acceptable solution before I actually fly it.
 
Just a thought:
Why not do the opposite, shorter chute line than line from nose the chute attachment. But keep the nose the chute attachment line reefed which is released with a cable cutter. The main should then easily get pulled out to deploy.
 
Just a thought:
Why not do the opposite, shorter chute line than line from nose the chute attachment. But keep the nose the chute attachment line reefed which is released with a cable cutter. The main should then easily get pulled out to deploy.
Good suggestion, something I've been considering and may still implement. I think it would work well on the booster because both the fincan and ISC are heavy and draggy enough I'm not worried about the chute actually getting pulled out. My concern is that on the second stage, the nosecone is pretty light weight and low drag while falling so I'm not sure there is enough "umph" to get the chute out after the reefed line is cut. Accordingly, I was looking for a more "active" method like the piston.

I'm not a gun guy, but my father in law is. I have a few spent 22 and 9mm casings "on order" when I see him in a couple weeks to use with @tfish 's cable cutter method.
 
How about a small drogue to apply some pull.
I have been using a cable cutter to hold the main on the sustainer of my 2-stage which reefs of the cord between BT and chute.
I made cable cutters from K&S brass tubing. The small (inner) one's ID is fits an ematch red cover.
Ends are crimped closed. ).2gm BP cuts a small tei wrap with ease.
 
I like the idea of crimping the ends of brass tubing closed - I hadn't thought of a good way to close the ends on tubing, so I figured I'd just wait for the casings lest I spend the next month coming up with something new. I'll snag some tubing at the store next time I'm there and give it a try.

W/r/t getting the chute out on the second stage by reefing, even with a small drogue my concern is the same. I'm not too worried about having enough force on the fincan side of things (whether provided by the weight/drag of the fincan itself or by a small drogue. I'm worried about having enough weight/drag on the nosecone side because of its comparatively low weight and drag. I suspect that sometimes it would work, but other times I wouldn't have enough force between the nosecone and fincan to overcome the friction of the tightly packed main.
 
Good suggestion, something I've been considering and may still implement. I think it would work well on the booster because both the fincan and ISC are heavy and draggy enough I'm not worried about the chute actually getting pulled out. My concern is that on the second stage, the nosecone is pretty light weight and low drag while falling so I'm not sure there is enough "umph" to get the chute out after the reefed line is cut. Accordingly, I was looking for a more "active" method like the piston.

I'm not a gun guy, but my father in law is. I have a few spent 22 and 9mm casings "on order" when I see him in a couple weeks to use with @tfish 's cable cutter method.
Funny...
I just finished up a batch of them...357..(because I have Iots)
20230701_124239.jpg
Tony
 
Good suggestion, something I've been considering and may still implement. I think it would work well on the booster because both the fincan and ISC are heavy and draggy enough I'm not worried about the chute actually getting pulled out. My concern is that on the second stage, the nosecone is pretty light weight and low drag while falling so I'm not sure there is enough "umph" to get the chute out after the reefed line is cut. Accordingly, I was looking for a more "active" method like the piston.

I'm not a gun guy, but my father in law is. I have a few spent 22 and 9mm casings "on order" when I see him in a couple weeks to use with @tfish 's cable cutter method.
You need brass for a project like this, ask me Rob...I reload so I have plenty in multiple calibers.
 
I like the idea of crimping the ends of brass tubing closed - I hadn't thought of a good way to close the ends on tubing, so I figured I'd just wait for the casings lest I spend the next month coming up with something new. I'll snag some tubing at the store next time I'm there and give it a try.

W/r/t getting the chute out on the second stage by reefing, even with a small drogue my concern is the same. I'm not too worried about having enough force on the fincan side of things (whether provided by the weight/drag of the fincan itself or by a small drogue. I'm worried about having enough weight/drag on the nosecone side because of its comparatively low weight and drag. I suspect that sometimes it would work, but other times I wouldn't have enough force between the nosecone and fincan to overcome the friction of the tightly packed main.
What about attaching the Drogue to the nose cone. Then this should pull the nose away from the main body and get the chute out.
 
What about attaching the Drogue to the nose cone. Then this should pull the nose away from the main body and get the chute out.
I think I'm not following you now without a picture. Still not sure how the drogue would help pull the main from a light nosecone? I'm not saying it wouldn't work on my nosecone specifically, just not sure how consistently it would work for lighter rockets/nosecones. Do you have a post anywhere on your two stager?
 
Back
Top