
What SITL Provides
- Real ArduPilot code. Not a mock or simulation. The same firmware that runs on flight controllers runs on your machine with physics simulation.
- Full MAVLink. Every MAVLink message, parameter, and command works exactly as it would on real hardware.
- Physics engine. Simulated flight dynamics for copter, plane, rover, and sub vehicles.
- No fake data. Unlike demo mode (which uses mock telemetry), SITL runs the actual autopilot.
Prerequisites
SITL requires ArduPilot built from source on your machine.Install build dependencies
Using the SITL Tool
The SITL tool lives attools/sitl/ inside the Mission Control repo.
Start the SITL tool
Connect from Mission Control
Open Mission Control in your browser. Click Connect, select the WebSocket tab, and enter:Click Connect. You should see a simulated copter appear with full telemetry.
Configuration Options
The SITL tool accepts command-line options:| Option | Default | Description |
|---|---|---|
--vehicle | copter | Vehicle type: copter, plane, rover, sub |
--port | 5001 | WebSocket bridge port |
--ardupilot-path | ~/.ardupilot | Path to ArduPilot source directory |
--location | CMAC | Starting location (ArduPilot location name or lat,lon,alt,heading) |
--speedup | 1 | Simulation speed multiplier |
How the Bridge Works
ArduPilot SITL speaks MAVLink over TCP (default port 5760). Browsers cannot connect to raw TCP sockets. The SITL tool bridges this gap:Multi-Drone SITL
You can run multiple SITL instances for multi-drone testing:Testing Missions
SITL is ideal for testing missions before flying:- Plan a mission in the Plan tab.
- Upload it to the SITL drone.
- Switch to Auto mode.
- Watch the simulated drone fly the mission.
- Check the 3D simulation view for the flight path.
Testing Configuration
All configuration panels work with SITL:- Read and write parameters
- Calibrate sensors (simulated sensor data)
- Configure failsafes and test triggers
- Set up geofences and test breach behavior
- Configure flight modes and switch between them
Automated Testing
The SITL tool powers the project’s end-to-end tests:Troubleshooting
SITL not found
SITL not found
The tool looks for ArduPilot at
~/.ardupilot by default. If you installed it elsewhere, use the --ardupilot-path option. Make sure you have built the correct vehicle type (./waf copter, ./waf plane, etc.).WebSocket connection refused
WebSocket connection refused
Check that the SITL tool is running and the port is not in use by another process. Run
lsof -i :5001 to check.No telemetry after connecting
No telemetry after connecting
SITL may take a few seconds to initialize. Wait for the “APM: Ready to fly” message in the SITL output. If telemetry still does not appear, check that the TCP bridge connected successfully (look for “Connected to SITL” in the tool output).
Simulated drone crashes on takeoff
Simulated drone crashes on takeoff
The default SITL configuration may have conservative parameters. Make sure GPS is locked (SITL simulates GPS fix after a few seconds). Try arming in Stabilize mode first, then switching to Loiter or Auto after takeoff.