How to Breeze Through Drone Software Set Up
Updated September 2026. The original 2020 version of this checklist was written around VOXL, Flight Core and VOXL Flight. It now follows VOXL 2 and VOXL 2 Mini, which carry the flight controller on the same board, and the VOXL Developer Bootcamp, which walks the same steps in order.
You've assembled your autonomous drone, now what? For the aircraft to fly on its own, several systems have to be configured and calibrated, and software setup is the part of the build most first-time developers underestimate. Here at ModalAI we have set up the software on our fair share of autonomous drones. If you are flying an off-the-shelf development drone such as Starling 2 Max or Stinger Vision FPV, this has been done for you and the aircraft is ready to fly out of the box. If you are building your own airframe around VOXL 2 or VOXL 2 Mini, this is the checklist we use.
Step 0: Validate Hardware
Before any software, confirm the hardware. This step saves the most time later.
- Read the handling instructions: ESD precautions, pin 1 to pin 1 on every connector, and never arm motors on a bench supply.
- Have a multimeter to hand for continuity tests, and check for expected voltage levels.
- Validate that the vehicle's current consumption is what you expect, limiting current on the DC supply for the first power-on.
- Validate every connection against the VOXL 2 datasheet or VOXL 2 Mini datasheet before applying power.
Step 1: Set Up the Development Environment
You need two things on your laptop: a ground control station (GCS) to operate the aircraft, and a development workflow to program it. We use QGroundControl for the first and the VOXL SDK tools for the second.
- Follow the VOXL Developer Bootcamp from the top: setting up ADB, then Wi-Fi setup so you can reach the board wirelessly.
- Inspect and configure the SKU so the SDK knows which sensors and airframe it is running on, and check the VOXL SDK version; upgrade if it is behind.
- Install QGroundControl and connect to the aircraft over Wi-Fi.
Step 2: Configure the Flight Controller
On VOXL 2 the flight controller is not a separate board. PX4 runs on the sensors DSP as voxl-px4 (ArduPilot is available as voxl-ardupilot), so there is no serial cable to a Pixhawk to debug. Configure it as you would any PX4 vehicle:
- Load parameters for your airframe. Start from a published parameter file and upload it through QGroundControl.
- Calibrate the sensors: IMUs, magnetometer and level horizon.
- Configure the R/C radio for manual flight testing; on ELRS hardware, bind the receiver first with the ELRS guide.
- Calibrate the ESCs if your ESCs need it. VOXL ESCs talk to PX4 over UART and skip the PWM calibration step.
- Set the battery parameters, failsafes and system ID, especially if more than one aircraft shares a network.
Step 3: Validate Hardware Again
With the flight controller configured, test the parts it drives, propellers off:
- Motor spin direction and order.
- R/C connection and switch positions with the transmitter.
- Image sensors, using VOXL Portal in a browser to see every camera stream.
- GPS lock outdoors, if the airframe has GPS.
Step 4: Configure the Companion Computer
Now the part that makes the aircraft autonomous. The VOXL SDK runs as a set of services on the Modal Pipe Architecture, and voxl-vision-hub coordinates perception and the autopilot.
- Run voxl-configure-mpa to enable the services your sensors need: camera server, IMU server, VIO, and vision hub.
- Set the vehicle geometry with configure extrinsics, so VIO knows where each camera sits relative to the IMU.
- Calibrate the cameras and confirm with check calibration.
- Choose the link to the GCS: Wi-Fi out of the box, or LTE, 5G, Microhard or Doodle Labs add-ons.
- Set up AprilTag relocalization if your mission needs a fixed frame.
Step 5: Enable Optional Features
- ROS 1 or ROS 2 through the voxl-mpa-to-ros bridges, and MAVROS or MAVSDK for autonomous flight from your own code.
- On-board AI with voxl-tflite-server: object detection, classification, depth from mono and pose estimation on the NPU.
- Docker on VOXL for your own containers, and OpenCL for GPU work.
- Live video with voxl-streamer, which appears in QGroundControl automatically when a color camera is configured.
- Peripheral hardware such as lidar, displays or chemical sensors over the I/O and USB interfaces.
Step 6: Finalize Vehicle Behavior
Decide what runs at power-on: which SDK services start and in what order, which modem connects, whether video streams by default, and which Docker containers launch. Then confirm the whole stack comes up unattended after a cold boot.
You're Ready for the Flight Test
With the software configured, the Bootcamp's first flight guide takes you through arming, hover and position hold, and our five steps to a successful flight test covers the planning around it. If you would rather skip the setup entirely, Starling 2 Max arrives with all of the above done.
Need Help?
If you run into trouble, the ModalAI engineers answer questions on the developer forum every day.