Flying Drone DIY, Part III: Assembling and Tuning

Intro

This publication describes the assembly and tuning of a drone whose design and configuration were discussed in previous posts.

The process is relatively straightforward yet still technically sophisticated — some domain-specific knowledge is required to complete it successfully.
The ArduPilot team did an excellent job documenting the process, but there remains some room to bridge practical gaps.

Hardware part

Soldering connectors

ESCs and motors come without pre-soldered connectors, so you have to solder them yourself.
During soldering, I faced issues bonding the solder to the metal surfaces of the connectors. Using colophony (rosin flux) and several careful attempts, I achieved satisfactory results.
My soldering skills are basic — you might find superior techniques through additional research or practice.

Soldering PDB and dealing with EMI

The next stage involves soldering ESCs to the power distribution board (PDB). Similar soldering challenges arise here, requiring accuracy to avoid overheating the board or damaging traces and nearby components.
Another issue was adapting thick ESC cables to the PDB. The chosen ESCs support up to 80 A of current and use thick 12 AWG wires. Consequently, the selected PDB should support at least 320 A (by specification), but the soldering holes were only half as large as needed. Adjusting wire diameter or using additional connectors are both viable solutions.

Most PDBs have an open design. Considering how much current flows through them, it is important to protect them from accidental contact and from rain or moisture.

Another challenge is electromagnetic interference (EMI). Current flowing through wires creates an electromagnetic field that can affect nearby signal lines. The higher the current, the stronger the interference.
Therefore, it is crucial to keep the battery, PDB, flight controller, and RC receiver physically separated. Aluminum foil can also help provide shielding, especially for high-frequency interference. In my setup, I placed a foil layer between the FC and the PDB.

Engines: CW vs CCW

When using ArduPilot, pay close attention to the motor order. ArduPilot expects a specific motor sequence for each frame type — see the official documentation for details.

The order depends on the direction of motor rotation — clockwise (CW) or counterclockwise (CCW). This is done to balance the torque forces; otherwise, the drone would rotate uncontrollably. CW and CCW motors are arranged in pairs along each axis.
The motor’s direction can be reversed by swapping any two of the three wires connected to the ESC.

Both motor and propeller directions matter. Propellers are designed for specific rotational directions, and each produces thrust only when installed correctly. Always check that each motor spins in the intended direction with the correct propeller.

The Pixhawk board has a numbered MAIN OUT panel for connecting ESCs. Refer to the ArduPilot documentation for correct motor numbering.

Flight controller: RC setup

The radio receiver also arrived disassembled. Using documentation, identify the correct pins for your configuration and solder the wires properly.

I had to order a new cable to match the Pixhawk connectors, which use JST-GH connectors (6 pins, 2 mm). Pay attention to the exact connector type — several models exist under the JST prefix.

Another point to be aware of is wire colouring. Although JST-GH connectors are standard, colour coding is not guaranteed. In my case, black did not indicate ground and red did not indicate power. Always consult documentation before connecting wires, or you risk damaging components.

Also, note the pin orientation — Pixhawk’s printed labels can be misleading. I initially confused pin 1 with pin 6. Using a multimeter check and familiarising yourself with JST-GH layouts will help avoid such mistakes.

EMI mitigation is also important. The primary EMI sources are the battery, power lines (PDB, ESCs), and the radio receiver. The flight controller should be positioned as far as possible from them.
In this configuration, it was mounted as a second layer above the battery, with an additional aluminium foil layer for protection.

Flight controller: connecting ESCs

ESCs can be powered in two ways — directly from the PDB or through the FC via a BEC.
Since in my setup they were powered directly from the PDB, it was necessary to disable the BEC’s power supply by removing the red wire from the connector going to the FC.

All ESCs were connected to the MAIN OUT ports of the FC as described above.

Handmade frame

For the first version, I chose a handmade frame. Since it’s an R&D project, the configuration is not final, and the frame must allow for extensions and reconfiguration. I used particleboard as an affordable material, though plastic would likely be a better choice — lighter, durable, and easier to drill and cut.

The main question was: what frame thickness and arm length can support 2 kg of thrust per axis?

To answer this, I solved a classical cantilever beam bending problem (with ChatGPT’s help). However, I was unsure about my material’s stiffness coefficient, and the real-world results showed that the frame lacked sufficient rigidity. I solved this by adding a second frame layer — the rigidity then became adequate with a safety margin.

Another key aspect is centring the mass. Otherwise, you will have to compensate for imbalance in software by adjusting motor thrust, which is undesirable. In my case, this was straightforward — the battery accounts for about 85% of the total weight, so placing it in the centre was a natural choice. EMI concerns also dictated the layout, with sensitive parts arranged on separate layers.

A production-ready design should integrate all these considerations elegantly. More ergonomic R&D is planned for version 2 of the drone.

Importance of motor KV

KV (rpm/V) Typical Propellers Battery Type Drone Type / Application Characteristics
< 400 KV 18" – 32" 6S–12S Heavy-lift, long-range, industrial drones Very high torque, large propellers, ultra-efficient at low RPM. Designed for long-endurance flights carrying 2–10 kg.
400–600 KV 15" – 18" 6S–8S Medium-lift, aerial photography, mapping Balanced between efficiency and thrust. Ideal for 20–40 min endurance.
600–900 KV 12" – 15" 4S–6S General-purpose or filming drones Good torque but higher consumption. Common for 5–8 kg drones.
900–1200 KV 9" – 12" 3S–4S FPV / Freestyle drones High RPM, responsive, efficient but noisy.
1200–1800 KV 5" – 8" 3S–4S Racing drones Extremely fast, short flight time (3–7 min).
> 1800 KV 3" – 6" 2S–4S Mini / training drones Very high speed, low efficiency, high noise.

Selecting the right combination of motor KV, propellers, and battery voltage is essential for achieving the desired performance. The table above can serve as a practical reference.

Choosing the right ESC

The maximum current drawn by the selected motor is 28 A. However, short bursts can reach up to 1.8 × 28 A = 50 A, and peaks up to 2.5 × 28 A = 70 A. Therefore, the ESC should handle at least 70 A, or 60 A with appropriate burst protection (burst-rated ESCs exist for this purpose).

Such high currents require thicker wires. The ESC wires supplied were twice as thick as the motor and PDB wires, creating a mismatch — something worth considering during the design stage.

Software part

Below is the full list of configuration and calibration steps performed during the flight controller setup. Step 15 (Telemetry setup) has been postponed since the GCS modem is currently unavailable.

Configuration steps

No Step Status Notes
1 Firmware installation ArduCopter firmware successfully installed
2 Frame type selection Configured as Quad / X type
3 Accelerometer calibration Completed via Mission Planner
4 RC transmitter calibration Radiomaster TX16S + CRSF receiver
5 Compass calibration Performed after final assembly
6 ESC and motor calibration ESCs configured on PWM
7 Motor and propeller direction check Pending — to verify propeller rotation
8 Flight mode setup Stabilize / AltHold / Loiter configured
9 Failsafe configuration Radio, battery, and GCS failsafes configured
10 Power module and battery levels Voltage-only mode set for Cube Orange HV PM
11 OSD configuration Not used (no camera installed)
12 Voltage/current sensor calibration Completed; current via ADC not measured
13 AutoTune or manual PID tuning Planned after first hover test
14 Logging configuration Postponed — logs cannot yet be read from device
15 Telemetry (GCS) setup Postponed — GCS modem not available

Flashing firmware and choosing the frame

FC is connected to PC over mini usb. ArduPilot team provides MissionPlanner -- software which allows to configure software part of the copter over GUI as well as to plan automatic missions.
As a first steps you have to choose your type of vehicle and frame.

For more details check official documentation.

Accelerometer calibration

You have to put your copter on all 6 posiible positions. It is important to keep it in the one position for a few seconds until the confirmation to let FC correctly get&write params.

For more details check official documentation.

Compass calibration

You have to rotate your copter in different directions until receiving a sound confirmation from your FC about the end of configuration.

For more details check official documentation.

Radio calibration

Radio controls calibration is neccessary to let FC understanding which values are max and min of the passing signal. It has several tricky nuances you have to pay attention to.

For more details check official documentation.

Also in my case of ELRS I have to buy & install extra module for my RC transmitter to support ELRS. This step also requires updating firmware on the pult. Another interesting point is option to adjust controlling signals on the pult over software for more precise control of drone movement.

ESC & motors calibration

Electronic speed controllers also have to be configured to run motors according to percent of power passed to them. Modern protocols doesn't require it, but basic one like PWM still need this.

Till this moment the chain RC transmitter -> RC receiver -> FC should be already installed and tested. One particular issue which remains hidden at start is a safety switch.
Safety switch is a hardware protector from passing the power to the motoros. Carbon propellers and running motors could severely damage your tissues and muscles, so indeed such kind of protector is neccessary.
In my case safety switch was not provided neither by a separate wire or port on Pixhawk board, so it was always enabled on and prevented calibration of ESCs. You have to check GPS cable for it and even if you do not use GPS, you have to install the cable to use this button -- long press on it makes safety switch off. Power will come to ESC and you will hear nice sound from them.

For more details check official documentation

Motor direction and prop check

As was described in hardware part each motor should take the right position and spin in the right direction. Get a small speed over RC transmitter or using special test in MissionPlanner will help you to confirm the right direction of motors

Not only motors, but propellers as well should rotate in the right direction. Check them and see under which direction, clockwise or counter clockwise, it will grasp the maximum air. It will give you clear understanding on which motor each of them should be installed.

For more details check official documentation

Flight mode setup

Operating the drone requires to virtuosly giving a different power on each of its motors. This orchestration is automotize by Ardupilot. In addition to it sevel flight modes are designed to give a proper UX from operating over RC transmitter.

RC transmitter sticks could be and should be assigned to at least some of this flight modes. A few the most important ones at start are stabilize and land.

For more details check official documentation

Failsafe configuration

"Copter has a number of failsafe mechanisms to ease vehicle recovery/prevent wandering in the event that vehicle control is lost. "
(c) official docs

Power module and battery levels

You have to setup expected voltage and current of your battery and several thresholds to let flight contoroller (FC) know when to trigger special event assigned to each of them, e.g. land the copter on minimum level of the battery.

The voltage and current doesn't come to measurement sensors as is, but over voltage divider. This values should be restored back to original through multiplying on special coefficient.
I setup this values for voltage, but for current I hadn't succeed yet with current -- likely because of lack of current sensor itself.

For more details check official documentation

5th trial flight on minimum gas

The minmum gas been used for better control of the drone. With more flight experience gas could be rised up to the maximum without (much) danger for the garden and others objects around.

The next steps would be to solve flaws discovered after trial launches and develop 2nd generation of copter.

Version Brief purpose Business intent / Technical task / Tech components
V1 Minimal RC drone
Assembly and verification of base platform
  • Business intent: Validate basic flight mechanics and build experience before extending system complexity.
  • Technical task: Assemble 4-motor quadcopter, configure stabilization, test RC link and flight modes (Stabilize / AltHold).
  • Tech components: 450–500 mm frame, 4 motors + 4 ESCs, Cube Orange, basic power module, no FPV or telemetry.
V2 Video (FPV) and telemetry
Adding live video feedback for operator
  • Business intent: Enable real-time situational awareness for manual missions and visual monitoring.
  • Technical task: Integrate FPV system with live video and telemetry overlay; test pilot interface and signal stability.
  • Tech components: Analog FPV camera + VTx, OSD module, receiver/display or FPV goggles, telemetry link to ground station.
V3 ML integration
On-board video processing
  • Business intent: Move toward semi-autonomous recognition — detect objects and transmit key data to operator.
  • Technical task: Run onboard inference using lightweight neural models (YOLOv5n / YOLOv8n) and forward detections via MAVLink.
  • Tech components: SBC (Jetson Nano / Orange Pi) + CSI / USB camera, local inference pipeline, dual video output for analysis and monitoring.
V4 Autonomy and analysis
Navigation, SLAM, and target filtering
  • Business intent: Build semi-autonomous navigation and perception; reduce operator load in mapping or monitoring missions.
  • Technical task: Implement obstacle avoidance and SLAM; process and filter detected targets for smart guidance.
  • Tech components: Depth sensors / LiDAR, SLAM stack (RTAB-Map / PX4 avoidance), web or QGroundControl interface, analytics module.

The whole technial docs where allmost all research is written down is avaliable but this link.

A few related posts:

Flying drone DIY, part II: configuration for the 1st version

Flying drone DIY, part I: discovery phase

Broad vs narrow specialisation.