MissionControl

MissionControl is a desktop application designed to allow you to interface with Circuit Wizardry flight computers. Built on Java 17, MissionControl can run on any system that supports Java. Windows, Linux, Mac, and more!

Programming becomes a breeze with our simple-to-use interface! Customize what each pyro charge and GPIO pin on the board is used for. Set triggers at certain altitudes, velocities, or events during a flight.

Want dual deployment with customizable main chute height? Easy!

Want to deploy a second stage once motor burnout is detected? Simple!

Info

Make sure you’ve installed MissionControl with our guide on GitHub!

Overview of Features

CW MissionControl comes with two main features: A programming feature to let you configure your flight computer however you see fit, and a debrief feature to let you create graphs of the data that was collected. Both of these features are fairly simple to use once understood, but there is a certain order of events when using MissionControl that should be followed!

How does MissionControl interface with our flight computers?

MissionControl is built around two pieces of software – firmware that runs on the flight computer and accepts connections and data, and MissionControl itself. Circuit Wizardry flight computers come pre-installed with MissionControl-compatible firmware. However, if you own a legacy board that did NOT come with the firmware, or you removed the firmware or need to update it, follow the below steps:

Enter bootloader mode

In order to flash new firmware to your board, it is highly recommended to install the latest UF2 as well. Depending on what board you have, the UF2 and firmware will be different!!!

Hold down the “BOOTSEL” button on your flight computer and plug it into USB. After a few seconds, you should notice it register as a mass storage device. Drag the appropriate UF2 into this storage device, and allow the board to reboot.

Important Information

Flight Mode vs Idle/Programming Mode:

The firmware on our flight computers is structured around two main modes – Flight Mode, and Idle/Programming Mode. All boards are by default in Idle/Programming mode. In this mode, your board is able to connect to MissionControl and you can program it or extract flight data from the board. In MissionControl, when flashing your code, there’s an option to set the board to Flight Mode. If you select this option, the next time the board is plugged in it will boot in flight mode.

It is recommended to have a switch that can be toggled right before flight so the board doesn’t have to be jostled or moved once it’s booted into flight mode.

In flight mode, the board will be collecting data and is ready to fly. Simply launch your rocket with the board in flight mode, and data will be collected and events be triggered!

Different boards will have different ways of signaling what mode the board is in with on-board LEDs and buzzers. Read the specific documentation included with your Circuit Wizardry flight computer in order for more information on flight vs. idle mode.

How to use MissionControl

Programming Screen

The MissionControl programming screen is designed to allow you to customize as much as possible. Each Circuit Wizardry flight computer will have different capabilities, shown on this screen. Plug your flight computer in, then click “Program” and connect to the COM port that your board is plugged into.

Pyro charges, GPIO pins, and other available features on your board will show up. Scroll to view more features, as not all will show up on the screen at once.

Once you’re done configuring your board, click “Save to Board”. Set the board to Flight Mode if you’re ready to fly! Consult the user manual for the specific Circuit Wizardry board you’re using for further guidance.

GPIO Pin Emulation

Certain Circuit Wizardry boards have exposed GPIO pins that can be used as extra pyro charges, or to emulate certain outputs.

Buzzer Emulation

If you set your GPIO pin to “emulate buzzer”, it will allow you to connect a buzzer and receive audio cues when the board is booting up, when it reaches events, and more. All you need to do is set it to emulate the buzzer and connect a buzzer to the pin, and you’re all set!

LED Emulation

LED emulation will allow you to connect an LED and it’ll flash the exact same as the on-board LED does. This is a niche use-case, if you want to drill a hole in your airframe and have the LED visible from the outside. Make sure you use a current-limiting resistor!