This page describes how to prepare the SMACCMPilot powered Iris+ for flight. Follow the instructions carefuly.
Before the flight it is recommended to calibrate your sensors. How to do it is described in Sensor Calibration. However, we found out that the default out-of-the-box calibration works quite well, so proceed with calibration only if you are not satisfied with the flight performance.
If unsure whether you have the right setup, follow the instructions on smaccmpilot-hardware-prep
Once done with the hardware prep, load smaccmpilot autopilot. Use
master branch from Github. Don’t forget to do:
stack clean make clean make flight_echronos
It is better to clean stack at least for the first compilation. We found out that stack sometimes doesn’t clean and rebuild the right dependencies which can lead to errors during compilation (usually after switching branches or making major code changes). If you run into a compilation error, try first
stack clean; make clean;
flight_echronos is the preferred target, however you can compile SMACCMPilot to run on FreeRTOS instead, just type
Configure your controller as described on Radio Control page, and familiarize yourself with the position of 3-position MODE switch and KILL switch. Your trims should be zeroed out.
If this is your first flight, lets do a couple of extra checks to make sure everything works as it should.
make upload-flightif you compiled for FreeRTOS target).
Now you can move on to Arming
To arm the quadcopter:
For your very first flight you should try to increase the throttle very slowly, and when the quadcopter is just about to take-off (around 60% of throttle) give it small roll/pitch/yaw inputs to see if it responds correctly to your commands. If it doesn’t, go back to the Radio Control page and make sure your radio is set up correctly. Note that this near-takeoff phase induces lot of vibration in the airframe and can confuse the attitude estimator. That is OK, because in pracice we will never dwell here for long. The HUD might get some offset, but it should never diverge.
Once you made sure your quadcopter responds properly, go ahead and increase the throttle. For all future take-offs, I recommend taking off rather quickly - ramp up the throttle to ~70% and get off the ground fast, it is the best for the estimator (and also looks way cooler).
The next step is to trim the quadcopter. Trim adds a constant input to each of the roll/pitch/yaw axis to counteract the imbalance in the airfame, not perfectly equal motors and small bias in the attitude estimation. It holds the stick in place for you, to make it easier for the pilot to control. The goal of the trim is to have the quadcopter in almost pefrect hover without any stick movement.
How to do this? First, make sure all your trims are zeroed out. Click the trim buttons until you see on the transmitter display the little black circle for each axis over a little black square and hear a little beep.
A small example for better illustration. 1. I notice the quadcoper is rolling left when I let go the stick. That means to counteract this, I need to move my roll stick to the right. I land, and give a few clicks right on my roll trim. I repeat until the left rolling tendency disappears. 2. I notice the quadcopter is pitching forward. I have to trim the roll a few clicks down as if I was countering the forward pitch with my pitch stick. 3. When roll and pitch are trimmed, I focus on yaw. In stable flight, I notice that the quadcopter slowly turns right without any yaw input. I land and give a few cliks left on my yaw trim, to counter it.
Here is an example of a radio transmitted trimmed for a particular quadcopter:
Once you trimmed the quadcopter, it is time to do the alt-hold. There are two things to do before a succesfull alt-hold:
To operate alt-hold (we recommend always starting with a full battery):
The last step is the GCS input mode. In this mode, the pilot input’s mix with the GCS operator inputs. That way the operator can steer the quadcopter where they want, while the pilot can always step in.
The procedure is following: