Walkthrough — Design a Multirotor Drone Autopilot Stack

A concrete, end-to-end design pass for a heavy-lift inspection / cinema multirotor in the DJI Matrice 350 RTK class. Every section pins to the Tier-3 family note that owns the underlying body of knowledge so the design choices stay auditable.

1. What we’re building

An octocopter (X8 coaxial configuration) sized to fly a 5 kg (11 lb) inspection or cinema payload for 30 minutes round-trip, with autonomous waypoint navigation, RTK-corrected GNSS positioning at ±2 cm (±0.79 in), and a beyond-visual-line-of-sight (BVLOS) capable autopilot stack. The build is targeted at the same operating envelope as the DJI Matrice 350 RTK — the dominant industrial commercial drone of 2025–2026 — but using an open PX4 autopilot, off-the-shelf flight controller hardware, and a Linux companion computer for perception and BVLOS link management.

Headline numbers:

  • Maximum takeoff weight (MTOW): 12 kg (26.5 lb)
  • Payload: 5 kg (11 lb)
  • Hover endurance: 30 minutes minimum, 35 minutes cruise
  • C2 (command-and-control) link range: 8 km (5 mi) line-of-sight
  • Position accuracy: ±2 cm (RTK fixed) / ±1 m (SBAS) / ±2.5 m (autonomous)
  • Operational class: BVLOS-ready, IP54 (dust + splash), redundant IMU + GNSS, dual-battery hot-swap
  • Software baseline: PX4 v1.15 on Pixhawk 6X, ROS 2 Humble on Jetson Orin NX companion, MAVLink 2 to ground station
  • Regulatory baseline: FAA Part 107 commercial pilot certification + Remote ID per Part 89; BVLOS via SORA v2.5 or LAANC waiver; EASA Specific category

Design redundancy goal: survive any single-motor failure in hover (X8 octocopter, 7 of 8 motors can hold MTOW), survive any single GNSS failure (dual u-blox receivers with diverse antennas), survive any single IMU failure (triple-IMU Pixhawk 6X with EKF voting), survive a C2 link loss (LTE backup + RTH).

This walkthrough trades a Cessna-grade UAV (fixed-wing, hours of endurance) for a precision-hover platform optimized for vertical inspection — tower work, bridge work, indoor stockpile volumetrics, cinema, search-and-rescue — where the M350 currently dominates. → [[Robotics/multirotor-design]] for the broader multirotor family.

2. Spec table

ParameterTargetSource / link
MTOW12 kg (26.5 lb)[[Robotics/multirotor-design]]
Payload5 kg (11 lb)mission requirement
Hover endurance30 min minimumcomputed §5
Propeller diameter558 mm (22 in)[[Engineering/aerodynamics]]
Thrust per motor6.5 kgf (14.3 lbf) peak, 1.5 kgf (3.3 lbf) hoverT-Motor MN705-S spec
Climb rate6 m/s (1180 ft/min)controller limit
Cruise speed25 m/s (56 mph, 49 kn)airframe drag-limited
Range (C2 link)8 km (5 mi) LOS[[Engineering/rf-design]]
Maximum sustained wind12 m/s (27 mph, 23 kn)thrust margin
Ingress protectionIP54enclosure rating
GNSS accuracy±2 cm RTK fixedu-blox ZED-F9P
Autopilot redundancyTriple IMU + dual GNSS + voting EKFPixhawk 6X
RegulatoryFAA Part 107 + Part 89 Remote ID; BVLOS SORA[[Engineering/Tier3/engineering-codes]] (Part 107)
C2 link primaryMicrohard pDDL2450 (2.4 GHz mesh)[[Engineering/rf-design]]
Companion computeNVIDIA Jetson Orin NX 16 GB, 40 TOPS[[Robotics/realtime-embedded]]

Every line in the table maps onto a Tier-3 family note that owns the engineering body of knowledge — propeller selection comes from rotor-disc-loading theory in [[Engineering/aerodynamics]], the regulatory column comes from [[Engineering/Tier3/engineering-codes]] which catalogs Part 107 alongside the other aviation codes a UAV touches.

3. Airframe

The X8 (coaxial octocopter) configuration runs 4 arms × 2 propellers per arm — a top propeller spinning one direction and a bottom propeller spinning the opposite direction. The coaxial pair shares an arm but uses two separate motors. Versus a flat octo (8 arms × 1 prop), X8 trades ~10–15% aerodynamic efficiency (the bottom rotor flies into the top rotor’s downwash) for half the arm count, half the moment-of-inertia about yaw, and a more compact folded footprint. The Matrice 350 uses the same X8 layout for the same reasons.

Arm structure: 600 mm (23.6 in) hub-to-prop-shaft length, CFRP (carbon-fiber-reinforced polymer) sandwich tube — 25 mm (1 in) OD × 22 mm (0.87 in) ID with foam-core or honeycomb-core spar inserts at the motor mount and clamp interfaces. CFRP layup is typically a ±45° biax for torsion plus 0/90° uni for bending stiffness; this is standard small-UAS arm construction. → [[Engineering/Tier3/composites-taxonomy]] (CFRP sandwich).

Center plate: twin CFRP plates (top + bottom) 3 mm (0.12 in) thick, autoclave-cured prepreg quasi-isotropic layup, 350 mm (13.8 in) diameter. The plates sandwich the avionics tray; arm clamps thread through stainless-steel inserts molded into the plates. → [[Engineering/Tier3/composites-taxonomy]].

Folding mechanism: quick-release arm clamps (Aliignment screw + lever cam — same family DJI uses on the M350) so the airframe folds for transport. Folded envelope: 700 × 470 × 430 mm.

Mass budget:

SubsystemMassFraction
Airframe (CFRP plates, arms, hardware)2.5 kg (5.5 lb)20.8%
Motors (8×) + ESCs (8×)1.5 kg (3.3 lb)12.5%
Battery (2× 12S 22 Ah LiPo)4.0 kg (8.8 lb)33.3%
Avionics + companion + radio + GNSS0.8 kg (1.8 lb)6.7%
Payload (5 kg)5.0 kg (11.0 lb)41.7%
Sum13.8 kg before margin
Design MTOW target12.0 kg (26.5 lb) with no payload margin overage

The math is loose by ~1.8 kg — in practice we drop the payload by 1 kg (carry 4 kg sensor instead of 5 kg on long missions) or fly with one battery (2 kg) on short missions. This matches M350 operational practice: the platform is rated for 9 kg MTOW + 2.7 kg payload, with payload-vs-endurance tradeable at the flight planning stage.

[[Robotics/multirotor-design]] for the rotor-count vs efficiency vs redundancy tradeoffs.

Why X8 not flat-8 or hex-6: For the same disc-loading, a flat-8 produces ~12% more thrust per unit electrical power (no coaxial downwash interference). However a flat-8 requires 8 arms (more parts, more stress concentrations at the hub) and a wider folded envelope. A hex-6 is the budget alternative — only 6 motors — but a single motor failure on a hex is recoverable only with sophisticated allocation logic (the geometry doesn’t naturally degrade to 5-motor flight without yaw drift); industrial operators prefer X8 because the degraded-mode behavior is well-understood and predictable. The 12-15% thrust efficiency penalty of X8 vs flat-8 is acceptable when the mission can re-plan to use larger rotors or more battery to recover; the redundancy benefit is unconditional.

Vibration analysis: the dominant excitation is the propeller blade-pass frequency (BPF). At hover the rotor turns at ~3000 RPM = 50 Hz. With a 2-blade prop, BPF = 100 Hz. Octo + coax = 16 props × 100 Hz contributing — but harmonically locked since all rotors are at similar RPM. The autopilot’s IMU is shock-mounted on a silicone tower with first natural frequency ~25 Hz to isolate everything above 100 Hz (a 4× ratio gives ~14 dB isolation in the relevant band).

4. Propulsion

Motors: 8× T-Motor MN705-S 240 KV outrunner brushless DC (BLDC). Specifications:

  • KV (back-EMF constant): 240 RPM/V (so at 12S = 50.4 V, no-load 12 100 RPM)
  • Peak power: 2200 W per motor
  • Continuous power: 1500 W
  • Peak thrust: 6.5 kgf (63.7 N) with 22” prop at 28 V (8S equivalent — actual flight uses 12S to give thrust margin)
  • Hover thrust at 12 kg gross / 8 motors = 1.5 kgf per motor, so we are at 23% of peak — leaving 4× thrust margin for maneuvers and headwind. Industry rule of thumb is a 2:1 thrust-to-weight minimum; we’re at 4.3:1.
  • Mass: 175 g per motor

T-Motor MN705-S is the de facto choice for heavy-lift X8/octo builds in the 12–20 kg MTOW class; its closest competitors are KDE Direct KDE7215XF, Hacker A60-XL, and Sunnysky V-series. → [[Robotics/Tier3/motor-families]] (outrunner BLDC).

Why 240 KV and not 100 or 400: KV trades off RPM-per-volt vs torque-per-amp. At 12S battery (50 V nominal) and a 22” prop with target hover RPM ~2800–3200, we need ~3000/50 = 60 RPM/V available × safety = ~240 KV. A lower-KV (100 KV) motor would need 28S+ battery (too high voltage for the small drone supply chain); a higher-KV (400 KV) motor over-spins the 22” prop at full throttle (centrifugal load on the prop blade tip exceeds the prop’s RPM limit). The 240 KV class is the well-matched choice for 22-inch props.

Propellers: 22 in × 7 in (558 mm × 178 mm) carbon-fiber two-blade. Pitch is the chord-line angle 22 / 7 — typical “high-pitch, high-disc-loading” choice for stable hover under wind. Brands: T-Motor P22×7, Mejzlik 22×6.6, Foxtech 22×7.2. Coaxial pair: top spins one direction, bottom spins opposite; bottom prop is typically 0.5 in larger pitch to absorb downwash and balance thrust. → [[Engineering/aerodynamics]].

ESCs (electronic speed controllers): 8× T-Motor Alpha 80A 12S or Hobbywing X8 50A 12S. Alpha 80A runs 40-80 A continuous, 100 A burst; takes 12S (8–14S range), accepts DShot 1200 + PWM + CAN; firmware on the Alpha is proprietary T-Motor, but for a more open path the Hobbywing X8 50A runs BLHeli_32 or AM32 firmware — both are open-source DShot-capable ESC firmwares that the multirotor / FPV community depends on. AM32 is the actively-maintained successor to BLHeli_32 since 2023 and runs on STM32G071-class MCUs. → [[Robotics/Tier3/motor-drive-electronics]] (BLHeli_32 / AM32 ESC firmware).

Battery: dual 12S LiPo, each pack 22 000 mAh (22 Ah). Pack voltage: 12 × 4.2 V (fully charged) = 50.4 V; nominal 12 × 3.7 V = 44.4 V; cutoff 12 × 3.3 V = 39.6 V. Pack energy: 50.4 V × 22 Ah = 1109 Wh per pack, 2218 Wh total dual-redundant. Mass per pack: 2.0 kg (4.4 lb). Vendors: Tattu PRO 22000 mAh 12S 25C, Gens Ace 22000 mAh 12S, MaxAmps LiPo 12S 22 Ah. → [[Engineering/Tier3/battery-chemistries]] (LiPo cell chemistry, voltage curves, C-rate).

C-rate: 25C discharge × 22 Ah = 550 A pack continuous, more than 5× the 100 A peak motor draw — well within safe operating area.

5. Flight power calculation

Hover power dictates endurance. The math (momentum-theory rotor model):

Step 1 — disc loading. Each rotor sweeps a disc of diameter 0.558 m (22 in), so the radius is r = 0.279 m. Per-disc area: A = π r² = π × (0.279)² = 0.244 m². Eight discs: A_total = 8 × 0.244 = 1.96 m². Disc loading at 12 kg gross:

DL = 12 kg / 1.96 m² = 6.12 kg/m² (well in line with the M350 class)

Actually re-checking with the prompt formula: 12 / (8 × π × 0.279²) = 12 / 1.957 = 6.13 kg/m². (The “2.45 kg/m²” figure in the prompt counts only one rotor as the divisor area; the eight-disc figure above is the conventional metric.)

Step 2 — ideal hover power. Momentum theory: P_ideal = T × sqrt(T / (2 × ρ × A)) where T = 12 × 9.81 = 117.7 N total thrust, ρ = 1.225 kg/m³ at sea level, A = 1.96 m².

P_ideal = 117.7 × sqrt(117.7 / (2 × 1.225 × 1.96)) = 117.7 × sqrt(24.5) = 117.7 × 4.95 = 583 W ideal for the rotor system

That’s the lossless minimum. Real propellers have a figure-of-merit (FoM) typically 0.65–0.75 — say 0.70 for a well-matched 22” prop. Mechanical shaft power:

P_shaft = P_ideal / FoM = 583 / 0.70 = 833 W

Then we add motor + ESC efficiency (typically 88% × 95% = 84% combined), drive-train losses, and avionics + companion-compute power (Jetson Orin NX 40 W, Pixhawk 6X 5 W, GNSS 1 W, radio 8 W, gimbal 25 W — call it 80 W avionics). Electrical input:

P_elec_rotors = 833 / 0.84 = 991 W for rotors

P_total = 991 + 80 = 1071 W ≈ 1.1 kW at the battery terminals in hover

(The prompt’s “2.6 kW” figure assumes a single-disc reference area rather than the 8-disc sum and a more conservative 0.5 FoM — both compatible numbers if you take the X8 efficiency penalty seriously; we’ll keep 1.1 kW as the optimistic case and 1.8 kW as the realistic case after coax-loss penalty and wind-induced power.)

Step 3 — endurance. Battery: 2 × 1109 Wh = 2218 Wh; we cycle to 80% depth-of-discharge to protect LiPo cycle life, so usable = 1774 Wh.

At hover 1.5 kW (realistic mid-case with wind margin): 1774 / 1500 = 71 min hover, but we factor in 30% wind/maneuver/safety reserve → ~50 min hover.

At hover 2.6 kW (worst-case w/ heavy wind, dirty air from coaxial-rotor downwash, FoM 0.5): 1774 / 2600 = 41 min hover30 min usable after reserve.

So the 30 min spec holds at the worst-case design point. Cruise (forward flight at 15 m/s) is more efficient than hover by ~30% (translational lift), giving ~35-40 min cruise. → [[Engineering/aerodynamics]] for the rotor-momentum and FoM derivations.

6. Autopilot hardware

Pixhawk 6X is the current-generation reference autopilot from Holybro/Auterion, the platform PX4 v1.14+ is developed against. Stack contents:

  • Main MCU: STMicroelectronics STM32H743 Cortex-M7 @ 480 MHz, 2 MB flash, 1 MB SRAM
  • IO co-processor: STM32F100 (handles PWM out, RC in, safety-switch — survives main-MCU brownout)
  • Triple IMU: Bosch BMI088 (rugged industrial), TDK InvenSense ICM-42688-P (low-noise modern), TDK ICM-20649 (high-G range, ±30 g). EKF can vote among three so any one IMU failure is masked.
  • Dual barometer: 2× MS5611 high-resolution baro (each 0.1 m altitude resolution); voting + cross-check.
  • Magnetometer: STM LIS3MDL (low-noise 3-axis); external mag in GNSS antenna for primary heading
  • FRAM: 256 kB ferro-electric RAM for parameter storage (faster + more durable than flash)
  • Interfaces: 12× PWM out, 4× UART, 3× CAN, 4× I²C, SPI, USB 2.0, 2× ADC, safety-switch, buzzer, SD-card
  • Mass: 67 g (2.4 oz)
  • Power: 5 V via dual redundant power modules (PMUs)

Alternative autopilots: Cube Orange+ (Hex/ProfiCNC, runs ArduPilot or PX4, triple IMU on isolated vibration-damped carrier), Auterion Skynode (drop-in PX4 + AI compute + LTE + secure-boot, the OEM heavy-industrial choice). For an inspection / cinema build the Pixhawk 6X + PX4 combo is the modern default; for missions that need a more conservative / battle-tested code base (agriculture, mapping) the Cube + ArduPilot Copter is the alternative. → [[Robotics/realtime-embedded]] (autopilot real-time architecture) + [[Robotics/Tier3/sensor-families]] (IMU, baro, mag families).

7. GNSS-INS RTK

Primary GNSS: Holybro H-RTK F9P module containing:

  • u-blox ZED-F9P receiver — multi-band (L1 C/A, L1C, L2C, L5, E1, E5a/b, B1, B2, B3) covering GPS, GLONASS, Galileo, BeiDou, QZSS. Tracks all constellations simultaneously.
  • RTK fix accuracy: ±2 cm (0.79 in) horizontal / ±4 cm vertical with a fixed integer solution, given a correction stream from an NTRIP server or local base. Fix time: 10–30 seconds typical, sub-10-second with multi-band.
  • PVT update rate: 20 Hz
  • Helical antenna: lightweight (45 g) with phase-center stability — important for RTK because phase-center wander introduces error directly into the cm-level fix.
  • Onboard magnetometer: RM3100 (geomagnetic) — the magnetometer must be physically separated from the powerful 12S battery wiring on the airframe (50+ A currents), so mounting it in the GNSS antenna mast (above the motor plane) is the standard heading solution.

Secondary GNSS: u-blox NEO-M9N — single-band L1 only, ~1.5 m horizontal accuracy with SBAS, fallback when RTK signal is lost or as cross-check for EKF voting. → [[Robotics/sensors-pose-motion]] (GNSS, INS, IMU pose fusion).

RTK correction stream:

  1. Local base station — set up a u-blox F9P base on a surveyed point at the launch site; corrections stream over the C2 radio at ~1 kB/s.
  2. NTRIP network — for missions near a permanent CORS (Continuously Operating Reference Station) network, the rover pulls RTCM 3.3 corrections over LTE from the network (e.g., NOAA CORS, state DOT networks).
  3. PPP-RTK (precise point positioning) — emerging, satellite-delivered (e.g., u-blox PointPerfect via Inmarsat L-band) — no base needed but ~10 cm not 2 cm.

[[Robotics/Tier3/sensor-families]] (GNSS family characteristics).

8. Companion compute

NVIDIA Jetson Orin NX 16 GB is the standard Linux companion for high-end inspection/BVLOS drones. Specs:

  • 8-core ARM Cortex-A78AE CPU @ 2.0 GHz
  • NVIDIA Ampere GPU, 1024 CUDA cores, 32 tensor cores
  • 70 TOPS peak (35–40 TOPS sustained at typical 25 W power envelope; configurable 10–25 W)
  • 16 GB LPDDR5
  • Form factor: SoM (system-on-module), 70 × 45 mm, mounted on a carrier board (e.g., reComputer J401, ConnectTech Quasar)
  • Mass: 24 g SoM, ~120 g with carrier board + heat sink + fan

Software stack:

  • OS: Ubuntu 22.04 LTS aarch64 with NVIDIA JetPack 6.0 (CUDA 12.2, TensorRT 8.6, cuDNN 8.9)
  • Robotics middleware: ROS 2 Humble (LTS to 2027). ROS 2 uses DDS for transport, which works well over local Ethernet between Jetson and ground station.
  • Autopilot bridge: PX4-ROS2 bridge (micro_xrce_dds_agent — uXRCE-DDS replaces the legacy MAVROS bridge in PX4 v1.14+). Provides typed C++/Python access to all uORB topics — position, attitude, sensor data, setpoints — over a virtual serial / UDP link.
  • Perception: YOLOv8 obstacle detection (trained on aerial-view datasets like VisDrone, COCO-aerial-augmented), running at 30 FPS on 640×640 RGB at ~5 W GPU. VINS-Fusion monocular-stereo-IMU visual-inertial odometry — the standard open-source VIO stack for GPS-denied / GPS-degraded flight (canyon, indoor, under-bridge).
  • Mapping: RTAB-Map (Real-Time Appearance-Based Mapping) for occupancy + dense 3D map generation from stereo + IMU; or Cartographer / LIO-SAM if a LiDAR is fitted.

[[Robotics/Tier3/slam-algorithms]] (VINS-Fusion, RTAB-Map, ORB-SLAM3) + [[Robotics/ros2-architecture]] (ROS 2 DDS, uXRCE-DDS bridge).

Why Jetson Orin NX and not Raspberry Pi 5 or Coral TPU: the autonomy/perception workload — YOLOv8 obstacle detection at 30 FPS + VIO at 50 Hz + ROS 2 middleware + MAVLink bridge — needs ~20 TOPS sustained ML throughput plus a multi-core CPU for the ROS 2 graph. Raspberry Pi 5 (8-15 GFLOPS, no real GPU) cannot run YOLOv8 at 30 FPS. Coral Edge TPU (4 TOPS) handles inference but no GPU general-compute. Jetson Orin Nano (8 GB, 40 TOPS) is the budget choice if RAM is the constraint; Orin NX 16 GB at the same 40 TOPS gives headroom for ROS 2 + a second ML model running in parallel. NX 8 GB is borderline once you load YOLOv8 weights + DDS buffers + ROS-Humble stack. Going one step up to Jetson AGX Orin (200+ TOPS) is overkill for this mission profile.

9. Perception

The payload bay carries the mission-critical sensors plus on-board obstacle/structure perception for autonomous flight.

Obstacle detection (binocular stereo + ToF):

  • Forward-facing: Intel RealSense D455 — global-shutter IR stereo with active projector + RGB. Stereo range to 6 m at ±1 cm, to 20 m at ±5%. Depth FOV 87° × 58°. Mass 72 g.
  • Downward-facing: Intel RealSense D455 + ToF (Terabee Evo 60 m or LightWare SF45/B) for precision landing and AGL altitude when GNSS is degraded.

Thermal imaging: FLIR Boson 320 longwave IR (LWIR) camera, 320×256 pixel, 60 Hz, 7.5–13.5 µm. Mass 7.5 g (sensor module). Used for: solar-panel hotspot inspection, wildlife search, building thermal envelope, electrical-equipment inspection. Mounts to gimbal alongside RGB.

Main payload (cinema / inspection): Sony α7R V (33 g + lens 1.5 kg) full-frame mirrorless, 61 MP. Mounted on a 3-axis stabilized gimbal:

  • DJI RS3 Pro (for handheld + drone mounting, 2-axis brushless gimbal, 4.5 kg payload limit)
  • Gremsy Pixy WP / U — purpose-built for UAVs, 3-axis, 0.1 mrad stabilization, supports Sony, FLIR Vue, Sony Airpeak payload conversion.

Optional LiDAR: Livox Mid-360 mid-range solid-state LiDAR. Spec: 40 m range at 80% reflectivity, 360° horizontal × 59° vertical FOV, 200 000 points/sec, 530 g. The Mid-360 is the de facto choice for UAV-mounted lidar mapping in the 12 kg MTOW class — DJI uses an equivalent in their L1/L2 payloads. → [[Robotics/Tier3/perception-sensors]] (RGB, depth, IR, LiDAR sensor family characteristics).

Total payload mass: typical inspection config = α7R V (1.5 kg) + Gremsy Pixy (650 g) + FLIR Boson (50 g housed) + 2× D455 (150 g) = 2.4 kg sensors + 2.5 kg margin for application-specific payload (electrical test gear, magnetometer survey gear, etc.) = ~5 kg payload envelope.

10. Comms

The C2 (command-and-control) link and the video downlink are the two RF channels every multirotor BVLOS platform needs.

Primary C2 link: Microhard pDDL2450 — point-to-multipoint mesh radio, 2.4 GHz ISM band, 1 W (30 dBm) transmit power, DSSS modulation. Specs:

  • Range: 8 km (5 mi) line-of-sight, 12+ km with directional antennas
  • Throughput: 0.5 Mbps reliable, peak 4 Mbps
  • Latency: 20-30 ms
  • Mass: 78 g (drone side)
  • AES-256 encryption native

Alternative: Doodle Labs Smart Radio — 5 GHz, MIMO, higher throughput (10+ Mbps), used by US DOD-favored drone builders. → [[Engineering/rf-design]] (link budget, modulation, ISM band selection).

Backup C2 link (BVLOS-critical): Sierra Wireless RV55 LTE Cat-12 modem with dual-SIM (e.g., Verizon + AT&T) and global LTE band coverage. Provides MAVLink-over-cellular fallback when the primary mesh is out of range or lost. Mass 250 g. The LTE link is the de facto BVLOS solution for the M350 — RTH (return-to-home) over LTE works even when the operator is 50 km away.

Emergency / lost-link beacon: LoRa (Long Range) sub-GHz radio — typically 433 MHz (EU) or 915 MHz (US ISM) — sends an “I’m alive at GPS coordinate X” beacon at 10-second cadence with 10+ km range from very low power. Used for last-resort recovery if main and backup links both die.

Antennas: 2.4 GHz omni dipole 2 dBi on drone, directional Yagi or panel 13 dBi on ground station. For 5 GHz, smaller form factor — omni patch on drone, MIMO panel on ground. → [[Engineering/antenna-theory]] (dipole, Yagi, patch antenna design).

Link budget (back-of-envelope):

P_TX = 30 dBm (1 W) Antenna gain: 2 dBi (drone) + 13 dBi (ground Yagi) = 15 dBi Path loss at 8 km, 2.4 GHz: ~118 dB (free space) Receive sensitivity: -90 dBm (Microhard) SNR margin: 30 + 15 - 118 - (-90) = 17 dB margin at 8 km in clear LOS — sufficient for reliable operation.

Video downlink: separate from C2. For inspection workflows the operator wants high-resolution video down at the ground station. Options:

  • DJI O3 Air Unit + Goggles — closed but reliable, 1080p60 + 4K30, ~10 km range. Used widely in FPV + cinema.
  • Herelink 2.4 GHz — open / ArduPilot-friendly, integrates HDMI+SBUS+MAVLink in one box, 12 km range.
  • Companion-computer video streaming — Jetson encodes H.265 from RealSense / RGB camera, streams over the LTE backlink or the Microhard radio’s auxiliary data channel.

Antenna diversity: the ground station carries two antennas — a 13 dBi Yagi for primary tracking + a 6 dBi omni for short-range / backup. Antenna tracker (gimbal-mount Yagi follower like UAVMatrix RFD900 tracker) keeps the high-gain antenna pointed at the drone using GPS coordinates over MAVLink. Without a tracker the Yagi’s narrow beam (~30° HPBW) only works for forward-facing flight.

11. PX4 software stack

We chose PX4 over ArduPilot and BetaFlight for these reasons:

  • PX4 — modular ECSS-architected codebase, hard-real-time NuttX RTOS, separate position + attitude + EKF + estimator modules connected by uORB pub/sub messaging. Excellent for industrial / cinema / inspection workloads where modularity and a clean codebase matter. The active modern standard. EKF2/EKF3 estimator is best-in-class.
  • ArduPilot — Apache-licensed (vs PX4 BSD), more conservative codebase, larger user community especially in agriculture/mapping, broader vehicle types (planes, rovers, boats, sub) but the multirotor side overlaps PX4 heavily.
  • BetaFlight — racing/freestyle FPV-only, no autonomous capability, no EKF, no GNSS — explicitly not for utility/cinema.

Architecture (PX4 v1.15):

  • NuttX RTOS — POSIX-compliant RTOS running on the H743. Provides preemptive multitasking, priority inheritance, hard timing guarantees.
  • uORB — uORB is PX4’s pub/sub IPC: publishers like sensor_combined (IMU at 1 kHz), vehicle_attitude (attitude estimate at 250 Hz), vehicle_local_position (50 Hz), vehicle_gps_position (10–20 Hz). Subscribers (the controllers) read these topics. Lockless ring buffers — no waiting on locks.
  • EKF2 — the workhorse 24-state extended Kalman filter (position, velocity, attitude quaternion, gyro bias, accel bias, magnetic field, wind, etc.). Fuses IMU (250 Hz), GNSS (10 Hz), barometer (50 Hz), magnetometer (50 Hz), airspeed (optional), optical flow (optional), range finder (optional). Outputs the estimator state at 250 Hz to the controllers.
  • EKF3 — newer; same topology + better airspeed handling + better magnetic-anomaly rejection (used heavily in ArduPilot, available as alternate in PX4).

Position + attitude control modules:

  • mc_pos_control — multicopter position controller. Cascaded P-PID: position → velocity setpoint → acceleration → tilt setpoint. Runs at 50 Hz, feeds attitude setpoints to the attitude loop. Optional L1 adaptive controller for wind-gust rejection.
  • mc_att_control — multicopter attitude controller. Quaternion-error attitude controller (no gimbal lock, smoother through extreme attitudes) → body-rate setpoints → PID on body rates → torque demand. Runs at 1 kHz.
  • multirotor_mixer — maps torque-demand-vector + thrust-demand to per-motor thrust setpoint based on the airframe geometry; the X8 geometry file maps each commanded torque axis to the 8 individual motor thrusts.

MAVLink 2 — open binary protocol for command-and-control between PX4 and the ground station (QGroundControl, Mission Planner, custom). 2.0 added 24-bit message IDs, message signing, packet extension. Runs over the C2 radio + LTE backup. → [[Robotics/Tier3/control-algorithms]] (cascaded PID, quaternion attitude control, EKF) + [[Robotics/bayesian-estimation]] (EKF derivation).

12. Control loops

The control architecture is a classic cascaded loop, inner attitude fast, outer position slow. Specifically:

Inner: attitude / rate loop (1 kHz)

  • Setpoint: target attitude quaternion (from position loop)
  • Quaternion-error → body-rate setpoint via P gain (typically 6–10 rad/s per rad of error)
  • Rate setpoint → motor torque via PID with feed-forward gyro term
  • Output to mixer → ESC PWM/DShot at 8 kHz frame rate
  • Why 1 kHz: angular velocity changes fast (10–20 rad/s in maneuver), IMU at 1 kHz, ESC update at 8 kHz, control needs to be at IMU rate

Outer: position / velocity loop (50 Hz)

  • Setpoint: target position (waypoint), velocity (cruise speed), acceleration (smoothness)
  • Position error → velocity setpoint via P gain
  • Velocity error + feed-forward acceleration → tilt + thrust setpoint
  • Feeds the inner attitude loop with the attitude target
  • Why 50 Hz: position changes slow (1 m every 0.1 s); GNSS only updates at 10–20 Hz so loop can’t be faster than that meaningfully

Trajectory generation: 1 Hz mission rate

  • Cubic-spline interpolation between waypoints with geofence constraint, altitude limit, max velocity, max acceleration. Generated by PX4 mission engine from QGC’s loaded .plan file.

Adaptive control (optional): L1-adaptive position controller adds online adaptation against wind gust. Disabled by default; useful on missions where wind exceeds 8 m/s.

Failsafe state machine:

  1. Low-battery (warning at 30%, RTH at 20%, land at 10%) — RTH (return-to-home) returns to launch GPS coordinate at safe altitude then lands.
  2. C2 link-loss timeout (5 s) — RTH; if RTH still no link, autoland at current position after a hover-hold attempt.
  3. GPS loss / EKF degraded — position-hold using IMU + baro + magnetometer dead-reckoning for 5 seconds; if no GPS recovery, switch to ALT_HOLD mode (manual lateral, autoland on RC operator command); if no operator, autoland in place.
  4. High-vibration / IMU disagreement — EKF voting kicks bad IMU out; if 2 of 3 disagree, RTH with the surviving IMU.
  5. Motor failure — X8 detects via current monitoring (motor draws zero, neighbor draws double) and reconfigures mixer to fly with 7 motors; degraded but flyable. Land at nearest safe LZ.

Tuning workflow. PX4 auto-tune (the mc_autotune module) drives the rate-loop gains via a frequency-sweep on each axis. Operator arms the drone in STAB mode, enables autotune, drone wiggles ±10° on each axis for ~30 s — module identifies the rate-loop transfer function and computes P+I+D + feed-forward gains using a pole-placement method. After autotune, the operator hand-tunes the position-loop gains by step-input tests in POSCTL — typically the position-loop P is reduced from default for heavy-lift aircraft (slower response, lower overshoot, smoother trajectory tracking).

Gain scheduling. A heavy-lift X8 has very different inertia full vs empty (12 kg payload changes I_zz by ~30%). PX4 v1.15 supports parameter-set switching tied to “payload state” — operator pre-defines two gain sets (loaded + empty) and switches via QGC pre-flight. Lazy operators just tune for the loaded case and live with slightly over-damped behavior empty.

13. Battery + power management

Cell selection: 12S (12 cells in series) LiPo. We use 12S not 6S because at higher voltage current is halved for the same power, so I²R copper loss in the ESCs and motor windings is 4× lower, which is critical at the 100+ A burst currents an X8 demands. Modern 12S is the industrial drone standard (M350, M30, Skydio X10, Anduril Ghost X all 12S).

Vendors: Tattu PRO 22000 mAh 12S 25C (the M350 reference battery), Gens Ace 22000 mAh 12S, MaxAmps Lithium-Polymer 12S 22 Ah. Pack cycle life: 200–300 cycles to 80% capacity if well-managed.

Hot-swap & dual-battery: Two batteries connected in parallel through individual Schottky-OR diodes (or ideal-diode controllers like LTC4357 for lower forward-voltage drop). Either battery can fail open or short and the drone keeps flying on the other. Hot-swap on the ground: ground crew unplugs the empty battery while the other powers the avionics; the drone stays awake → no GNSS/IMU re-init delay.

Power module / current sensor: Mauch PL-200 + Mauch Sense BEC. PL-200 is a Hall-effect 200 A current sensor with shunt-based voltage measurement, integrated 5 V BEC for the autopilot, and a separate 5 V BEC for the companion compute. Mauch is the industry standard for heavy-lift multirotors — it survives the high-current transients at motor spool-up that destroy cheaper power modules.

BMS / battery management: smart batteries (Tattu PRO smart, DJI TB65) have integrated cell-balancing, per-cell voltage telemetry, temperature sensing, cycle counting. The pack reports SOH (state-of-health) and remaining flight time to PX4 over CAN. → [[Engineering/Tier3/battery-chemistries]] (LiPo, Li-ion, LiFePO4 chemistry comparisons and safety).

Heat: LiPo charging dissipates 5–10% energy as heat; the pack temperature limit is 60 °C (140 °F). In hot ambient, battery cycle life crashes — store at 50% SoC and 15-25 °C.

14. Geofence & airspace

Geofence database: static NFZ (no-fly zone) database loaded into the autopilot from one of:

  • DJI FlySafe — the M350’s native NFZ database; covers commercial airports, prisons, government facilities, restricted airspace globally
  • AirMap — open NFZ + LAANC integration for US Part 107 operations
  • OpenSky — open-source flight-tracking + airspace database; live ADS-B traffic

Per-flight planning:

  • NOTAMs (Notices to Air Missions) — pulled at pre-flight via FAA NOTAM search or B4UFLY app; temporary flight restrictions and event notams
  • LAANC (Low Altitude Authorization and Notification Capability) — US-only, FAA’s automated airspace authorization system. Submit a flight plan via FAA-approved provider (Aloft, AirMap, Skyward, DroneUp) and get near-real-time authorization to fly in controlled airspace under Part 107.
  • NOTAM filing for BVLOS — operator files a NOTAM for the operating area before BVLOS flight.

Remote ID: mandatory in US since Sep 2023 under FAA Part 89. Compliant with ASTM F3411-22 (the industry standard for broadcast remote-ID). Required broadcasts: drone serial number, ground-control-station location, drone position (lat/lon/alt), drone velocity, emergency status. Broadcast via Bluetooth 4 LE or WiFi NaN at 1 Hz, range 200+ m. Implementation: Mauch Remote ID Beacon (board-level) or Pixhawk-integrated module. → [[Engineering/Tier3/engineering-codes]] (FAA Part 89, Part 107, ASTM F3411-22).

15. Safety / certification

Pilot certification: FAA Part 107 for commercial small-UAS operation (drones < 25 kg / 55 lb MTOW). Requires written knowledge test, every 24 months recurrent test, registration ($5 every 3 years), Remote ID transponder, daylight + civil-twilight operations only (or waiver), VLOS (visual line of sight) only.

BVLOS waiver path:

  • US: FAA Part 107 Waiver for BVLOS — granted case-by-case based on safety case. Or specifically the “BVLOS Aviation Rulemaking Committee” recommendations leading to a Part 108 rule (in development 2024-2026, not yet final as of 2026-05).
  • EU: EASA Specific category under EASA Regulation 2019/947, requires a SORA v2.5 (Specific Operations Risk Assessment) risk analysis with 9 risk classes (ground risk × air risk → SAIL → operational mitigations). Approved by national CAA.
  • Australia: CASA “ReOC” (Remote Operator Certificate) + Operations Manual.
  • UK: CAA Operational Authorization, similar to EASA Specific.

System safety:

  • Single-motor failure tolerance — X8 octocopter survives any single motor failure in hover. Motor failure → PX4 detects (current = 0 + lift asymmetry from IMU) → reconfigures mixer to use 7 motors → degraded flight + emergency-land.
  • GPS failure tolerance — dual GPS + EKF voting; degrades to optical-flow/VIO-based positioning if available.
  • C2 link failure tolerance — LTE backup + RTH on timeout.
  • Battery failure tolerance — dual battery, either can fail open or short.

Parachute: ParaZero ParaSafe Mini parachute (or AVSS PRS-M350) — externally mounted; on freefall detection (IMU > 1 g downward for 0.5 s) the parachute fires. Reduces ground impact energy and may be required for BVLOS over populated areas under SORA (Air Risk Class C/D mitigation).

Maintenance + inspection: logbook per FAA AC 107-2, motor + ESC current trend monitoring, propeller balance check every 50 flight hours, battery cycle count + capacity test every 50 cycles.

Failure analysis — every M350-class operator should run a documented PHA (preliminary hazard analysis) / FMEA (failure mode effects analysis). The single-points-of-failure that survive the X8 redundancy:

  • Pixhawk single fault — entire autopilot dies. Mitigation: redundant Pixhawk + voting (e.g., Auterion Skynode + Pixhawk 6X cross-feed) for higher-assurance class.
  • Common-mode power fault — short on the power-distribution board takes down both batteries. Mitigation: per-battery fuse (slow-blow 80 A); careful PDB design.
  • Software bug — autopilot firmware fault. Mitigation: pre-flight self-test (motors spool ±5% baseline, IMU residuals < threshold, GNSS HDOP < 2.0), conservative software change-control with regression flight-test on every major release.

16. Avionics EMC

The 12S × 100 A motor wiring is the dominant EMI source on the airframe. Standard mitigation practices:

  • Vibration isolation of autopilot: silicone shock-mount tower with damping pucks (Sorbothane / silicone elastomer). Decouples IMU from motor-induced 50–200 Hz vibration. Otherwise IMU sees prop-blade-pass excitation and EKF struggles.
  • ESC signal: shielded twisted-pair (CAN or DShot wires) with the shield grounded only at the autopilot end (avoids ground loops).
  • Motor power leads: common-mode choke (TDK B82723 series ferrite cores) on each motor + ESC pair, reducing radiated emissions in the 20-200 MHz range that interfere with GNSS L-band reception.
  • GNSS antenna coax: ferrite bead at the antenna base + at the receiver. Routed away from motor power cables; minimum 50 mm separation; never run parallel to motor wires for more than 50 mm.
  • Magnetometer: mounted in the GNSS antenna mast, not in the avionics tray, to physically distance from the large-current battery wiring.
  • Star-ground topology: single ground reference point on the autopilot tray; all subsystem grounds (motors, BEC, payload) join at the star.

[[Engineering/Tier3/passive-components]] (ferrite chokes, EMI suppression, shielding).

17. Cooling

In flight, propwash provides aggressive forced convection over the airframe — the limiting case for thermal management is transition to forward flight after a long hover when air movement around the avionics is briefly low.

Heat budget:

  • Jetson Orin NX: 25-40 W dissipation depending on workload. 25 W normal (CPU + GPU at moderate utilization), 40 W peak. Sink: passive aluminum heatsink + 40 mm fan (PWM-controlled by thermal). Tjmax = 100 °C; alarm at 85 °C.
  • ESCs: ~5% switching+conduction loss × 800 W per motor at hover = 40 W per ESC × 8 = 320 W total. ESCs are bolted directly to the motor arm tube + ribbed heat-spreader; propwash cools them. Tjmax for STM32G071 + power FETs ~ 125 °C; alarm at 100 °C.
  • Motors: ~50 W per motor at hover (copper + iron loss in the BLDC stator). Motor case is aluminum and acts as heat sink to ambient; propwash cooling.
  • Pixhawk: 5 W avionics, ambient airflow sufficient.
  • Radio + GNSS: combined 10 W, ambient sufficient.

Total heat: 320 W (ESCs) + 400 W (motors) + 40 W (Jetson) + 15 W (avionics) = ~775 W in steady-state hover. Forced convection: at 5 m/s prop downwash, h ~ 50 W/m²·K, with ~0.5 m² of exposed surface (airframe + heat sinks) and ΔT ~30 K → 750 W removable. Margins reasonable; thermal alarms at predefined Tj. → [[Engineering/Tier3/heat-transfer-correlations]] (forced-convection correlations, heat-sink design).

18. Manufacturing

CFRP arms (4 each): filament-wound or autoclave hand-layup. Filament-winding is faster for production (50/min throughput) — preimpregnated tow wound over a steel mandrel + cured. Hand-layup is cheaper at volumes < 100 — prepreg laid into a female tool, vacuum-bagged, autoclaved at 120 °C × 90 min.

CFRP center plates (top + bottom): prepreg layup, autoclave cure, CNC-trim. Surface finish + tolerance after autoclave: ±0.1 mm; CNC trim for the bolt-circle and arm-clamp interfaces. → [[Engineering/Tier3/forming-processes]] (autoclave layup, filament winding, RTM).

Aluminum brackets / motor mounts: 5-axis CNC from 7075-T6 plate. 7075-T6 has ultimate tensile strength 570 MPa, yield 500 MPa, density 2.81 g/cm³ — strong for the weight. Anodize Type II (decorative) or Type III (hardcoat) for surface durability. → [[Engineering/Tier3/aluminum-alloys]] (7075, 6061, 2024 properties).

Fasteners: ISO 4762 (DIN 912) socket-head cap-screw, grade 12.9 (ultimate 1200 MPa, yield 1080 MPa) for primary structure; grade 8.8 for non-structural. Standard sizes M3/M4/M5 for the airframe. Loctite 243 (medium-strength threadlocker, blue) on all flight-critical fasteners to prevent vibration-induced loosening. → [[Engineering/Tier3/fasteners-taxonomy]] (ISO 4762, grade 8.8 vs 12.9, Loctite specifications).

Assembly: torque-controlled assembly (torque-wrench, calibrated) — every flight-critical bolt has a documented torque value (e.g., M3 12.9 at 1.5 Nm). Witness-mark the bolts (paint stripe across head + airframe) for visual inspection of loosening between flights.

Cable management: dedicated cable channels in the CFRP arm + center plate so motor power cables (12S, high-current) are physically separated from sensor signal wires (CAN, UART, GNSS). Spiral wrap or PET sleeving on every bundle. Strain relief at every connector — molded TPE strain-relief boots or shrink-tubing + zip-tie. Connectors: XT60 / XT90 for battery, AS150 + XT150 for the main power bus, JST-GH (Pixhawk standard) for low-power signal, M8 / M12 circular connectors for outdoor / IP-rated runs.

Quality control: every airframe undergoes a 4-step QC: visual inspection (cracks, delamination on CFRP) under raking light + dye-penetrant on critical Al brackets; bolt-torque audit with torque-stick on 100% of flight-critical fasteners; bench power-on self-test (PoST) verifying all sensors report sane data, all 8 motors spool to spec; tethered hover for 60 s with GCS log review before sign-off for free flight.

19. Cost build (qty 100)

ItemCost per unit (USD)Notes
Frame: CFRP arms × 4 + plates + Al brackets$800Made-in-quantity, CFRP + 7075 CNC
Motors: T-Motor MN705-S 240 KV × 8$2 400$300 each
Propellers: 22 in CFRP × 8 (+ spares × 4)$200Mejzlik 22×6.6 + spares
ESCs: Hobbywing X8 50A × 8$1 200$150 each, BLHeli_32/AM32
Autopilot: Holybro Pixhawk 6X kit$500Includes 6X + power module + GPS rail
GNSS: Holybro H-RTK F9P + NEO-M9N secondary$1 200Dual GNSS configuration
Companion: Jetson Orin NX 16 GB + carrier board$700reComputer J401 or similar
Cameras + gimbal: Sony α7R V (depreciation across uses; reference 1 200) + FLIR Boson 320 ($1 800) — typical inspection bundle$5 000Half attributed to drone, half to operator’s existing payload library
Radio: Microhard pDDL2450 (drone + base)$2 400Pair of radios + antennas
Batteries: 2 × Tattu PRO 22 Ah 12S$1 400$700 each
Subtotal$15 800
Engineering, harnessing, integration$200Allocated per-unit at qty 100
Total BOM per unit at qty 100~$16 000

DJI M350 RTK street price: ~$12 000 (depending on payload options). The open build comes in slightly above on hardware cost; the value is in (1) the open PX4 stack — full source control, customizable for novel missions, no DJI ecosystem lock-in, no geofencing that the operator can’t disable; (2) Jetson Orin NX onboard ML — DJI’s edge compute is closed; (3) the dual-radio C2 with LTE backup matches what M350 does only with optional cellular add-on.

For a 1-off build the cost is closer to 16 000 figure is meaningful at the 100-unit production scale where component pricing is leveraged.

Operating cost (per flight hour): battery cycle depreciation 2.80/h batteries**; motor wear amortized 2.40/h motors**; propeller replacement 2.00/h props**; ESC + autopilot + Jetson amortized over 3000 hours = 10/h direct hardware + amortized. Comparable to a piloted Cessna 172’s $80/h Hobbs cost — drone wins big on operating cost for missions where it can substitute.

Insurance: commercial UAS liability typically 1M coverage at the Part 107 class; goes up for BVLOS operations. Hull insurance for the airframe is $500-1500/yr depending on operating envelope.

20. Schedule

Phase 1 — Hardware bring-up + propulsion test (6 months)

  • Months 1–2: Airframe design + CFRP tooling + first prototype frame
  • Months 2–3: Motor + ESC + propeller bench testing (test stand, thrust + current + RPM measurement)
  • Months 3–5: Battery hot-swap circuit, power module integration, full power-electronics on bench
  • Months 5–6: Avionics integration — Pixhawk 6X + GNSS + radio bench-test, EMC scan

Phase 2 — Software + flight test (6 months)

  • Months 7–8: First tethered hover (10 ft tether, controlled spool — survive a flyaway)
  • Months 8–9: Free hover, manual mode, position-hold tuning
  • Months 9–10: Autonomous waypoint missions, RTH testing, low-battery RTH
  • Months 10–11: Wind tunnel + outdoor wind testing up to 12 m/s sustained
  • Months 11–12: BVLOS demonstration over closed range, LTE backup verified, parachute deployment test

Phase 3 — Certification (3 months)

  • Months 13–14: FAA Part 89 Remote ID compliance documentation, FAA airworthiness file
  • Months 14–15: SORA submission (EASA), LAANC + Part 107 Waiver (FAA) for BVLOS

Phase 4 — Customer pilot (3 months)

  • Months 16–18: Field deployment with 2–3 launch customers, real mission data, MTBF + mean-time-between-incidents tracked

Total: 18 months from design start to first commercial revenue flight.

21. Cross-references summary + Citations

Tier-3 family notes linked:

  • [[Engineering/aerodynamics]] — rotor disc-loading, momentum theory, figure-of-merit
  • [[Engineering/Tier3/engineering-codes]] — FAA Part 107, Part 89 Remote ID, EASA SORA v2.5
  • [[Engineering/Tier3/composites-taxonomy]] — CFRP sandwich, autoclave layup, prepreg
  • [[Engineering/Tier3/battery-chemistries]] — LiPo cell electrochemistry, C-rate, SoH
  • [[Engineering/Tier3/passive-components]] — ferrite chokes, common-mode chokes, EMI suppression
  • [[Engineering/Tier3/heat-transfer-correlations]] — forced-convection h-coefficients, heat-sink sizing
  • [[Engineering/Tier3/forming-processes]] — filament winding, autoclave cure, RTM
  • [[Engineering/Tier3/aluminum-alloys]] — 7075-T6, 6061, anodizing
  • [[Engineering/Tier3/fasteners-taxonomy]] — ISO 4762, grade 12.9, threadlocker grades
  • [[Engineering/rf-design]] — link budget, ISM band, modulation
  • [[Engineering/antenna-theory]] — dipole, Yagi, patch
  • [[Robotics/multirotor-design]] — X8 vs flat-octo, rotor count tradeoffs
  • [[Robotics/Tier3/motor-families]] — outrunner BLDC, KV rating
  • [[Robotics/Tier3/motor-drive-electronics]] — BLHeli_32, AM32, DShot
  • [[Robotics/Tier3/sensor-families]] — IMU, baro, mag, GNSS family characteristics
  • [[Robotics/realtime-embedded]] — RTOS, NuttX, hard-real-time architecture
  • [[Robotics/Tier3/slam-algorithms]] — VINS-Fusion, RTAB-Map, ORB-SLAM3
  • [[Robotics/Tier3/perception-sensors]] — RGB, depth, IR, LiDAR sensors
  • [[Robotics/Tier3/control-algorithms]] — cascaded PID, quaternion attitude
  • [[Robotics/bayesian-estimation]] — EKF derivation, sensor fusion
  • [[Robotics/sensors-pose-motion]] — GNSS + INS + IMU fusion
  • [[Robotics/ros2-architecture]] — ROS 2, DDS, uXRCE-DDS bridge

Standards & regulations:

  • ASTM F3411-22 — Specification for Remote Identification and Tracking
  • FAA Part 107 (14 CFR Part 107) — Small Unmanned Aircraft Systems
  • FAA Part 89 (14 CFR Part 89) — Remote Identification of Unmanned Aircraft
  • EASA Regulation (EU) 2019/947 — Operations of Unmanned Aircraft
  • JARUS SORA v2.5 — Specific Operations Risk Assessment, 2024 revision

Software & protocols:

Hardware datasheets & specs:

  • T-Motor MN705-S 240 KV datasheet (T-Motor, 2024 rev)
  • u-blox ZED-F9P-04B integration manual (u-blox AG, UBX-19042081, R09)
  • NVIDIA Jetson Orin NX Series product brief
  • Holybro Pixhawk 6X Hardware Reference v1.6
  • DJI Matrice 350 RTK technical specifications (DJI Enterprise, 2024)
  • Intel RealSense D455 datasheet (Intel, 2023)
  • Microhard pDDL2450 product brief (Microhard Systems, 2023)
  • Tattu PRO 22000 mAh 12S specification sheet (Grepow / Tattu, 2024)

22. Worked mission example — bridge-deck inspection BVLOS

To make the spec table real, here’s a typical mission profile this aircraft executes.

Mission: highway-bridge deck inspection, span 800 m (2625 ft), three RGB+thermal passes for surface crack detection + delamination thermal imaging. Operator stationed 1 km off-bridge at the highway pull-out; bridge BVLOS waiver is in place via state DOT Part 107 waiver.

Pre-flight (15 min):

  1. Set up the RTK base on a surveyed point at the pull-out (or pull NTRIP corrections via LTE from state DOT CORS network).
  2. Power up; verify Pixhawk POST, dual GNSS RTK fix, IMU vibration < threshold, motor self-test (each motor spools to ~10% throttle individually, peak current within ±5% of baseline = healthy).
  3. Load mission .plan into QGC: 3-pass survey grid over the bridge deck, altitude 30 m (98 ft) AGL, 5 m/s ground speed, 20% photo overlap.
  4. Air-traffic awareness check: ADS-B inbound on the OpenSky feed, NOTAM verified, LTE backup link confirmed.

Takeoff + transit (3 min):

  • Vertical climb to 30 m AGL at 3 m/s, RTK fixed (HDOP < 1.0).
  • Fly waypoint 0 (over the bridge deck origin) at 25 m/s cruise — 1.5 km transit takes ~60 s.

Survey (18 min):

  • Three lengthwise passes, 800 m each, at 5 m/s = 160 s per pass = ~480 s total.
  • Plus 4× 180° turnaround (~10 s each) = 40 s.
  • RGB stills triggered every 2 s (4 m forward step at 5 m/s × 20% overlap).
  • Thermal video continuous at 60 Hz.
  • Companion compute streams a downscaled live feed (720p H.265 at 5 Mbps) over Microhard back to QGC; thermal anomaly detection running on Jetson flags hotspots in near-real-time.

Return + land (4 min):

  • Cruise back at 25 m/s.
  • Descend at 2 m/s, vertical-mode landing on geofenced helipad.
  • Battery state on landing: 32% (well above 20% RTH threshold).

Post-flight (10 min):

  • Hot-swap batteries on the bench (drone stays powered via 2nd battery, retains GNSS lock for next flight).
  • Pull data via the Jetson’s onboard NVMe — 8 GB of RGB stills + 2 GB thermal video. Stored to encrypted SSD per customer NDA.
  • Quick visual airframe + propeller check; log torque-audit pass on the arms.

Total mission time: 50 minutes including ground time, 25 minutes airborne. Same mission would take a 2-person bridge-inspection crew 4 hours on a snooper truck. The drone wins on time + cost + worker safety; the bridge inspection report writes itself from the RGB + thermal data after a 1-h analyst pass.


End walkthrough. Total content covers 22 sections: design intent, spec table, airframe, propulsion, power calc, autopilot HW, GNSS, companion compute, perception, comms, software, control, battery, geofence, safety, EMC, cooling, manufacturing, cost, schedule, citations, worked mission example.