Dev Log

Raw iteration notes. Field tests, failures, and iterations.

Sisyphus flight log

Log 19

Flight data from this weekend's launch shows the effect of thrust vector control (TVC).

The rocket remains stable through powered flight. Immediately after burnout, angle error rapidly diverges as thrust, and therefore TVC control authority, drops to zero.

The sharp transition suggests the system is operating near its stability boundary and is likely aerodynamically unstable.

Next step: shift the center of pressure downward by removing the upper spacer module.

Open post

Log 18

I enjoy model aerospace because I get to integrate mechanics, electronics, and software into a single system.

This week I redesigned the thrust vector control gimbal for strength, fixed sensor calibration issues, implemented a more reliable drogue-deployed parachute system, and retuned my PD controller using a MATLAB simulation. I also crashed another rocket.

Because I spent time on preflight testing, that crash wasn’t a loss. Instead, it exposed deeper issues in the system. Launch day isn’t for catching obvious mistakes; it’s for uncovering the subtle ones.

Before every launch, I run last-minute checks on every critical subsystem. That’s why my recent flights, even the failed ones, reliably give me useful data.

Open post

Log 17

I didn’t think my rocket would spin when it thrust vectored on its way up.

While hard to see in video, the recovered data shows that this rocket quickly spun up around its longitudinal axis (rolling).

The TVC was able to keep up at the low rotation speeds right after ignition. However, as the spin accelerated, the TVC lagged out of phase and went from correcting to amplifying errors.

I think this was only a problem since I didn’t fly this rocket with landing legs. Compared to this launch, a rocket with landing legs multiplies rotational inertia by roughly 3X. Landing legs deployed for descent multiply it by around 20X. Given this, future launches with landing legs shouldn’t have this issue.

The biggest problem right now is that the parachute doesn’t open reliably. I will fix this by using a small drogue chute for more reliable main chute opening.

Still, the thrust vectoring looks to work well, and I expect next launch to have very good PD tuning.

Open post

Log 16

This is my best thrust vector control stabilizing launch yet.

While not perfectly tuned yet, the PD control is clearly doing its job to keep the rocket flying straight up. After a reasonably smooth ascent, the rocket drifts back down and the landing legs deploy. The parachute is also meant to deploy at apogee, but the mechanical ejection took longer than expected. Once deployed, even with a shock cord, the parachute snapped off the hardpoint at the top of the rocket (turns out zip-ties aren’t an unbreakable supermaterial like I thought).

The rocket was instantly obliterated on impact as usual.

Open post

Log 15

This rocket launch failed for a particularly interesting reason.

I decided to try launching my thrust vectoring rocket with landing legs deployed because having extended mass increases rotational inertia, thus making the rocket less susceptible to mistakes in my PD control — sort of like tenporary training wheels. This added stability, but it also introduced an issue I didn’t see coming: the vectoring motor could no longer effectively induce stabilizing torques on the rocket.

After much thought, I realized that the landing legs may have moved the rocket’s center of gravity too close to the motor’s axis of rotation — so the moment arm on which the motor would normally apply a corrective torque was now much shorter than it should be. The motor was still vectoring to correct, but instead of rotating the rocket, it only translated the rocket sideways.

Open post

Log 14

Finally a semi-successful thrust-vector control (TVC) launch of my Sisyphus rocket! After lots of failures and long drives to the desert, my 3D-printed rocket can now almost self-stabilize in flight. Another small step in my goal to land it like SpaceX.

Open post

Log 13

Here’s how Kerbal Space Program inspired how I designed my self-landing rocket.

I’ve always loved how easy it is to drag and drop fuel tanks and rocket engines to build rockets in KSP — but I didn’t think prototyping rockets in real life could be that easy. That is, until I started my latest project.

People have landed model rockets before, but a lot of them used similar designs. Usually individual 3D-printed parts that are screwed into a carboard body tube. This works, but it’s a pain to use. Particularly in assembly and disassembly; also when it crashes, you can’t just swap out the broken parts and fly again — you have to assemble a whole new rocket.

I thought I could do better. In the interest of fast prototyping, I designed Sisyphus around these guiding principles:

1. Easy to assemble

2. Easy to replace broken parts

3. Easy to add, remove, or replace components

These goals led me to use small 3D-printed modules that screw together with aerodynamic shells around each module. While not applicable to full-scale rockets, this modular design works amazingly well for fast-paced hobby rocketry prototyping.

Now, every time I have to fix something in any of my modules, I remember that I will be forever indebted to my old self for the fact that I don’t need to disassemble the entire rocket to access it.

Open post
Dev log entry photo

Log 12

Today I learned an important lesson in coding with libraries. That is, to never assume other peoples’ code is predictable.

After a failed TVC rocket launch, I took a closer look at my sensor outputs and noticed something was wrong. More specifically, my IMU seemed to have many errant outputs.

It’s important to know that I had checked my gyro axes previously and found the x and z axes on the chip were flipped compared to how I was used to seeing them oriented. Easy fix — I just flipped x and z throughout all the IMU outputs.

This was a mistake. I hadn’t noticed that, while flipped for the gyro, the x and z axes were correctly oriented for the angular velocity and linear acceleration outputs.

On top of this, I also realized my angular velocity outputs were in radians instead of degrees like for the gyro. This was an easy fix, but it meant that, during my last launch, my rocket’s PD controller was effectively ignoring the D term — not good for a stable flight.

These small errors are likely what doomed my last launch from the start. I understand now that even making small assumptions about other peoples’ code can spell disaster. Next time I will definitely remember to check my sensor outputs twice.

Open post

Log 11

Since my last parachute ejection system seemed to jam and fail to deploy during flight, I redisigned with reliability in mind.

Using interlocking fairings under pressure from a spring should be simpler and less likely to jam inside the rocket. Since I plan to hone in my stability on ascent, I’m just going to do a simple TVC stabilized launch — however, this means I’ll be relying on deploying the parachute on descent, so if I want to reuse my rockets, it will need to work 100% of the time.

Open post
Dev log entry photo

Log 10

I reduced the size of my motor ignition circuit to about 1/10th of the previous size.

It turns out the MOSFETs I have been using are much larger than they need to be. It seems like the key for quick ignition is really a trace width that accounts for the current spike on ignition.

🧯 I also added a pull-down resistor on the MOSFET enable pin for safety.

Open post
Dev log entry photo

Log 09

I just finished up exhibiting at Open Sauce, and it was a great experience! While I mainly showcased my self-landing model rocket with thrust-vector control, a lot of people also loved my interactive PID controller demo. I’m so grateful my booth was right next to a few college rocket teams, and I got to meet so many cool people!

Open post

Log 08

I just launched the Sisyphus rocket for the first two times, both with very similar results. This video is from the second one. Over the past year, I’ve been designing a fully 3D-printed model rocket with the goal being to eventually land it like a SpaceX booster. My first step toward this is to achieve stable flight with Thrust Vector Control (TVC).

I have already built a rocket capable of TVC stabilization, but the challenge I’m now faced with is doing this on a rocket designed for landing propulsively. In the launch video, it is clear that the rocket quickly veers off course, and then it tries to correct with TVC to no avail. I think the main issue on this launch was having the CG too low, which makes the rocket behave like a plane flying backwards. This aerodynamic instability has been hard for me to overcome because changing the balance of the rocket is very difficult when trying to also optimize for weight.

Despite these setbacks, almost all systems onboard seem to be functioning correctly, and I hope to get stable flight after some rebalancing. Overall, these launches remind me that failure is part of the process. I tried as hard as I reasonably could to remove any chance of error in these rockets, but in such a precise hobby, even small mistakes can be catastrophic. Over time, I am confident I will slowly refine my design until I can land this rocket, and I’m excited for that.

Open post

Log 07

This two-stage thrust vector controller is a perfect example of the benefits of design simplification. Initially, I approached this problem by devising a complex mechanism that would have, technically, been optimal. However, the design was overambitious for a 3D-printed part, and ended up being extremely unreliable. In this static fire, I tested a significantly less complex method to fire one motor after another, which worked well and which I predict will be very reliable.

Open post

Log 06

I just static-tested both stages of the Sisyphus landing rocket, simulating the ignition and rocket motor control sequences that will occur during flight. While the first stage worked well, the descent motor jammed before it locked into the Thrust Vector Control (TVC) mount. It makes sense that the motor loading mechanism failed, as it is the most complex mechanical function on the rocket. Overall, although the TVC got melted, little else was damaged and we got this awesome footage!

Open post

Log 05

Developing landing legs for the Sisyphus Mark 1 landing rocket has been a challenge, primarily with regard to weight management. I have been prototyping parts without much concern for weight, but the landing legs, in particular, are becoming significantly heavier than I had anticipated. This is becoming concerning because, using an F15 rocket motor, a total weight of more than 1.4 kilograms could result in the launch becoming an unintended ‘static fire’ (if the rocket doesn’t make it off the ground).

Open post
Dev log entry photo

Log 04

PCB (printed circuit board) development has been going smoothly. However, troubleshooting the mosfets that light the rocket engines has been challenging.

I designed the PCB around the Teensy 4.1 microcontroller, whose power will improve response time, memory, and the number of control outputs. With these improvements I was able to add four servo PWM outputs and four mosfet channnels. To know the position and orientation of the rocket, I’m using a six-axis gyro/accelerometer (MPU-6050) and a barometer (BMP-280).

Open post

Log 03

The most technical mechanical system in the Sisyphus rocket, so far, is the TVC reloader. This is required in order to burn one motor during ascent, eject it, and burn a second motor during descent. I decided to keep the moving TVC parts independent from the second motor storage unit to minimize the rotational inertia of the mass being vectored — which improves the responsiveness of the TVC.

Notice the black servo at the back of the assembly: it releases a spring, which pushes the second motor into the TVC, while at the same time, ejecting the first motor. Also, the descent motor is locked into the TVC casing with a bolt action mechanism visible right next to the right-most servo.

Open post

Log 02

Static testing the thrust vector controller was successful. The motor rotation speed and control, driven by two servos, was unaffected by the F-15 motor thrust — which means less error and more accurate control during flight.

Open post
Dev log entry photo

Log 01

Since exhibiting the first successful thrust vector-controlled model rocket Miles Krawitz and I made at the Open Sauce maker convention, which was able to control its ascent, I’ve been working to design a more capable version with the ability to land propulsively, like SpaceX. Because this rocket will only go up and down, achieving nothing other than looking awesome (although this would be quite an accomplishment), I decided to call it Sisyphus.

Open post