Calibrations And Flying

1. All-at-once ESC Calibration

Video instructions: 1:06:44 to 1:08:37

2. Sensor Calibrations

The video below uses our Rover kit for demonstration, but it is the exact same calibration procedure for:

Accelerometer, Compass, and RC Endpoints.

So watch the video below for instructions on that.

For flight modes, set STABILIZE for mode 1, LOITER for 2-5, and LAND for 6.

3. Flying The Drone Manually

Video instructions: 1:09:58 to 1:14:40

To arm the drone, hold the throttle stick down and to the right. This will cause the motors to start spinning at a slow speed.

To disarm the drone once landed, hold the throttle stick down and to the left.

If the drone won’t arm, go into MissionPlanner, then find the MESSAGES tab on the front page. Try to arm. If it isn’t arming, the MESSAGES tab will tell you why and what you need to fix. Most of the time, it is a calibration issue or lack of GPS fix.

Your controller should have a knob that changes the flight modes. If you followed my advice above, you will have STABILIZE as flight mode 1, LOITER as 2-5, and LAND as 6.

This means if you crank the flight mode knob all the way counter-clockwise, you’ll be in stabilize mode. This mode is the dumbest mode there is, meaning all the drone’s behavior is from your RC commands. The drone won’t lock at an altitude or GPS waypoint. If you stop commanding the drone with RC, it will crash due to lack of input.

If you crank the flight mode knob all the way clockwise, you’ll command the drone to land.

If you put the knob in the middle, you’ll be in LOITER mode. This mode requires a GPS fix. The drone attempts to hold onto a desired position and will automatically correct for mistakes. Only when you move the RC target points will the drone change it’s target location.

4. Controlling The Drone With Python Code

Video instruction: 1:17:07 to 1:25:45

Source code

What to do if your python-dronekit script won’t connect to the flight controller (aka TIMEOUT error). Check this out and also the video instructions here.

The connection string is what python dronekit uses to communicate to the flight controller (FC)

The Pi Zero is connected to the FC via UART. On the Pi Zero, the UART device is called /dev/serial0 with a baud rate of 57600

So use that in your python dronekit scripts.