I completed machining on the main propellant valve assembly (front photo, back photo) but I had to modify the gear attachment from the original plan. Since it's important to open the two valves at the same time, I wanted to use spring pins to ensure the gear sleeve turned both shafts simultaneously. However, even with a reamed hole for the precision pin connecting the two shafts together, there was too much free play with the planned 1/4 inch depth of the pin. So I went with a 1/2 inch depth into each shaft end which meant I couldn't use a thru pin anymore. I did some experiments with a setscrew on a shaft with a flat on it and it took a lot of torque to strip it out, way more than the servo can supply. So the gear hubs will be held on with flat setscrews. It turned out to be quite a challenge to fabricate the valve shafts and not mar the smooth surface that rubs against the spring loaded seals. Next I have to figure out how to insert the seals into the valve body without damaging them. The whole assembly is just under 0.9 lbm, not bad for two 3/8 inch ball valves with an actuator. The upstream valve fittings have a #10-32 fitting in the side for the igniter lines. There will be one more set of #10-32 holes in each valve body for pressuring the seal cavity. The extra holes at the end of the LOX valve bracket are for the igniter solenoids.
One problem I ran into during the last cold test with the AX-12A was occasional noise on the digital lines. This is a smart servo using a UART interface in single-wire TTL half duplex mode. Every few seconds, a packet would fail with a checksum error, even without any motion. At the time, I attributed it to long runs of unshielded and untwisted wires but I was able to mess around with the pullup resistors and get it to work good enough for the test. The other day, I slowed the baud rate down from the default 1 Mbps to 100 kbps and it is perfectly stable. However, I need to hook the o-scope back up and do a proper analysis. The real circuit will obviously use twisted pairs and shielded cables. One thing I need to be sure to do though is to ensure the servo comm code properly detects error conditions (checksum, failure to move, etc.) and handles them appropriately by resending the command, aborting, etc. It would be a bummer to have the rocket just sit there on the pad due to a bad packet at just the wrong time.
I ordered a Swagelok SS-4P4T plug valve for the high pressure helium supply. With it hooked up to a high pressure nitrogen bottle, it took about 4 in-lb of torque to open and close it so a Dynamixel AX-12A should be fine with 13 in-lb. However, the first time I turned the handle, it took quite a bit more torque to move it so it may have a higher breakaway torque after it has been sitting for a while. Making a bracket for the valve will be a challenge since it's so small and there's not a lot of room to drill into the body. I found it interesting that the handle is part of what holds the stem in the body.
One thing that was bugging me was coming up with a way to take the 0.75 x 0.05 inch angle brackets for the stringers and put a 3 inch radius on one side so it mates up with the fuselage skin. I'm sure I could take it to a shop and have them bent to that profile. But I ended up making a small fixture that lets me clamp 4 inches of it at a time in my shop vise. It turned out OK so I may not need to make a larger version.
After some water tests on the valve, I'll modify the E-size cylinders for the tanks and start assembling a "breadboard" version of the rocket plumbing for another round of cold tests.
I came up with a solution for the propellant tanks that will work for the first flight vehicle. I had hoped to have the tanks be an integral part of the airframe but the expense and complexity of the seals has made it too much trouble for now. So instead, I'm going to use E-size aluminum cylinders with the walls turned down a bit to save weight. These cylinders have quite a bit of wall thickness since they are rated for 2015 psi. They are normally hydro tested to 5/3x (3358 psi) and burst tested to at least 2.5x (5038 psi). I'm running it at 500 psi max so I only need a 0.052 inch wall for a 2x factor of safety. The only thing is that it isn't completely round, about 0.03 inches out of round. I chucked one up on the lathe and took off 0.125 of the wall over part of it, cut out a section, and measured a resultant wall thickness of between 0.082 to 0.120 (I didn't center it as well as I could have). The original wall thickness was about 0.215 inches. The unmodified weight is 7.8 lb and I think I can get it down to about 4 lb without extraordinary effort (such as re-profiling the neck, etc). There is plenty of thickness at the bottom for a 3/8 o-ring boss fitting and I already have a design for the top threaded fitting since I used one on my original test stand. For my 250 lb LOX/kerosene engine, I should be able to get a maximum of 15 seconds of run time, more than enough for an unguided rocket (I'm thinking 5-10 sec for the first flight). I'm going to have to give up on the idea of internal passageways through the tanks for now. Since I need to route the upstream tank lines around the tanks, this drives my vehicle OD from 5 to 6 inches but for a nominal 10 foot long rocket, that's still a reasonable diameter. The helium tank will be a D-sized aluminum cylinder which will be used unmodified since I need the full strength of that tank with a suitable factor of safety.
For the fuselage construction, I decided to go with an internal frame design using four stringers (0.75 x 0.05 inch angle brackets) running the length of the vehicle and circular fuselage frames at appropriate positions to attach the tanks, engine, etc. This prototype fuselage frame was milled out of a solid 0.5 inch 6061-T6 plate, to a part with a 6 inch OD and 0.050 inch walls. I wanted to see how hard it would be to make, mainly whether the walls would vibrate too much as I was machining it (it was close but OK). The resultant part is plenty stiff so I could probably go with a thinner wall to save some weight but I would have to make a fixture to hold the walls in place. The designed part has slots cut out in it so the fuselage stringers can remain as continuous pieces. Small L-shaped brackets will attach the frames to the stringers. The skin will either be 6 inch carbon fiber tube from Public Missiles Ltd or 0.016 inch aluminum sheet. The aluminum is much cheaper but a bit heavier. Either way, since the skin is non-structural, it will be cut lengthwise into two semi-circular pieces for each section.
I have all the parts for the main propellant valve assembly but I haven't assembled it yet. This is the same modified Swagelok 62-series valve discussed previously with an aluminum body and spring-energized cryogenic seals. Both valves share a shaft with a 3:1 gear reduction driven by a Dynamixel AX-12A servo. Since the servo has a 300 degree range and I only need 90 for the ball valves, it makes sense to convert the extra motion into additional torque to help when the LOX valve is cold.
I've made a first pass at the plumbing layout which is essentially the same as the test stand layout but using aluminum AN fittings instead of stainless steel Swagelok fittings. The high pressure portion will use 0.25 inch OD 6061-T6 "hydraulic" tubing for helium pressures up to 3000 psi upstream of the regulators. The low pressure portion will use 0.375 OD inch 6061-T6 or 5052-O tubing for propellant pressures up to 500 psi. You can order 6061 tubing as "hydraulic" tubing which is essentially the same 6061-T6 tubing but tested and cleaned to the MIL-T-7081 / AMS-T-7081 / AMS 4083 spec. It costs a bit more but it's worth it in my opinion, especially since I will be right up next to it while fueling the rocket. Several aerospace spec documents list MIL-T-7081 tubing as good to 3000 psi and standard 6061-T6/5052-O acceptable for up to 1500 psi. I can't find any definitive pressure ratings for the generic blue aluminum -4 AN fittings. In general, I've heard they are good to 50% of the equivalent steel fitting pressure. The Parker Triple-Lok catalog shows their aluminum fittings to be good to at least 3000 psi dynamic pressure. The helium fill port will use an AN6287-1 Strut Valve which is a fancy Schrader valve similar to a bicycle tire valve but rated to 3000 psi.
I want to get the airframe structure completely designed before I start cutting metal so I don't have to rebuild it a zillion times to get it right. The next challenge is figuring out how to provide the various access panels for the fill/drain valves and vent ports. I also need to get some 1/16 inch aluminum sheet to see how hard it will be to roll it into a tube. I've created a spreadsheet to track the weight of every part in the vehicle and my current best estimate of the empty weight is around 45 lbm. With 10 sec of propellant at 1.24 lbm/s and 250 lbf of thrust, that gives about 4.3 T/W at liftoff which I hope is high enough for an unguided short-burn rocket.
I'm taking a break from propellant tank seal issues and have been working on the avionics package lately for my rocket. Balseal is working up a quote for some custom tank seals so we'll see what they come back with. BTW - the sales rep told me the spring loaded PTFE seals sold on McMaster were made by them.
Here's my avionics configuration for the first unguided rocket:
Controller: Netburner MOD54415 running uCOS RTOS
IMU: Analog Devices ADIS16350 (for ground testing, will upgrade to a temp compensated version later)
GPS: ublox LEA-6H / NEO-6M (evaluating both)
Compass: Honeywell HMC5883L (came integrated on the GPS eval board)
Altimeter / static pressure: MSI MS5611-01BA03
Valve actuators (propellant flow, helium supply): Dynamixel AX-12A
Total pressure (for airspeeed): Honeywell HSC series, 30 psig
Tank, igniter/chamber pressures: Kulite XTM (from eBay), signal conditioning TBD
Data recording: microSD card on the MOD54415 (may move offboard)
Telemetry (transmit only): TBD, possibly the Digi (Maxstream) XTend series
Backup position/telemetry: TBD
For an unguided rocket, I obviously don't need most of this but I want to record the raw data (especially the IMU and static pressure) so I have data to run through the models later for the guided version that will essentially just point straight up. Plus, I'd rather discover any sensor issues (vibration, temperature, etc.) now when they're not used for primary guidance. I've been able to prototype most of this on the bench so in the past few weeks I've started writing production flight code starting with the sensors. The overall S/W architecture has three major blocks: 1) a NAV filter which computes the state vector, 2) a control filter which will be used later to control the actuators (fins or gimbal), and 3) a sequencer which controls the valves, reads discretes, etc. Other blocks include sensor filtering/conditioning, telemetry, and data recording. I may also run a performance model in parallel to help detect bad sensors so they can be failed off to keep from corrupting the rest of the solution.
For an alternate tracking system in case the telemetry doesn't work, I'm considering using an active beacon on the rocket and multilateration with 4 ground units spaced a few miles apart to calculate the position based on TOA of the 1 PPS beacon signal. Each ground station would have a GPS unit and appropriate timer hardware to measure the TOA of the beacon signal wrt the 1 PPS out of the GPS. The last time I did some calculations, it looked like it should be able to get position within a few hundred feet taking into account the various uncertainties (GPS PPS jitter, propagation errors, RF filter delays, etc.). For real-time position readout, the ground stations would also have to communicate back to the launch site over another 1-way RF link. Otherwise I could retrieve the ground stations, pull the data, and then figure out how high it went and where it landed. Even if I don't end up using this alternate tracking system, it sounds like an interesting project on its own.
Once I get the seal quote from the vendor, I'll settle on a final design and get back to work on the tank design along with the primary structure. The first version of the rocket will use my 250 lb LOX/kerosene engine with a fairly short burn (<10 sec) to hopefully hit an altitude of between 15-30k ft, depending on how heavy it all ends up being. Later after I work out the issues with guidance to keep it pointing up, I can try for a 30-40 second burn.
I believe Thomas Edison said, "I have not failed. I've just found 10000 ways that won't work." Well, I've found at least one way to build a flight weight tank and a valve that don't work at cryo temperatures. I ran cold tests a couple of weeks ago with LN2 and the tank leaked like Niagara Falls around the seal when pressurized. I knew it would leak some but I didn't expect that much. So, it's back to the drawing board for the LOX tank. The o-ring design should work fine for the fuel tank.
I looked into what it would take to make welded tanks and decided it's not the way to go right now. There are just too many issues involved with making safe pressure vessels out of aluminum, at least with my skill set. I could send them out and have them professionally made, inspected, and heat treated to restore the strength but that would 1) almost certainly cost a lot than I would want to spend, and 2) take some of the fun away from the project. A major part of my satisfaction in this project is that I get to do almost all of it myself. I would like to learn how to weld (and I still may get a TIG welder for other non-pressurized parts of the airframe) but my gut tells me not to do it for the tanks.
Here's my list of tank ideas along with the pros and cons of each:
+ least weight solution
+ no leaks (in theory)
+ no issues with reassembly (because you can't take it apart)
- can be difficult/expensive to get a quality weld with high strength
- if not done properly, can rupture without warning due to fatigue, etc.
- warping after welding
- can't easily clean or inspect inside of tank
Tapered threads with PTFE tape (like a threaded pipe)
+ would probably work
- can't cut tapered threads on my lathe
- a 1/8 tube may not be enough wall thickness for long tapered threads
- poor position repeatability for reassembly
- potential contamination issues with lots of tape used
Tube/plug design with Astra Seal (or other engineered seal)
+ should work with existing design
+ good position repeatability for reassembly
Boss-type o-ring arrangement with the tube and a plug
+ may work with a viton or PTFE o-ring (but probably not) - an Astra Seal would though
- minor variability of position repeatability
Aluminum tube with stainless bulkhead
+ differences in thermal expansion would tend to improve sealing (might could use a viton or PTFE o-ring)
- heaviest solution - the yield strength of SS304 is about the same as 6061-T6 but almost 3x the weight, stiffness is better though
- more expensive
The aluminum tube with a stainless plug bulkhead is an intriguing concept. Between ambient and LOX temperatures, aluminum shrinks about 0.38% in length and stainless steel about 0.26%. For a nominal 5 inch tube, this means when it cools down, instead of a gap, there would be an interference fit of around 0.006 inches which should dramatically improve the sealing capability of a Viton or PTFE o-ring. I'm probably going to try that option first, then if it doesn't work I'll try the Astra Seals (but they're $235 each in small quantities for a 2-246 sized seal). Even though this is a hobby for me, my time isn't completely free but just purchasing 3 Astra Seals (2 plus a spare) would be $700 and that is right in the range where I start to trade off cost vs. time.
I had better luck with the custom propellant valve but it needs a little more work. I took the ball and seats out of a 3/8 inch Swagelok 62-series ball valve and built an all-new aluminum body, end caps, and new stem. I found that most of the torque required to turn a ball valve came from the stem packing so I wanted to use some PTFE spring energized shaft seals to seal at cryo temperatures with lower torque. I've had good luck with these seals in static cryo applications but this is the first time I've tried them in dynamic use. The valve is actuated by a Dynamixel AX-12A servo in a direct drive arrangement. The valve and servo together weigh about 0.35 lb.
I don't have a real mounting bracket to connect the servo and valve so they're just clamped to a plate for now. The ball valve is connected to the servo using a flanged sleeve with a spring pin through the shaft. Since the servo has a 300 deg range and I only need 90 degrees, I plan to use a 3:1 external gear reduction to give it more torque and so I can drive both the fuel and oxidizer valves with a single AX-12A servo. I had to adjust the compliance slope on the servo from 32 down to 5 or it wouldn't make it all the way to the destination without getting stuck. This gives it a bigger kick at the start of the move and a more abrupt stop. During the "steady state" portion of the move, the load measured by the servo was about 70% worst case (at cold conditions).
The only problem was that the valve leaked at the stem seal when it got cold because it seems I didn't do my homework on the seal design. It worked fine at ambient temps with water but not good enough for cryo use. Between ambient and LN2 temperatures, aluminum shrinks about 0.38% in length and PTFE about 2%. At ambient temperature, the seal OD has a design squeeze of about 0.014 inches. However, I used an end mill to make the bore (a bit too large) and at cold temps the PTFE seal shrank so there was only a 0.003 inch squeeze when cold. Even when the seal was energized by pressure it still leaked. For the cryo version of the valve, I should probably cut the bore diameter around about 0.010 less to maintain the same squeeze. The normal solution for this is to use a flanged seal which keeps the seal OD near the gland wall. But those are custom parts, not the cheaper off-the-shelf McMaster PTFE spring energized seals.
To try and mitigate the leakage problem when cold, I added a second spring energized seal and put a hole in between them to create a pressurized cavity. I then routed a 1/8 inch tube from the helium supply upstream of the tank to the cavity between the two seals. With no flow, the pressure across the stem seals should be zero and when flowing liquid, the upstream pressure will be slightly higher because of pressure drops in the lines between the tank and valve. This worked a lot better (no LN2 leaks) but there was a small amount of gas leaking past the outer stem seal after 4 open/close cycles. I suspect if I clean up the tolerances a bit, this will be a workable solution.
Since cryo ball valves need a vent hole to prevent trapped fluid, I drilled a small hole but found that it worked better when the ball was in the downstream position when closed (normally the ball points upstream). Even when chilled down and after sitting for a while, there was no leakage around the upstream seat since the Swagelok design is spring loaded with a cone washer. Putting the vent upstream just lets the stem get cold quicker. Since I only need this valve to work for one open and one close cycle without leaking and it's OK for the valve body to discharge downstream after closing, I'll leave the ball vent hole facing downstream.