First version of a drone based on a 90mm ducted fan capable of hovering using a thrust vectoring control system made of four jet vanes independently controlled by high speed heli servos. The stability is achieved through body angular rate and rotor RPM feedback using a PixRacer (hardware) and PX4-Autopilot (software).
/!\Disclaimer: this is not an easy build and require some expensive components. It requires some time and experience to adjust, build and configure the aircraft for a safe flight. The tuning parameters of the flight controller will only work for your build if you have the exact same components and build quality (or better :D) as mine, otherwise you will have to adjust them.
Double-sided tape (to hold the UBEC and RC receiver)
Vibration damping foam/pads/grommets for the autopilot
Soldering station
Some time to assemble and configure the whole thing
Assembly
Main body
Prepare the following 3D printed parts before mixing the epoxy glue:
1x main_body_top
1x main_body_bottom
1x body_coupling_ring
2x battery_holder
4x battery_strap_loop
4x servo_mount
2x pcb_holder_adapter
Slide the EDF on the top of the main_body_top and secure it with M3x12mm screws and nuts.
Mix a small batch of epoxy glue.
Assemble the main_body_top and main_body_bottom parts using the body_coupling_ring and some epoxy glue.
Glue the two battery_holders on the main body, just above the body_coupling_ring. Place them as low as possible, otherwise the batteries won't fit when the intake lip is in place.
Glue the four battery_strap_loops to the EDF.
Glue the servo_mounts to the main body.
Glue one pcb_holder_adapter to each side of the main body; below the EDF brackets (center them vertically in the space above the body_coupling_ring).
When the glue has cured, pass the 3 phases of the motor through the slot of the main body (it is easier to do it now than after mounting the control fins). You can add some heat shrink tubes on the motor leads to protect them from being damaged by the 3D print.
ESC and power
From now on, you can use CA glue as the rest of the components are not under high load during flight.
Verify the size of the 32x32mm square hole in the body to see if the heat sink fits correctly. Adjust it with a file if needed.
Glue the esc_base_adapter to the body, align it and hold it using M2 screws while the glue is curing.
Glue a pcb_holder_30.5x30.5 on the pcb_holder_adapter near the esc_base_adapter. This one will be used to mount the PDB.
Remove the M2 screws holding the esc_base_adapter and glue the esc_side_holder_long on the top of the esc_base_adapter.
Place the ESC PCB to give the right spacing and glue the esc_side_holder_short on the other side (be careful not to glue the PCB).
Verify that the ESC fits and is well secured when assembled with the two esc_clamps and M2x8 screws.
Make sure the BEC voltage output is set to 6V.
Solder the XT60 male connectors, the power module of the autopilot and the BEC to the power distribution board (PDB).
Solder the input signal and ground of the ESC to a servo cable (with a standard 3-pins servo connector).
Solder the ESC telemetry output to a signal cable with a JST-GH 6 pins connector (to be connected to a telemetry input (UART-RX) of the autopilot).
Solder the power output of the power module to the input of the ESC.
Solder power cables with 4mm bullet connectors to the output of the ESC.
Solder the capacitor to the ESC.
Mount the thermally conductive adhesive on the heat sink.
Place it in the square hole of the body and place the ESC on top. This way, the heat sink should be perfectly centered on the 6 large transistors of the ESC. The heat sink is slightly smaller than the transistors, but provides good cooling.
Fix the ESC in place using the esc_clamps and M2x8 screws.
Connect the 3 phases of the ESC and the motor.
Smoke test: Verify the wiring and connect one battery. If you did it right, the ESC should power up and the motor should beep.
Thrust vectoring control system
Assemble all four servo_fin_couplers on servo horns with CA glue.
Zero the servos, mount the servo horn + coupler assembly vertically and secure it with a screw (and some thread-locker).
Verify that the fins can be assembled in servo_fin_couplers (should be a tight fit but the holes must align). Remove the fins.
Place the servos on their mounts, there should be just enough space to insert the horn through the rectangular hole. Secure them with the provided screws.
Mount the fins in the servo_fin_couplers and secure them using the M2x8mm screws and nuts. This can be a bit tricky and requires some patience and small fingers.
Autopilot
Mount (using glue or double-sided tape) the damping foam on the second pcb_holder_30.5x30.5 and mount it on the pcb_holder_adapter. You might need a couple of iterations to get the desired vibration reduction; it shouldn't be too soft.
Glue several cable_clips to the body. Use them to tidy up the cabling.
Connect the autopilot to your computer, flash the provided (in .zip) PX4 version using QGroundControl (QGC). You can also get the code source and build PX4 yourself (make sure to have the required modifications for this drone)
Load (parameters→tools→load from file) the provided .param (in .zip) file, reboot.
Perform the accelerometer and gyro calibrations.
Unplug the autopilot from your computer and screw it on the pcb_holder_30.5x30.5 using M3x8 screws.
Connect all the servo, ESC (input) and BEC cables together to the pin headers of the autopilot.
Connect the ESC telemetry to the Telemetry1 (RX) port of the autopilot.
Mount the RC receiver with double-sided tape and connect it to the SBUS input of the autopilot.
Connect the cable between the power module and the autopilot.
Connect the autopilot to your computer, calibrate the magnetometer, the power module, the RC and configure the switches (flight modes, kill-switch, …).
Connect the batteries.
Go to the actuators tab and verify the ordering of the outputs (you can move the sliders to see if each servo is moving correctly). Be careful when testing the output connected to the ESC.
Disable the sliders and adjust the Disarmed values to center the fins
Adjust the Minimum and Maximum values of each output based on the Disarmed values you found just before:
Minimum = Disarmed - 150
Maximum = Disarmed + 150
Enable the sliders and verify that every servo is centered when the slider is centered and that the fins don't collide when moved to their min/max values.
Bench testing
The good thing with that type of enclosed propeller design is that you can -relatively safely- hold the drone with your hand to test its stability without the risk of crashing it.
/!\Warning: The EDF produces a loud high pitch sound that can damage your hearing, please use hearing protections while operating the drone close to you.
To test if the controller and to see if everything is connected correctly, power up the drone, switch to stabilized mode, arm it, hold it by on of the battery packs at about 1m above the ground and raise the throttle to about 40% to feel enough thrust. The fins should move and you should feel a relatively strong torque trying to rotate the drone back to its upright orientation. Try to move the roll/pitch/yaw sticks of the RC and verify that the response meets your expectations.
If this works and the drone feels “solid”, raise the throttle a bit more until the thrust cancels the weight completely (about 50% of throttle). Try now to gently release the drone completely and catch it after a second of free flight; this should be enough to tell if the drone can stabilize itself well enough of if it oscillates. If everything goes well, simply increase the time you let the drone fly by itself while still being ready to catch it. Once you have enough confidence, it's time for a RC flight!
Et voilà, it was as simple as that.
Add-ons
Test rig
To do the initial tuning of the drone I used a gimballed test rig. If your build is different from mine (e.g.: different servos, autopilot or other things attached on it) you might need to re-tune the rate PID controller and it's often safer to just do it on the test rig, where nothing bad can happen. I'll soon publish the test rig on Printables so you could also use it.
FPV kit
Hovering line of sight is boring, isn't it? I'm currently mounting an FPV kit on my build and will share the 3D models to mount the camera and antenna really soon. Stay tuned!