My older son recently started school and needed his own desk for doing homework. I wanted to make something nicer than a simple tabletop with legs, and realized that I could also build in a bit of fun for when the homework is finished. Both my boys and I still had space travel on our minds from our summer trip to Kennedy Space Center. For this desk project, I decided to go with a NASA theme. I researched the Apollo Program as well as NASA’s Mission Control Center, and designed my own console roughly based on those. I say “roughly” because the actual Mission Control does more monitoring than controlling, and isn’t awash in the whiz-bang rocket noises young kids appreciate. I took great liberties and made more of a “space-themed” play console than an accurate simulator. My goal was simply to provide some extra ideas and sound effects for my two sons to play “space” together.

The desk resides under my son’s loft bed (which I also built), and stays closed until the homework is finished:

Mission Control Desk Closed

When playtime begins, the lid flips up to reveal the Mission Control console:

Mission Control Desk Open

As I mentioned in the video, I painted the underside of the lid with magnetic primer. The world map was applied over that, allowing my handmade spacecraft magnet to be moved around the map to represent the current position of the spacecraft in orbit. When I get a chance, I’ll add some recovery ship magnets and perhaps some cloud magnets to represent weather to avoid during launch and recovery.

The programming of the console, which I posted to GitHub, has the Arduino and the Raspberry Pi working cooperatively. The Arduino uses four 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 five LED matrix drivers (HT16K33 on a carrier board from Adafruit) to control all of the LEDs. That allows for 640 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.

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.

Mission Control Desk EECOM

The CAPCOM panel has connections for the headset as well as volume controls. It also has a “Call” button that I probably should have labeled “PTT” 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.

Mission Control Desk CAPCOM CWS

“C&WS” stands for Caution and Warning System. To the best of my knowledge, this is not something present in Mission Control so much as it is in the Apollo spacecraft, but I included it because of its playability. 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 Apollo 12 spacecraft was struck by lightning shortly after liftoff, damaging the Signal Conditioning Equipment power supply and causing the telemetry data in Mission Control to go haywire. EECOM John Aaron figured out the problem and instructed the crew to switch “SCE to Aux”, thereby putting the Signal Conditioning Equipment on auxiliary power. This fixed the problem for Apollo 12, and fixes the problem on my little console as well, as I programmed it to.

Mission Control Desk BOOSTER

I programmed the BOOSTER panel to be a soundboard of rocket noises. To add a fun twist, 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 three possible warnings for SPS, and pressing the SPS button on the BOOSTER panel enough times will eventually light up all three. The green “THRUST” status LED lights up when any of the BOOSTER buttons are pressed.

Mission Control Desk Speaker Status

My favorite type of switches are the sort with safety covers. The safety cover must be flipped up in a separate motion from flipping the switch, greatly reducing the chances of an accidental activation. In my research, I found that the Apollo spacecraft use covered switches for their pyrotechnic systems. 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.

Mission Control Desk PYRO INCO

The INCO panel was built to hold four pots and two bargraph LEDs, but the bargraph LEDs were discontinued and I failed to find a suitable replacement so far. Luckily, potentiometers are still lots of fun to turn, and linear pots are fun to slide up and down. I designed the whole control panel to slide in and out of the desk easily, so adding in a couple bargraphs won’t be too difficult.

I found most of my effects-style sounds on For some effects, like the parachutes, I combined sounds in a sound editor. For the docking probe, I changed the pitch of the hydraulic sound I used for “extend” to make “retract” sound different. For the sounds of actual events, I lucked out when I found the Apollo 11 Flight Journal. I trimmed out and combined various bits of real NASA audio to represent the major parts of a mission on my sequence panel. As the boys grow and move beyond just hitting random buttons and into more structured space play, the sequence panel will help them step through a mission. Within 10 minutes of first using the Mission Control Desk, the boys learned which button produces the countdown for their toy rockets and space shuttles to fly around the room.

Mission Control Desk Sequence Panel

Since we visited Kennedy Space Center, my boys have frequently enjoyed playing “space” with each other, counting down to liftoff and running around holding toy spaceships over their heads. Now, with this combination homework desk and Mission Control console, I have given them a great addition to their creative play—oh, and a desk upon which to do some homework.

See Jeff Highsmith’s entire Making Fun series here.