When I was building the Mission Control Desk for my older son’s room, it became clear that we would also need a spaceship to go with it. Over the last four months, in scraps of time between other roles, I built a spaceship for my younger son’s room. It has a control panel full of interesting displays and whiz-bang space sounds. A joystick controls lights and sounds for the engine and thrusters. The payload bay has a motorized hatch and contains a robot arm that can be remotely operated over video feed to deploy payloads like toy satellites. Headsets provide an audio link between the spacecraft and Mission Control in the other room, so my sons can practice collaborating on their space missions. The above video is a great overview of the main features of the spaceship, but if you would like to know a few more implementation details, keep reading.
The hull is a rectilinear interpretation of an Apollo spacecraft. Going with a full cylinder and conical top would have taken up too much of the bedroom, as well as added time and cost to the construction. I built the craft in three separable sections, which made moving it from the garage to the bedroom (and to the local Maker Faire) possible, though not quite easy. On the right wall between the spaceship and the bookshelf, you can see the door for our Pneumatic Transport System, which runs between the boys’ rooms. Since NASA’s Apollo-era Mission Control had a pneumatic transport system, I think I’ll eventually incorporate ours into our home space program for last minute deliveries of mission critical parts and supplies. Building the spacecraft, I didn’t limit myself completely to the Apollo theme. I included a few space shuttle features such as the payload bay with the robot arm.
The main engine’s nozzle houses the audio mixer and bass amplifier. On the bottom of the nozzle, I mounted a strand of GE Color Effects LED Christmas lights. For a previous project, I hacked the string to gain control of each bulb’s color and brightness. I programmed an Arduino to control the strand, whipping up a simple color-changing pattern that resembles the flames of a rocket. This Arduino also controls the red LEDs in each of my thrusters. Command of the engine lights and and thruster lights is done through a USB joystick. I programmed a Raspberry Pi to read the joystick. The Pi maps the different axes of the joystick to different directions, and commands the Arduino to light the appropriate LEDs at a brightness commensurate with how far the joystick is pushed in each of the directions. The Pi also plays rocket sounds through the ship’s sound system, with the sound volume tied to the severity of the motion. In other words, if you push the joystick a little bit, you’ll get a dim light and a soft sound. As you move the stick further in that direction, the light gets brighter and the sound gets louder.
Speaking of sound, I knew it would be important for the craft to have good audio, as we are relying on that to convey a lot of the action. To that end, I mounted a decent set of computer speakers in the main control panel, facing the astronaut. The subwoofer sits in the compartment at the astronaut’s feet. A bass shaker is screwed to the underside of the board upon which the astronaut lays. The bass shaker has its own powerful amplifier. For those not familiar with a bass shaker, it’s similar to a speaker, but instead of moving a lightweight cone to convey vibrations through the air to your ears, the shaker moves a weight to convey vibrations to your body through solid objects. This is great for providing an intense experience without blowing out your ears, as the shaker doesn’t have to be loud to work well. When watching the video, you can see things shaking during the rocket firings and explosions, as the camera was resting on the ship while recording.
To obtain all the sounds for the control panel, I scoured freesound.org and NASA’s own comprehensive sound archives, especially the Apollo 11 Flight Journal. I used audio editing software to trim, combine, or otherwise edit the sounds.
My favorite feature of all is the audio headset intercom that runs between my two sons’ bedrooms to link the spacecraft and the Mission Control Desk together. I used a cheap wired intercom system designed for motorcycle riders to wear under their helmets to communicate while riding. I wired the headset jacks in the Mission Control Desk and the spaceship back to the motorcycle intercom box. This allows the child sitting at Mission Control to talk to the child in the spaceship, directing them through the various steps of the mission, such as launch, payload deployment, spaceship repair, lunar landing, re-entry, and recovery. Each time they play, I hear them picking up more space terminology and getting better at instructing each other.
The CapCom panel also has a PTT button, which stands for “Push to Talk.” When the button is pressed down, the LED above it lights and the intro Quindar Tone plays. When the button is released, the LED goes off and the outro Quindar Tone plays.
The Payload Bay of the ship is a ton of fun. Using the remote video screen and remote controller mounted on the the control panel in the crew compartment, the astronaut can control the robot arm to deploy or retrieve payloads. We have a space toy set that came with a little Hubble Space Telescope, which is our favorite payload. We also have various space-themed Lego minifigs and satellites to deploy. Though I have more elaborate plans for the future, “orbit” is presently represented by a five foot length of fishing line hung from the ceiling close to the ship.
The Payload Bay looks a bit messy from this angle, but all the astronaut sees is the clean view from the camera, which you can see to the left, mounted to the crossbar next to the light. A winch at the bottom of the compartment slowly pulls a string through a pulley that draws down a lever attached to the hinged hatch. With all the gearing for increased torque, it takes a minute or so to open, but considering that the motor in the winch’s servo is smaller than a thimble, it does a great job. The D batteries provide power for the winch, to keep the electrically noisy motor away from the other electronics. The power supplies for the control panel and LCD also rest in this part of the ship, as well as the Raspberry Pi and Arduino for the joystick. The control panel has its own separate Raspberry Pi and Arduino.
I’m proud of my little status panel, as I had to invent a cheap way to replicate a fancy display.
I used a bunch of discreet LEDs mounted on a backplate, but with their light separated by a honeycomb of hand-cut plastic. I used a bit of kitchen cutting board to diffuse the light, and put an inkjet transparency on top for a label. The different LEDs are used as indicators and warnings for the various systems. Some of them light up green to show that a system is in use, such as the parachutes (Main and Drogue) and the Thrust for the engines. Others light up red to warn of dangerous conditions, such as when overuse of the buttons on the Booster panel causes various things to fail, or when flipping the switch marked “Glycol Pump” more than six times will cause a “Glycol Temp Low” warning.
“C&WS” stands for Caution and Warning System. The functionality of this panel is very similar to the system on the actual Apollo spacecraft. When a system needs to caution or warn the crew, an alarm sounds, the Master Alarm push-button illuminates, and the appropriate lights on the status panels come on. Pushing the Master Alarm push-button will stop the noise and turn off the light in the button, but the status panel will still show what caused the alarm. The “LAMP” button conducts a lamp test, lighting all the status lights so you can check if any are burnt out. I use the other switches on the C&WS panel as a secret trigger for a simulated lightning strike.
The panel marked “Control” takes care of various imaginary mechanical systems on the ship. The docking probe switch has three positions, for retracting, off, and extending. I didn’t have time to add a physical docking probe to the ship, but I have that in mind as a future upgrade my boys can help design and build.
The switch marked “SCE Power” is a replication of an actual switch on Apollo spacecraft, where it is used to control whether the Signal Conditioning Equipment uses it’s main power supply or its auxiliary power supply. The SCE is responsible for cleaning up signals to be sent as telemetry back to Mission Control. Shortly after the launch of Apollo 12, lightning struck the spacecraft in the air, unbeknownst to anyone (launches are loud). Mission control started getting all kinds of wonky signals suggesting many things wrong with the spacecraft. John Aaron, manning the EECOM station in Mission Control, recognized the situation as having the symptoms of a lightning strike, and remembered the solution from his training. He recommended that the astronauts “Switch SCE to Aux.” Telemetry was immediately restored, allowing the mission to continue. In my spaceship, I built in a secret trigger for a lightning strike that causes various alarms and warnings to go off until the SCE switch is flipped to Aux.
My four-year-old’s favorite switch is “Waste Dump”, which he thinks is funny because it plays a toilet flush sound. He knows that the astronauts’ nickname for the urine-collection device is “Mr. Thirsty,” so he always laughs and makes a “Mr. Thirsty” comment when someone flips the switch.
To handle oxygen and hydrogen related monitoring and control, I designed the Cryogenics panel. Both O2 and H2 require “stirring” within their tanks to get accurate pressure and quantity measurements. When Mission Control instructed the crew of Apollo 13 to stir their cryo tanks, faulty wiring on the fan in the O2 tank sparked and caused the explosion that started the emergency. The “O2 Fan” switch on my spaceship’s control panel does something similar, playing a bit of fan noise, then the sound of an explosion (which the bass shaker really helps to convey), followed by the O2 pressure and quantity meters dropping into the red. As with the actual mission, loss of oxygen causes a fuel cell failure (fuel cells generate electricity), and my status panel displays “Main B Bus Undervolt,” and the audio from the infamous radio call plays, “Houston, we’ve had a problem. We’ve had a Main Bus B Undervolt.”
The EECOM panel contains four potentiometers that are each mapped to a 12-segment bargraph display. Turning the knobs adjusts the number of segments lit, and I made it so all the segments change color to reflect how urgent a given value is. If the value is adjusted to the safe middle four segments, all segments lit are lit green. If it’s adjusted a bit higher or a bit lower, all lit segments are lit yellow. If the level is adjusted way too high or way too low, lit segments are red. This makes for great play scenarios between the astronaut and Mission Control, asking what the levels are and instructing the astronaut to change the levels “for more power” or “to conserve energy”.
The abort panel provides a fun way to shut down the whole spaceship when playtime is over. Flipping the switch to “Arm” causes the “Abort” button to light up. Pushing “Abort” will then play a sound, “Mission aborted, powering down,” and safely shutdown the computers. On a related note, I’ll sometimes be in another room of the house and hear or feel a distant rumbling, and I honestly can’t tell if it’s an approaching thunderstorm or if I’ve just left the spaceship powered on and cat or kid has nudged the joystick. During play, the ship is not that loud, but the bassy rumbling travels through the walls and floor.
I programmed the BOOSTER panel to be a soundboard of rocket noises. The bass shaker really drives these home, making them really intense. Additionally, I count the number of times each button is pushed and set off a C&WS warning for any system that is overused. For example, the status panel has two possible warnings for SPS, and pressing the SPS button on the BOOSTER panel enough times will eventually both. The green “THRUST” status LED lights up when any of the BOOSTER buttons are pressed.
The safety covers on these awesome switches must be levered up in a separate motion from flipping the switch, greatly reducing the chances of an accidental activation. The pyrotechnic systems use explosives to actuate something, like blowing off a hatch to deploy the parachutes or detonating explosive bolts that had been holding separate modules of the spacecraft together. These systems cannot be reset and used again once triggered, so it’s important to prevent accidental activations. The sounds linked to these switches are various sorts of explosions followed by other noises I assembled in a sound editing program. As you can imagine, the bass shaker proves its worth here, too.
Looking down at the back of the control panel reminds me that this spaceship has about half the wiring that the Mission Control Desk did.
I posted the code to GitHub. The programming of the console has the Arduino and the Raspberry Pi working cooperatively. The Arduino uses three I/O expanders (MCP23017) to read the state of switches and buttons. Whenever a switch (be it a momentary push-button switch, a rocker switch, or a toggle switch) changes state (on to off or off to on), the Arduino tells the Raspberry Pi over a serial connection (USB cable). The Raspberry Pi plays a sound or starts a sequence of events, if necessary, and sends any commands for controlling LEDs to the Arduino. The Arduino uses four LED matrix drivers (HT16K33 on a carrier board from Adafruit) to control all of the LEDs. That allows for 291 separate LEDs, which sounds like a lot, until you consider that the numerical displays have eight LEDs per digit and the LED bargraph displays have 24 LEDs per graph (they make three colors by having a red and green LED in each segment so they can make red, yellow, or green). The potentiometers are read by the analog inputs of the Arduino.
I heard someone observe that no sci-fi space movie is complete without the scene where the mission is saved by removing a panel somewhere and fiddling with a few components. That sounded like a terrific feature for my spaceship, so I built in a small compartment inside the crew compartment. The cover, made of pegboard, can be removed by unscrewing (my boys love to use tools). Inside are a few fun connectors, hoses, and valves I had laying around. Future space missions will require the boys walking each other through repairs and additions to this compartment. That will be great for hands-on activities and playing with tools as well as for building their communication skills.
I designed the spacecraft and Mission Control desk to provide open-ended play. This is not a game itself that can be won or lost, just a fancy prop for my boys to use with their own blossoming imaginations. Rather than limit them to what I can think up in terms of play, I want to give them room to think up things themselves. As far as the making aspect goes, I expect that we’ll think of new capabilities as we play with it more. We will work together to add capabilities. Simple ones at first, such as homemade satellites, toolkits and new gadgets for the repair compartment. Increasingly fancy ones will come later, as they learn more.
The ship is a collection of various simple things I assembled and integrated to provide a cohesive and fun experience. Alone, no single feature was all that hard to do, there just happen to be a lot of details and a fair amount of integration. If you are interested in making something similar, just break it down into manageable chunks, and don’t be afraid to learn new skills. You can build all kinds of fun things with just a few hours a week using simple tools and skills you can teach yourself. Have at it!
See Jeff Highsmith’s entire Making Fun series here!