Who Says Linux Is Not (in) Rocket Science?


People have always looked at the sky and dreamed of flying to the stars. However, throughout history, it was impossible to create a reliable engine that could overcome the Earth’s gravity and pull a payload into orbit. Luckily, the scientific achievements in the 20th century—in chemistry, in physics and in the theory of interplanetary flights—have allowed mankind to build rocket engines capable of not only carrying a satellite, but also humans.

Perhaps we all remember the time when the first artificial satellite, Sputnik, was launched into a low altitude elliptical orbit around Earth. That was October 4, 1957. In general, you can look at this date as the beginning of an era of human space flights. Sputnik [1] was a very simple device by today’s standards. It could only transmit radio signals («beep-beep-beep») at frequencies of 20 and 40 KHz, besides being only 58 centimetres in diameter and weighing around 800 kilograms—a very tiny unit compared to its carrier rocket, R7, which had a height of about 30 metres and weighed 280 tons.

Figire 1: The Russian R7 launch rocket vehicle for Sputnik
Figire 1: The Russian R7 launch rocket vehicle for Sputnik

The history of rocket development has roots in ancient times, when gunpowder was invented and when the first fireworks appeared in China. We can’t say for sure whether it was clear back then how to create a missile and why, if at all, it ought to be created. However, this firework became the basic element of a cannon—in other words, modern artillery. Cannons used a controlled explosion of gunpowder—the energy that was released pushed a missile towards a certain direction. Afterwards, a whole new science in artillery came up, called ballistics—another fundamental element that helped launch rockets.

Sergei Korolev [2] and Werner von Braun [3, 4] were born in the beginning of the 20th century, and both went on to become the fathers of space flight. von Braun developed the legendary V-2 rocket [5], which was really a predecessor to the Russian R7 (a rocket that pulled the very first Sputnik into the sky and set it into an orbit around Earth) and was responsible for the American Saturn V (another great rocket that helped humans reach the moon in 1969).

Figure 1: Werner von Braun near Saturn V
Figure 2: Werner von Braun near Saturn V

I must say that rocket design and development is a very long and expensive process. For example, the first real implementation of rockets started in the early 1930s in Germany. In 1934, the first V-2 (A1) rocket prototype was successfully launched. It was then named the Aggregat (thus, A) rocket. From 1941 till 1945, there were more than 200 test runs of the V-2.

In order to build the successor of V-2, the R7, the Russians created more then a dozen research institutes, with more than hundreds of scientists working there.

But all this was half a century ago. What are we up to now? Can we dream about an amateur rocket that is several times smaller than the V-2, R7 or Saturn V, and can shoot up at least 10 kilometres? Yes, we can! And this is a reality—an amateur rocket with Linux as a core system!

A rocket as a student graduate project!

In 1997, two undergraduate electrical engineering (EE) students from Portland State University, Oregon (USA)—Andrew Greenberg and Brian O’Neel—had a very simple plan for their graduate project — they wanted to create one that was: a) challenging; b) fun; and c) potentially hazardous for them, possibly even fatal! Andrew recalls, “Plugging components into breadboards in student labs didn’t fit the bill. We realised that what we really wanted to do was to put something into orbit ourselves.” And that’s what they decided to do: build a rocket that would be capable of inserting a 1-kilogram pico-satellite into orbit.

With this dream, Greenberg and O’Neel established the Portland State Aerospace Society (PSAS). During initial research, they found out that while large amateur rockets existed, they were all ballistic rockets—which meant, they shot up, coasted for a while, and then fell down. Andrew recalls, “No one had yet built an amateur rocket that was capable of following an orbital insertion trajectory. So that’s the road we started down: building a medium-sized rocket that used cheap, off-the-shelf parts with open source software to create an orbital-capable launch vehicle.”

The very first prototype LV0 (Launch Vehicle) was really just a “how does all this rocket stuff work anyhow” kind of a rocket. “We purchased the airframe from a hobby store, and shoved our own electronics system in it: a small microcontroller with an accelerometer and pressure sensor. Glenn LeBrasseur, another EE student back then, was an amateur radio enthusiast. So we threw in some radios broadcasting data and video. Shockingly, it mostly worked.”

LV1 was what you’d call a second-system syndrome—it was quickly built, not very carefully thought out, and was overly complicated. However, as Greenberg shares, “It was a good experience because it was our first real avionics system: we had an 8-bit microcontroller that processed a six degree of freedom inertial measurement unit (three accelerometers and three gyroscopes), a GPS receiver, pressure sensors, and could fire the pyrotechnic charge to release its parachutes. Again, shockingly, it worked fairly well.”

However, after the LV1 launch, it became clear to them that the 8-bit microcontroller was way too underpowered: “Writing in assembly language was ridiculous, and primary batteries that lasted 20 minutes was a bad idea. Besides, there were a lot of issues with LV1.”

With LV2 rockets, they did the right thing —they wrote requirements, did research on systems architecture and design, and got other engineering students from the computer science and mechanical engineering faculties involved. Then those at PSAS thought of a very smart idea: what if they relied on open source in the form of GNU/Linux and open source tools to solve some of the requirements… would that help them build their rocket? With this came a server infrastructure running wikis, mailing lists, repositories for code and CAD, besides a legal framework, like the GPL.

“And so LV2 ended up with a 32-bit processor running Debian Linux 2.4. Our launch tower became another Linux box, and we had a field server routing packets between the rocket, launch control and the launch tower… it was all fantastically fun. And for the first time, we really had enough horsepower in LV2 to consider starting active guidance,” reveals Greenberg.

Figure 3: All modern rockets share the same concept as V-2, but instead of a warhead, the amateur rocket carries a useful payload
Figure 3: All modern rockets share the same concept as V-2, but instead of a warhead, the amateur rocket carries a useful payload


Please enter your comment!
Please enter your name here