Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Is it practical to create a software-controlled model rocket?
107 points by ph0rque 32 days ago | hide | past | web | favorite | 77 comments
Is it practical to launch a model rocket and have it land in a controlled manner, like Falcon 9, using hardware on the level of arduino and open-source software?

Million thanks for sharing this. And, that guy in the video is incredibly talented. Not sure if he is doing it alone. But, irrespective of that, this video should be an extreme motivation for some of us who are just building a website and think - this is too much, I can't do it.

Wow, close!

This appears to be working with solid rocket motors, thrust vectoring, and a carefully timed ignition. How do they get accurate distance to ground? Is altitude just a constant for these tests?

He's got a 9V battery-sized altimeter of his own design: https://bps.space/arc/

Ah wow I watched a bunch of his videos last summer but forgot to check up on his progress. Incredible!

I wonder what scale you would need to get the rocket into space/orbit? SpaceX should fund this guy to find out, could prove to be a valuable bootcamp for real SpaceX employees in the future?

>I wonder what scale you would need to get the rocket into space/orbit?

There's a great "what if" xkcd about using solid fuel model rocket engines (the same type used in BPS.space's rockets) to get to space and orbit.


The summary is that you may be able to use a stupendously large number of them to get to space, but orbit is physically impossible. You'll need a different propulsion method.

The smallest rocket that has ever carried a payload to orbit is the SS-520. It's ~30 feet tall, ~2 feet in diameter and weighs ~5,700 pounds. It set the record in February 2018, so it's a pretty recent record.

That SS-520 looks like they just took a model rocket and scaled it up 30x, very cool.

So far only one amateur team has done this: https://space.stackexchange.com/questions/10803/is-it-possib...

Joe Barnard is an incredibly smart guy, and his videos always leave me inspired to get off my arse and do something. He has no background in this stuff, and just decided it would be fun to learn and figure it all out, and has come this far in only a few years of tinkering.

This is incredible, looks like an exact smaller clone of the real thing. More generally, it has to be possible since we went to the moon with much less.

It isn't quite a model rocket, but there is an interesting video of someone making a single-fan drone using thrust vectoring. Not quite like a Falcon 9 but the same idea, vertical take off and landing, and shaped like a rocket.


Tom Stanton has similar videos


Be really careful. Adding guidance to a hobby rocket may classify it as a missile, and you will need to start looking into ITAR.

A hobby grade throttling and gimbaling rocket engine, with free documentation and open source guidance software sounds like an absolute proliferation nightmare scenario.

I tried to buy stuff much more simple to what we are talking about here and the vendors wanted ITAR weivance papers and stuff.

Indeed. I have not looked into rocketry for a while, but my recollection is that an active guidance system, active control surfaces, an IMU, all place you squarely under ITAR. Building, much less exporting, without a license is likely a Bad Idea unless you are looking for a Club Fed vacation.

Not an american, but I thought ITAR just restricted export (including of information though), hence the I(nternational) and T(rade)?

Export doesn’t just mean “shipping a rocket to the Middle East” if you write up a detailed guide on how to build these and supply the code to make it work, you’d likely be at risk.

International Traffic in Arms Regulations.

This is immediately where I jumped to as well. A little too close to missile guidance if you ask me... likely to be illegal.

This is a common rumor but appears not be be based in reality. Lots of hobby rockets have guidance now. It's fairly common to have enough guidance that the thing will go straight up.

Well reading the ITAR guidelines it is clearly covered under Category IV (Launch Vehicles, Guided Missiles, Ballistic Missiles, Rockets, Torpedoes, Bombs, and Mines).


  (1) Flight control and guidance systems (including guidance sets) specially designed for articles enumerated in paragraph 
  (a) of this category (MT for those articles enumerated in paragraphs (a)(1) and (a)(2) of this category);

  Note to paragraph (h)(1): A guidance set integrates the process of measuring and computing a vehicle's position and 
  velocity (i.e., navigation) with that of computing and sending commands to the vehicle's flight control systems
  to correct the trajectory.

yes this can classify as a hobby device but there will be threshold that will attract ITAR abd DHS

I’m pretty sure that your problem isn’t going to be the software but rather the engine and the rocket itself.

Hobby rockets use simple solid fuel engines you’ll need to build an actual liquid rocket engine with controlled thrust that can be reignited the rocket it self also need to be large enough to be aerodynamically controlled and hobby rockets tend to be too light so they’ll simply tumble in the wind.

While you don’t need to build something the size of a falcon 9 for propulsive landing you’ll need something way larger than any hobbiest rocket I know of for sure.

If you just want the control part then simulating it is likely going to be a better use of your time, you can even build your own auto-pilot for something like Kerbal Space Program it won’t be the real thing but it would at least be achievable.

You don't necessarily need a liquid rocket engine if doing something like the hoverslam, because you'd just time the burn correctly and fire engine at full power.

The problem is that you can't stop a solid fuel engine as it has the oxidizer mixed in it, unless it requires some sort of a catalyst that you can control.

Hybrid engines which use solid fuel and a liquid/gaseous oxidizer can be controlled better but these are often very hard to reignite.

So this means you'll have to have additional engines that are used just for the slam landing, technically possible but again might be harder to construct than a liquid engine since solid fuel engine ignition is also fairly inconsistent.

The Soyuz capsule uses rockets to soften the landing but these technically aren't propulsive landing and the landing forces tend to vary quite a bit between landings.

Overall when I think about this problem as a hobby the software isn't going to be the biggest blocker here especially considering the speeds/altitudes that we are talking about as well as the overall mass of the rocket, in fact since these rockets are going to be considerably smaller and would travel considerably slower you could absorb much more of their relative energy via hydraulics so the amount of precision needed for the slam/hover landing isn't as great.

It’s undesirable for many reasons but could a small rocket be made to work if you made it really heavy? Of course one would be just pissing away efficiency but would a small heavy software-controlled model rocket work?

Define small, you still need a rocket with some sort of liquid fuel engine with some sort of throttle control and I'm not sure how small can you actually scale those to be.

You might be able to do it with a hybrid rocket engine where the oxidizer is liquid or gaseous but the fuel is solid but I'm not sure.

As for the weight if you make it small but heavy then you are likely to lose aerodynamic control since it essentially will be a free falling brick.

You need something that is massive enough to resist the wind but have a large enough surface area to be aerodynamically stable and controllable, I'm not saying it's not possible I'm just saying that the time and money that you'll have to invest in it is going to be quite likely astronomical and while I don't doubt that there might be individuals that might be able to do it on their own this likely would require a pretty large team of dedicated people to solve.

If you are capable of building a rocket engine I would actually focus on simply building a hovering rocket rather than trying to land it, or at least you better off trying to build a hobbyist grasshopper https://en.wikipedia.org/wiki/Grasshopper_(rocket) than a Falcon 9.

But realistically even for something like this you should be better prepared to spend the better part of a decade building it and likely at least a few $100K's in funding since none of this is going to be cheap to produce.

Couldn't you develop some sort of servo-controlled thrust deflector that allowed you to effectively reduce the net thrust without throttling the engine itself? It would be similar to thrust reversal on jet engines, but you would only do it partially since you're aiming for thrust reduction instead of reversal.

Could be but since your burn time is very short and the rocket gets lighter as it burns I’m not sure that would work either.

If you go this route you might as well just use an EDF engine instead of a rocket engine for the landing.

Hybrid motors using solid fuels (plastic, rubber, cardboard, even sausage) and liquid oxidizer (typically nitrous oxide) are pretty common in hobby rocketry. These can be trivially made throttleable within a range by metering the NO2 flow. With the proper fuel core, they can be kept "smoldering" for shutdown / relight by maintaining a trickle of oxidizer to keep the fuel surface at combustion temperature.

It's likely to be difficult. I heard a good analogy once: imagine balancing a broom, handle pointed straight down, on one fingertip. It's not that hard. Now imagine balancing a toothpick. Impossible.

Scale matters. Bigger things are more stable.

Specifically, you need reaction time faster than sqrt(l/g), where l is the distance between the engine and the center of mass, and g is gravity. But l=30 cm is still with the range of commodity hobby servos to vector the engine.

The same effect makes walking robots harder at small scale, unless they cheat by having large feet and stiff ankles.

How did you get the sqrt(l/g) figure? I can see how this is dimensionally correct and passes a sanity check, but why is the coefficient one?

If you take an inverted pendulum of length l in gravity g, and perturb it slightly from vertical the error grows like e^(t/sqrt(l/g)). So if you're off by 1 degree, you'll be off by 2.718 degrees sqrt(l/g) seconds later. (The real function involves hyperbolic cosines, but they grow like e^t).

If you can react 2x as fast the control problem is easy. If you can react 1x as fast, the control problem is feasible but requires accurate tuning.

For average-height humans on earth, the height of the center of mass is about 1.3m, so sqrt(l/g) is about 350 mS. Human response time, from the inner ear to the ankle muscles is about half of that. That gives some intuition for how hard it is to balance with 2x faster response. Balancing a yardstick on your finger is closer to 1x faster response.

The period of a pendulum is 2pi sqrt(l/g) for small amplitudes. He’s most probably referring to the order of magnitude you need, not precisely that number.

If the toothpick was spinning around it's long axis it would be hell easy to balance it. Not only bigger things are stable, it depends on the dynamics of what you are trying to solve.

People definitely do thrust vectoring and control systems on model rockets, like this system: https://bps.space/signal

This could theoretically be used to land vertically, though that hasn’t been achieved.

You may be interested in following Tom Stanton on YouTube. He built a radio controlled SpaceX model a few months ago.[1] It was barely controllable, and wasn't designed with actual propulsion engines, but still very cool.

As others have been commenting, it's a completely different ballgame if you want to use propulsion engines and still be able to land it. At that point, you're just building a smaller version of the real SpaceX rockets, and that sounds much more difficult (not to discourage anyone from trying!).

[1] https://www.youtube.com/watch?v=ZsEBiAahAYM

> Is it practical to create a software-controlled model rocket?

No, but that is what people will tell you about every idea from Facebook to a pet rock.

If you want to do it, good luck. It will not be easy.

If you want a simple project- Add your arduino, get GPS, accelerometer and a noise maker. (Edit: if you are really ambitious, get it to communicate live)

See if you can optimize anything. I would guess your goal is to play in embedded C++ anyway.

The control software is within hobbyist range, if you're prepared to crash a lot of rockets during testing. But the hardware is hard -- you need a throttleable engine.

Copenhagen Suborbitals do thrust vectoring, and if I remember correctly the 4 jetvanes are controlled by an arduino .

The software is written by one guy in his freetime. Pretty amazing feat, considering how difficult it is, and that he has no way of testing it before the actual launch. It worked flawlessly the first time.

Here's a video of the Nexø 1 launch that uses the system to control the rocket on its ascent.


This video shows some technical data streamed live from the rocket that gives a good overview of what the jetvanes are doing. Notice the graphic in the lower left corner; The H in the middle is the floating launch platform (12x14 meters) and the moving red dot is the position of the rocket in the X-Y plane. On the whole trip it never moves more than a few meters from the center. Really impressive stuff...


I know it's not exactly what you're asking, but it's close, so I thought it might have some value.

I can't speak to anything legal, that's its own topic.

But for all the model rockets I've seen, their mass ratios are quite small, and their motors don't allow for throttling. They blow their load as fast as they can and then drift down.

Software is not the biggest problem, you need a hobby quality throttling and gimbaling rocket motor, and I'm not sure if they even exist.

Arduino hardware is barely capable of running a simple one-variable PID loop at a high sampling rate, say 1Khz. A rocket control software will require a full-blown MIMO model with complex transfer functions. You'll also need high ports speed; Arduino won't cut it. At the very least you'll need something like a Cortex-R5.

This guy [0] does it with regular solid fuel rocket motors. Since the engines cannot be throttled, I think he has to try and light them at just the right moment, which does not seem particularly easy...

[0] https://www.youtube.com/watch?v=8_hJ48LCXWs

If you dig up archives of Armadillo Aerospace - John Carmack's rocket company - you'll see videos of smallish rockets doing just that. "Smallish" as in "you can lift one from the ground, fueled, with your hands... perhaps".

This is a weird question. Model rockets aren't practical. Hobby's aren't practical. Hobby's are fun, and educational. A software controlled model rocket would be fun and educational and challenging. You should do it.

This is true, but...

One of my hobbies is baking bread. I've seen professional bakers bake 100% whole wheat loaves with an open crumb. It's semi-magic and not practical. They literally spend years failing at it, learning every variable, sourcing different artisanal flours and setting up a professional workspace.

I do try it sometimes, and I always fail. It's interesting, but...

Sometimes I actually want to eat some nice bread. There are times when I say, just do a 33% whole wheat loaf Erik, it's fine. It is practical and it's still fun and it's a nice day doing my hobby. There's still plenty of sport in it and plenty to learn.

It depends on what you mean by "practical". It's probably possible to do if you throw enough money at it, but would probably not have any practical purpose.

I don't think there's any open-source software for this, but the software isn't really the problem anyways. It's more about getting sensors that are accurate enough and actuators for thrust direction and power that are accurate and fast enough. I don't think there's anything off the shelf for this, and building and testing it, at that scale, is possible, but not cheap or easy. Once you get all of that together, the software is a relatively small and simple problem, and probably too specific to your exact setup for it to make sense to open-source.

Probably the biggest problem is that model rockets use solid-fuel engines, which cannot be controlled once ignited and probably don't have the greatest consistency in thrust and time. Short version is you ain't gonna do a propulsive landing with that. You'd have to build your own micro-scale liquid-fuel rocket engine. I don't know that much about building rocket engines, but it sure looks like building ones on the scale to take commercially viable weights into orbit is very hard. I'm going to bet that building one on a micro scale would be substantially harder and probably require the services of several experts in the field.

If you're interested in the area, see what info you can find about military missiles, like for MANPADS, guided anti-armor missiles, and some of the lighter AAMs. Every one I've heard of uses solid-fuel engines too, but they do have good control systems for guidance. I don't think any of them care much about the exact thrust levels, just get it going good and fast and the active guidance systems can handle the rest. But you're gonna need that precise thrust control if you want to land propulsively. Relatedly, if you tried to actually build your landable model rocket, I would expect the appropriate Government agency in your jurisdiction to take a very keen interest in exactly what you plan to do with these things. It may involve spending lots of time and money to convince them that you definitely won't give any of your stuff to whatever the relevant agency considers to be a terrorist group or rouge state.

This isn't a computing hardware or software problem, it's an aerodynamics and propulsion, structures problem.

A team of engineering graduate students with a bit of funding might succeed, but the cost and custom hardware would be pretty high. The problem also gets more difficult as the rocket gets smaller.

Also, failed rockets are flying bombs, not something to be done lightly.

It's also quite a challenging control problem, which at the end of the day turns into a software problem.

You can see what spacex (probably) does to turn it into a tractable problem for real time control in http://www.larsblackmore.com/iee_tcst13.pdf (Blackmore leads entry, descent, and landing at spacex).

My point being that the design of the control system is the hard part and the software implementation while not trivial isn't the problem being solved.

And the design of the control system for a small model rocket and whatever control authority can be created for it in hardware are super hard compared to however it is implemented.

Sure, I was just pointing out that control wasn't on your list - it doesn't fall under any of aerodynamics or propulsion or structures.

What do you mean by "practical?" Model rockets are for hobbyists. Practicality isn't a part of the equation. The only reason to fly a model rocket at all is that it's cool.

There's no "practical" reason to make it land vertically. Model rockets can land safely using parachutes.

Maybe try with electrical propulsion like this one [Ikarus electric "rocket" - Thrust-vectored flying ducted fan] https://www.youtube.com/watch?v=RMeEh5OUaDs

There is a competition for college students to create a rocket that can return a payload to a specific location:


As others have mentioned, the burn of the solid propellant used can't be controlled. However, you could look at things like gyros, thrust vectoring or servo controlled fins to give you more a more controlled ascent. That wouldn't help with the descent which is traditionally unpowered. Maybe a small charge to flip the rocket around and then use servo fins to control its glide direction on the way back down.

I haven't heard of anyone doing this as a project, I bet it would be a challenging, and I think it would be awesome for you to try it.

Is there any open-source -physically realistic- rocket flight simulation software that one can build/test landing algorithms on?

Years ago, I remember reading this guy's website where he was building a homemade cruise missile: https://www.theage.com.au/world/diy-cruise-missile-20030604-...

I don't know whether he got shut down by the authorities or not.

I was actually curious how cruise missiles were defined in itar. The definition of missiles is really broad and actually includes lots of UAVs.

> “Missiles”. (All) Rocket systems (including ballistic missiles, space launch vehicles, and sounding rockets) and unmanned aerial vehicle systems (including cruise missiles, target drones, and reconnaissance drones) “capable of” delivering at least 500 kilograms payload to a range of at least 300 kilometers.

> The definition of missiles is really broad...delivering at least 500 kilograms payload to a range of at least 300 kilometers.

Not as broad as I would have thought. You could do a lot of damage with 499 kg of TNT, and nuclear bombs weigh less. Little Boy was 64 kg of uranium according to [0].


The fissile core is a tiny part of the weight of a nuclear weapon, though. Little Boy weighed almost 10,000 lbs; it took a lot of explosive, metal, and circuitry to detonate it.

The Little Boy was seriously overbuilt. The W9, W19 and W33 warheads are examples of gun-type bombs similar to Little Boy with comparable cores and yields, but in much smaller packages.

A gun-type bomb doesn't require a very complex system to set it off. The complicated bomb was Fat Man, an implosion bomb, that required very precisely calculated explosive lenses and precise timing circuits.

"Honestly officer, this nuclear... fire assisted catapult... isn't a missile".

"My lawyers advise me that I am technically correct, which, legally speaking, is the best kind of correct."

Consider the W48 warhead, the entirety of which (not just the core, but the whole thing) was 6.1 inches in diameter and less than 60kg.

Or the W54 was reputedly much lighter, but with a larger diameter.

On the bright side, 500kg and 300km seem to be quite a bit beyond what typical model rockets can do, so at least with that definition they might not be considered missiles?

Yes. This was essentially what armadillo aerospace and Masten Space Systems did back in the day.

It was posible to launch Apollo 11 with less powerful electronics. Mechanicaly it is a bit expensive but many 'amater' clubs achive controled flight, a few to the edge of space.

You will blow up several engines if you try to make a liquid fueled engine. Get yourself a copy of


which is the story of a German rocket club which first got shut down by the Nazis because "somebody could get hurt" and then the Nazis thought it over...

Probably your best bet is a hypergolic monopropellant such as hydrogen peroxide.

I agree, that looking - though very carefully! - into hydrogen peroxide could be a good approach. However, "hypergolic monopropellant" is like clapping with one hand. "Hypergolic" means "self-igniting by the contact with the other component", it's a property of a component of a pair, not of a single substance.

For example (see J. Clark, Ignition!) nitric acid is hypergolic with turpentine, but not hypergolic with kerosene.

In the case of a hydrogen peroxide rocket, the reaction is triggered when the peroxide hits a catalyst.

Trying to buy high test hydrogen peroxide (high concentration) might well get you flagged by the police as its used in bombmaking

High concentration hydrogen peroxide is insanely dangerous, and where I live doing this would be illegal, so I really don't recommend it.

But from previous research it sounds really simple to concentrate (up to 70%) if you can acquire enough low concentration hydrogen peroxide. So much so that it kinda scares me that I have a bottle of 3% hydrogen peroxide in my house.

Edit: Again, this is a bad idea, but here's the title of my source: Methods for Concentration of Hydrogen Peroxide To Obtain It in Anhydrous Form

30% hydrogen peroxide is commonly used in laboratories and can be used to make Triacetone Triperoxide, which is the reason why you can't take a full-sized bottle of shampoo on a plane.

A bottle that large of TATP could blow up a plane but you'd be lucky to make it to the airport with it before it explodes.

The 90%+ stuff used in rocketry is hard to get because it is dangerous to handle.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact