Last reviewed: August 2026

Build your own FPV drone from scratch

3D-printed carbon fiber frame, 15-20 min flights, $500-750. From simulator to sky — every step, every component, every concept explained.

Start with the parts list Jump to printing
⚠️
Educational reference only This is a learning resource, not a certified build guide. Always follow manufacturer manuals, local laws, and consult experienced pilots before flying. FPV drones can be dangerous — respect the risks.
15-20 min
Flight Time
<$500
Build Cost
6S
Power System
PA6-CF
3D Print Material
01Parts List

Everything you need to buy

Every component chosen for reliability, value, and beginner-friendliness. Prices are approximate USD as of mid-2026.

Component Product Why Price
FC + ESC Stack SpeedyBee F405 V4 BLS Stack (30x30) Best value stack. STM32F405 chip, Bluetooth config via SpeedyBee app, SD card blackbox, 55A ESC handles 6S motors, built-in DJI O3 port. Check SpeedyBee.com for the current model. $69.99
Motors (x4) iFlight XING² 2306 1900KV Efficient, crash-resistant, perfect for 5" props on 6S. 1900KV is the sweet spot — enough power, low current draw for endurance. $74.99
Camera + VTX DJI O3 Air Unit HD digital FPV, 1080p/60fps onboard recording, 25g total weight, low latency. The gold standard for digital FPV. $179
FPV Goggles DJI Goggles Integra Native DJI ecosystem pairing with O3. Light, portable, 150 FOV. If on a tight budget: Emax Alpha ($100) with analog camera instead. $199
Radio Transmitter RadioMaster Pocket (ELRS) Portable, $55, ExpressLRS protocol gives incredible range. Open-source EdgeTX firmware. Hall-effect gimbals. Works with Liftoff/Velocidrone sims. $55
ELRS Receiver RadioMaster Boxer ELRS Tiny, 2g, matches the Pocket. ExpressLRS gives 1ms refresh and 2+ km range. $7.99
Propellers (x8) HQProp 5046 3-Blade Industry-standard 5" props. Grab a few sets: 5045 (speed), 5046 (all-round), 5047 (endurance). $15
Battery Tattu R-Line 6S 6000mAh 120C Large capacity for 15-20 min flights. XT60 connector (check your ESC compatibility). Get 2-3 to rotate between charges. $45
Battery Charger ISDT NanoPro Charge and balance LiPo safely. Portable, Bluetooth app control, automatic voltage detection. $35
VTX Antenna Caddx Tiny Happy Plugs (x4) Replace stock DJI antenna for better range. Omni-directional, low-profile, 5.8 GHz. $9
Radio Antenna ExpressionTC ELRS + NANO adapter Directional antenna on your transmitter for massively improved control range. Essential for long-range. $18
PA6-CF Filament Bambu Lab PA6-CF (1kg) Carbon fiber reinforced Nylon 6. Incredible strength-to-weight. H2C handles it perfectly. $43
Hardened Nozzle Bambu Lab Hardened Steel 0.4/0.6mm CF filament is abrasive — brass nozzles wear out in one print. H2C's Vortek system makes swaps trivial. $8
Soldering Kit Pine A11 + paste + heat shrink + silicone wire Compact, temp-controlled iron. You'll need 20-22AWG silicone wire, rosin-core solder, flux, and assorted heat shrink. Avoid "solder paste" for hand-soldering — it's for reflow, not bench work. $35
Hardware Nylon standoffs M3 (6/10/20mm), velcro, zip ties, battery strap, hex drivers Standoffs for FC mounting, velcro strap for battery, zip ties for cable management. Don't use aluminum standoffs — they short PCBs. $15
Estimated Total (with DJI digital) ~$738
Estimated Total (analog route — Emax Alpha + Caddx Ant Nano) ~$500
💡
Budget route: go analog first Swap DJI O3 + Integra ($378) for a Caddx Ant Nano Lite camera ($25) + Emax Alpha goggles ($100) + BetAFPV Crocodile 60W VTX ($25). That saves ~$228. Digital upgrades are a great next purchase once you're flying confidently.

Component overview

Radio (your hands)
→
ELRS Receiver
→
Flight Controller (brain)
→
ESC (power control)
→
Motors + Props
Camera
→
Video Transmitter
→
Goggles (your eyes)

The radio tells the flight controller what you want. The FC reads the gyro, runs a PID loop at 8kHz, and commands the ESCs. The ESCs control motor speed via PWM. The camera feeds video back to your goggles.

023D Printing

Printing your drone frame

Your H2C is perfectly set up for carbon fiber nylon. Here's what you need to know about materials, settings, and finding a design.

Why PA6-CF?

Carbon fiber reinforced Nylon 6 is the best FDM filament for drone frames. It gives you high stiffness (resists flex under motor vibration), impact resistance (absorbs crash energy instead of shattering like PLA), low weight (critical for flight time), and heat resistance (motors run hot). It outperforms PLA, PETG, ABS, and even standard nylon for structural drone parts.

MaterialStrengthWeightHeat ResistImpactVerdict
PA6-CF★★★★★LightHigh (85°C Tg)ExcellentBest choice
PETG-CF★★★☆☆LightMediumGoodBudget option
PLA★★☆☆☆LightLow (60°C Tg)Poor (brittle)Avoid
ABS★★★☆☆MediumMediumGoodOK but heavy
ASA★★★☆☆MediumMedium-HighGoodSun-resistant
★ = rating out of 5

Print settings for H2C + PA6-CF

270-290°C
Nozzle Temp
90-100°C
Bed Temp
Hardened Steel
Nozzle (0.4 or 0.6mm)
0.2mm
Layer Height
2-3
Perimeters (Walls)
15-25%
Infill (Gyroid)
45°/-45°
Infill Angle
Dry 80°C / 8h
Before Printing
🔴
CRITICAL: Use a hardened nozzle Carbon fiber acts like sandpaper. One PA6-CF print will destroy a brass nozzle. The H2C comes with hardened steel Vortek nozzles — swap to one before printing. A 0.6mm nozzle is even better because it resists clogging from short carbon fiber strands.
🔥
Annealing (recommended) After printing, bake the frame in an oven at 100-120°C for 2-4 hours. This relieves internal stress and makes PA6-CF significantly stronger and more dimensionally stable. Use a well-ventilated area — nylon off-gasses slightly.

Design principles for drone frames

Fiber orientation

Design with 45° angles for maximum stiffness. The carbon fibers align with the print path, so alternate layer direction (0°/90° or 45°/-45°) gives strength in multiple axes. Gyroid infill naturally does this.

Perimeters over infill

More perimeters (walls) = more stiffness. 3 perimeters with 15% infill is often stronger than 2 perimeters with 50% infill, and it's lighter too. Motor mounts should have 4-6 perimeters.

Standard mount sizes

Motor mounts: 20mm 4-hole pattern (5mm pitch). FC mounting: 30x30mm 4-hole pattern, 25mm pitch. These are industry standards — deviate and nothing will bolt on.

Weight targets

Frame alone: 40-55g. Total all-up weight with battery: 650-750g. Every gram saved on the frame is a gram of battery you can add for more flight time.

Where to download frame files

Don't design from scratch on your first build. Here are proven 3D-printed drone frames:

PecaJosef's 5-inch Frame

Designed specifically for FDM printing with 30x30 stack mounts. Compatible with our parts list. Download on MakerWorld

Vixen Printz 5-Inch FPV

Full frame with 20x20 and 30x30 options. PET-CF rated but works great with PA6-CF. Download on Thangs

noonefpv 2.5" (for a trainer)

Smaller 2.5" frame — great for a first printable quad before the big 5". Lighter motors, cheaper crashes. Download on Thingiverse

Search yourself

Try Printables, Thingiverse, or MakerWorld. Search "5 inch FPV drone frame 3D print PA6-CF". Filter by 30x30 mounts for SpeedyBee compatibility.

03Before You Build

Flight simulator setup

Spend 10-20 hours in a simulator before your first real flight. It will save you $100+ in broken parts and dramatically accelerate your learning.

Liftoff (Steam)

The premium sim. Realistic physics, beautiful tracks, dedicated trainer mode with "trainer throttle" (auto-hover so you learn steering first). ~$25 on Steam. Best overall experience.

Velocidrone

Available on their site (paid). Runs on PC, iPad, Android. Realistic physics, race tracks, community maps. One of the best options for a serious simulator.

Uncrashed

Free on Steam. Lighter on system requirements. Good physics, simple interface. Great if your PC is older.

Connecting RadioMaster Pocket to your simulator

1

USB connection (PC)

  1. Plug your RadioMaster Pocket into your PC via USB-C (use the top data port, not the charging-only port)
  2. The radio will prompt you — select "USB Joystick" or "HID Mode"
  3. On Windows: drivers install automatically. On Mac: may need to install EdgeTX drivers
  4. Open your simulator and select the RadioMaster Pocket as your controller
2

Configure the model in EdgeTX

  1. On the radio, press Menu > Model > create a new model named "Liftoff" or "Sim"
  2. Set Model Type to "Airplane" (quads use the same channel mapping)
  3. Goto Inputs tab — verify your 4 main channels:
    • CH1 (AIL) — Right stick left/right (roll)
    • CH2 (ELE) — Right stick up/down (pitch)
    • CH3 (THR) — Left stick up/down (throttle)
    • CH4 (RUD) — Left stick left/right (yaw)
  4. Set Throttle to 0 to 100 in the Inputs tab — this is critical for Betaflight, the simulator should handle its own calibration
3

Wireless binding (optional — for iPad/tablet)

  1. Connect your RadioMaster Pocket via USB-C to your PC (HID mode works on most platforms without special drivers)
  2. On your tablet: download the simulator and select "Bluetooth Joystick" or the appropriate wireless controller option
  3. Follow the simulator's built-in pairing instructions — the method varies by platform (Velocidrone, Liftoff, etc.)
  4. USB connection remains the most reliable method — use wireless only after you've confirmed everything works wired
4

What to practice

  1. Trainer mode (auto-hover): Learn pitch, roll, and yaw control without worrying about throttle
  2. Manual takeoff and hover: The hardest skill. Get comfortable holding a steady hover
  3. Forward/backward/sideways flight: Controlled movement in all axes
  4. Figure-8s: Combines all axes of control
  5. Acro mode: No self-leveling — every movement is permanent until you correct it. This is what your real drone will fly in
  6. Tunnels and gates: Navigate through obstacles — this is what real FPV flying feels like
🎮
Don't skip this Your first 20 crashes are inevitable. Do them in a simulator where a crash costs zero dollars and zero minutes of repair time. 10 hours in sim = dramatically faster first flights and fewer destroyed parts.
04Assembly

Build your drone

From printed frame to flying machine. Follow these steps in order.

1

Print and prepare the frame

Print your frame with the PA6-CF settings above. Sand rough edges on motor mounts — they need to slide on smoothly. Clean with isopropyl alcohol. Test-fit your motors before gluing or bolting anything down.

2

Mount the motors

Bolt all four motors using the included screws. Motor rotation pattern (looking down):
FL: CCW   FR: CW   RL: CW   RR: CCW
Strip the 3-phase wires (3-4mm) and tin them with solder for clean connections later.

3

Install the FC/ESC stack

Mount the SpeedyBee F405 V4 to the frame center using 20mm nylon standoffs. Use the 4 mounting holes at 25mm pitch. The USB port faces forward. Never use aluminum standoffs — if one touches the underside of the PCB, it shorts and destroys the FC.

4

Solder motor wires to the ESC

Solder each motor's three phase wires to the corresponding ESC output pads (OUT1-OUT4). The phase order doesn't matter initially — you'll swap two wires in Betaflight if a motor spins backwards. Use heat shrink on every joint.

5

Wire the battery input

Solder a silicone wire (14-16AWG) from the battery XT90 connector to the ESC's main power pad (+ and -). Double-check polarity — reverse power = fried ESC. Add a 40-50A fuse on the positive line for safety.

6

Install the DJI O3 Air Unit

Mount the O3 on the front of the frame, facing forward and angled slightly down. Connect its power (4-pin XT30 to the FC's 5V pad — verify your FC's BEC can supply 1.6A) and video cable to the SpeedyBee's built-in DJI port. Secure with zip ties.

7

Bind and install the ELRS receiver

Before mounting: bind the ELRS receiver to your Pocket transmitter using the ELRS Configurator app. Solder to the FC's RX pad (VCC 3.3V/5V, GND, TX, RX — check your FC's pinout). Mount the receiver on the underside of the FC stack.

8

Antenna setup

Screw on the Caddx Happy Plug antennas to the O3 — space them apart for diversity reception. Attach the directional ELRS antenna to your transmitter.
NEVER transmit without antennas connected. You will fry the radio/VTX module in seconds.

9

Cable management

Zip-tie all wires neatly. Motor leads should be slack enough to not strain solder joints when arms flex. Bundle wires together and secure along the frame. Messy cables = short circuits and interference.

10

Final pre-power checks

  1. All solder joints are solid and heat-shrunk
  2. Battery polarity is correct (+ to +, - to -)
  3. Antennas are on both the VTX and radio
  4. No loose wires touching the FC
  5. Motor wires go to the correct ESC outputs

If everything checks out, connect the battery and go configure Betaflight.

⚡
Power on safety checklist Motors should NOT be spinning when you power on (Betaflight has "Motor Stop" enabled by default). If motors spin immediately, disconnect the battery and check your configuration. Props should be OFF during initial power-up and configuration.
05Configuration

Betaflight configurator — step by step

The flight controller runs Betaflight firmware — the software that translates your stick inputs into motor speeds. Here's how to configure it from scratch.

Download Betaflight Configurator (free, works on Windows/Mac/Linux). Connect your FC via USB.

1

Flash firmware

Go to the Configuration tab > click "Build/Release" dropdown > select the latest stable version > Flash Firmware. Your FC will reboot. Disconnect and reconnect USB.

2

Ports tab — enable serial peripherals

  • Serial RX on the UART connected to your ELRS receiver (check your FC manual - typically UART3 or UART6)
  • TELEMETRY FRSKY on the same UART port (required for ELRS CRSF telemetry)
  • Blackbox - if your FC has an SD card slot, it's usually handled automatically. If not, enable on the SD card's UART
  • ESC Serial on the DShot port (enables bidirectional DShot for RPM filtering)
  • Peripherals → MSP DisplayPort on the UART connected to the DJI camera (check board documentation for the correct port)
3

Configuration tab — gyro and motor settings

  • Gyro alignment: 0 degrees (standard mounting). Verify in the Setup tab — the arrow should point to the front of the drone. If not, adjust alignment or rotate the FC.
  • Motor protocol: DShot600 or DShot300. DShot300 is often preferred when using bidirectional DShot/RPM filtering. Check your ESC manual for the recommended setting.
  • Min throttle: leave at default (1070) unless you know why you're changing it
  • Max throttle: leave at default (2000)
  • Click Save
4

Receiver tab — verify stick inputs

  • Power on your RadioMaster Pocket transmitter
  • You should see 4 channels with values moving as you move sticks
  • CH3 (throttle) should read ~1000 at bottom, ~2000 at top
  • If the receiver shows "No Signal," check your solder joints and serial port config
5

Motor direction and order

Remove props first! Go to the Motors tab:

  1. Use the motor diagram in Betaflight to spin each motor one at a time — the diagram shows which output is which, don't guess
  2. Verify rotation: FL=CCW, FR=CW, RL=CW, RR=CCW (looking down)
  3. If a motor spins the wrong direction: use the Betaflight motor direction wizard (gear icon next to the motor) to flip it in software. Only swap two phase wires if the software option isn't available for your ESC firmware
6

OSD (On-Screen Display)

Go to the OSD tab. This is what you'll see in your goggles while flying. Drag widgets to position them:

  • Battery voltage — top corner (most critical info)
  • Flight mode — near voltage (shows ACRO/STABILIZED)
  • Timer — shows elapsed flight time
  • Current / mAh used — shows power consumption
  • Artificial horizon — visual attitude indicator
  • GPS — if you add GPS later (shows speed, altitude, home direction)
7

Failsafe

Go to the Failsafe tab. Configure what happens if you lose the radio signal:

  • Stage 1: For a beginner quad without GPS/rescue, "Drop" is safest — motors cut immediately
  • Stage 2: Also "Drop" (default)
  • Test failsafe on the bench with props removed: arm the drone, then turn off your transmitter — motors should stop within 2 seconds
  • Configure an ARM switch on an AUX channel (Modes tab) — never arm with a stick gesture as your primary method
8

PID Tuning tab — apply a preset

Scroll to the bottom, find Preset Manager > Download Presets. Search for a trusted preset matching a similar build (5-inch 6S quad). Read the preset description and warnings before applying. This gives you a solid starting point — you can fine-tune later (see the PID section below).

Set your flight mode to ACRO — this is the default for FPV. The drone won't self-level; you control every axis manually. Practice this in the simulator first.

9

Save and test

Click Save and Reboot in the bottom-right. Power cycle the drone. With props still off, arm the drone (throttle down-left), then gently push throttle up — motors should spin up smoothly. Verify motor directions one more time. If everything looks good, it's time to hit the simulator until you're ready for the real thing.

📡
Bluetooth tuning The SpeedyBee F405 V4 has built-in Bluetooth. You can configure Betaflight wirelessly from your phone using the SpeedyBee app (iOS/Android) — no USB cable needed. Great for checking battery voltage and doing minor adjustments in the field.
06Control Theory

PID tuning — the mechatronics chapter

Since you're studying mechatronics, you'll appreciate this: the flight controller is running a PID control loop at 8,000 times per second. Here's what that actually means.

The control loop

In Acro/Rate mode, your stick sets a desired angular rate (degrees per second), not an angle. The drone doesn't try to hold a position — it tries to rotate at exactly the rate you command. Release the stick and the drone keeps its current attitude.

The problem? The real world fights back. Wind gusts, motor vibration, propeller flex, and gravity all perturb the drone. The PID loop is the mathematical solution that corrects for all of this, thousands of times per second.

Stick Input (desired rate)
→
Gyro (measured rate)
→
PID Controller
→
Motor Speed Adjustment
→
Actual Rate → Actual Angle
→
Error = Desired − Measured

P — Proportional (stiffness)

P determines how aggressively the drone responds to your stick input. Higher P = snappier, more direct response. Lower P = smoother, more forgiving. If P is too high, the drone will oscillate or jitter. If too low, it will feel sluggish.

I — Integral (the memory)

I corrects persistent disturbances that P alone can't fix. If there's a constant force pushing the drone off its target rate (e.g., wind, propeller torque), I slowly accumulates a correction until the disturbance is cancelled out. Without I, the drone would always have a small bias.

D — Derivative (the damper)

D reacts to the rate of change of error. It's the shock absorber. If the drone is approaching the target angle too fast, D applies counter-pressure to slow it down and prevent overshoot.

Feed Forward (the preview)

Modern Betaflight adds Feed Forward (FF) — it anticipates the motor response based on how fast you moved the stick. FF is what makes a well-tuned drone feel "instant" and responsive. It's the difference between a laggy and a snappy feel.

How to tune (step by step)

1

Start with a trusted preset

Use the Preset Manager in Betaflight to load a profile for a similar quad (5-inch 6S). This gets you 90% of the way there. Read the preset's description and warnings before applying it.

2

Leave the filters alone (at first)

Modern Betaflight (4.3+) uses Dynamic Notch Filtering and RPM filtering by default. These automatically detect and filter out motor vibration frequencies. Use the defaults — incorrect manual filter changes can cause hot motors or desyncs.

3

Check motors after flying

After a test flight, touch each motor. They should be warm, not hot. Hot motors = either too much D-term (amplifying noise) or motor/prop mismatch. If motors are too hot, reduce D-term or check your prop/motor combination.

4

Use the PID sliders for fine-tuning

Betaflight has in-flight PID sliders accessible via the OSD. Adjust P, I, D, and FF by ±5-10% while flying and feel the difference. This is the safest tuning method — no firmware flashes, no guesswork. If the drone feels jittery: reduce D. If it feels sluggish: increase P or FF slightly.

5

Analyze with Blackbox

Enable Blackbox logging (SD card), fly a test session, then analyze the log with Blackbox Explorer. Look at the gyro and PID output graphs. The output should follow the target smoothly, without overshoot or high-frequency noise.

🎓
Mechatronics connection In Acro/Rate mode, your stick sets a desired angular rate (degrees/sec), not an angle. The PID loop runs on rate error: the difference between the desired rate and the actual gyro reading. This is the inner rate loop — it runs at 8kHz on the STM32. An optional outer angle loop (used in Angle/A Horizon modes) produces a rate demand for this inner loop, making it a cascaded PID structure. The whole thing — sensor → estimator → PID → mixer → DShot command — is real-time embedded control theory running on a $70 microcontroller.
07Deep Dive

Sensor fusion — how the drone knows where it is

The flight controller doesn't just read the gyro and go. It combines noisy sensor data into a single, trustworthy attitude estimate using sensor fusion.

The measurement problem

To fly stably, the drone needs to know its attitude — roll, pitch, and yaw angles in 3D space. Every sensor has limitations:

Gyroscope — smooth but drifts over time

The gyro measures angular rate (degrees per second). Integrate this over time to get angle. Problem: even tiny sensor bias accumulates into drift — after minutes, the angle estimate drifts significantly. Smooth short-term, unreliable long-term.

Accelerometer — stable baseline but noisy

The accelerometer measures gravity. When stationary, "down" gives you a stable angle reference. Problem: during acceleration (turning, gusting), the accelerometer mixes gravity with linear acceleration and becomes unreliable. Truthful long-term, jittery short-term.

Magnetometer — absolute heading but noisy

The magnetometer (compass) gives absolute yaw heading — what the gyro can't provide. Problem: motors, batteries, and wires create magnetic interference. Often external (in a GPS module), not used for normal Acro flight.

How Betaflight actually does it

Betaflight uses a more sophisticated attitude estimator than a simple complementary filter. The exact implementation has evolved across versions, but the core idea is the same: trust the gyro for fast changes, correct long-term drift with the accelerometer. The estimator runs at the gyro loop rate (typically 8kHz) and produces a clean, drift-corrected attitude estimate from the noisy sensor data.

If you want to dive into the math, the Betaflight source code (GitHub) has the attitude estimator in the inertial sensing module. It's a real-time state estimator — the same class of algorithm used in robotics, autonomous vehicles, and spacecraft. Betaflight runs this at 8kHz on the STM32's floating-point unit, making it deterministic and real-time.

🎓
Mechatronics connection This is classical state estimation — the same problem solved in navigation, robotics, and autonomous vehicles. The complementary filter is a fixed-gain observer. The Kalman filter is the minimum-variance unbiased estimator (assuming Gaussian noise). In your control systems course, this is the "estimator" paired with the "controller" (PID). Together they form the complete sensor → estimator → controller → actuator loop. Betaflight runs all of this on a $70 STM32F405 microcontroller at 8,000 iterations per second.
08Deep Dive

Motor theory — what makes the props spin

Brushless DC motors, back-EMF, KV ratings, and why DShot beats PWM.

How a BLDC motor actually works

Despite the name, a "brushless DC motor" is actually an AC motor. The stator has three windings (phases A, B, C). The rotor has permanent magnets. The ESC energizes the windings in sequence using six-step (trapezoidal) commutation, creating a rotating magnetic field that the rotor magnets chase. The ESC figures out rotor position using sensorless commutation — measuring the back-EMF voltage induced in the un-energized winding.

ESC applies voltage
→
Current flows through winding
→
Magnetic field generated
→
Rotor magnet follows
→
Back-EMF sensed
→
ESC advances to next phase

KV rating — what it means

KV = RPM per volt applied. A 1900KV motor spins at 19,000 RPM with 10V (no load). This is the inverse of the motor's back-EMF constant (Ke). Higher KV means fewer winding turns, less resistance, more current draw, less torque per revolution.

KVRPM @ 22.2V (6S)WindingCurrentUse Case
950KV21,090Many turns (thick)Low7-10" long range
1700KV37,740ModerateMedium5" long range
1900KV42,180Moderate-fewMedium-high5" all-round
2450KV54,390Few turns (thin)High3-4" freestyle
3400KV75,480Very fewVery high1-2" whoop

DShot vs PWM — why digital matters

PWM (old school)

Pulse Width Modulation sends an analog-like signal by varying pulse width (1000–2000μs). The ESC measures pulse duration and sets throttle. Limitations: susceptible to electrical noise (no error checking), lower update rate (~400Hz), and motor direction requires a separate calibration step at startup.

DShot (current standard)

Sends actual digital bits — a 16-bit value including a CRC checksum. DShot600 transmits at 600,000 bits/sec. Advantages: CRC error detection (corrupted commands are rejected), much higher update rate, deterministic motor direction via configuration (no calibration needed), and bidirectional telemetry in newer versions.

Motor timing and demag compensation

Motor timing is the electrical advance angle the ESC uses — how early it switches to the next phase before the rotor magnet arrives. Higher timing = more power but more heat and risk of demagnetization (the back-EMF creates forces strong enough to temporarily weaken the rotor magnet). Modern ESC firmware (BLHeli_32, AM32) has demag compensation — it detects when demagnetization is starting and adjusts timing automatically. The SpeedyBee F405 V4 uses BLHeli_S firmware with configurable timing via BLHeli Suite.

🎓
Mechatronics connection A BLDC motor is a synchronous machine. The ESC implements six-step trapezoidal commutation with sensorless rotor position detection from back-EMF (the voltage induced in the non-driven winding). The KV rating relates to the back-EMF constant: KV ≈ 1 / (Ke × 60 / 2π). DShot is a serial digital protocol with CRC error detection — similar in principle to UART or CAN bus. Note: some high-end ESCs support FOC (Field-Oriented Control) for smoother operation, but BLHeli_S uses the simpler six-step approach.
09Deep Dive

CAD design — design your own frame

Stop downloading frames and start designing them. This is where mechatronics meets manufacturing.

Software

ToolCostStrengthsExport
Fusion 360Free (personal use)Generative design, stress analysis, parametric modelingSTL, STEP, 3MF
FreeCADFree (open source)Parametric, no subscription, cross-platformSTL, STEP, 3MF
SolidWorks$$ (university license)Industry standard, FEA, advanced surfacingSTL, STEP, IGES
OnshapeFree (public docs)Cloud-based, collaboration, no installSTL, STEP, 3MF

Design workflow for a 5-inch quad

1

Define the envelope

Set your diagonal (190-225mm for 5"), motor mount pattern (20mm 4-hole), and FC mounting area (30x30mm, 25mm pitch). These are constraints — everything else follows from them.

2

Skeleton sketch

Create a 2D sketch of the frame's center lines and mounting hole positions. Use reference geometry to drive the 3D model — this way, changing one dimension updates the entire frame.

3

Model the arms

Extrude or loft the arm profile. Design for print direction — the arm's strongest axis should align with the print layers. For PA6-CF, print the arms so the carbon fibers run along the arm length (the primary load direction).

4

Motor mounts and features

Add the 20mm motor mount with clearance for the motor can (2306 = ~32mm diameter, ~42mm tall). Include drain holes for water (rain crashes happen), grommet bosses for wire routing, and antenna mounts on the top plate.

5

Generative design (optional)

Fusion 360's generative design tool takes your constraints (mount points, load forces, keep-out zones) and generates an organic, topology-optimized structure. The result looks alien but is lighter and stronger than anything you'd design manually. This is the future of drone frame design.

6

Export and print

Export as STL. Slice in Bambu Studio (or the H2C's built-in slicer) with the PA6-CF settings. Print one arm first as a test, check fit, then print the full frame.

Design tips for 3D-printed drone frames

🏗️
Generative design is your superpower Fusion 360's free personal license includes generative design. Define your mount points and expected crash forces, and it generates an organic, topology-optimized structure that can be significantly lighter than a conventional design. It's your to play with for free — Autodesk offers this for personal use.
10Deep Dive

Custom electronics — build your own flight controller

The ultimate mechatronics project: designing the hardware and firmware that flies the drone.

The flight controller PCB — what's on it

Your SpeedyBee F405 V4 costs $70. Let's see what's actually on it:

MCU — STM32F405

ARM Cortex-M4 core, 168MHz, FPU (floating point unit), 1MB Flash, 192KB SRAM. The FPU is critical — it runs the PID math (floating point sin, cos, sqrt) in hardware. Without it, you'd need integer math with fixed-point arithmetic.

Gyro — ICM-42688-P

MEMS gyroscope + accelerometer (IMU). Reads at 8kHz over SPI. The gyro measures angular rate on 3 axes (±2000°/s range). The accelerometer measures acceleration on 3 axes (±16g range). Both feed the sensor fusion algorithm.

Barometer — BMP388

Barometric pressure sensor for altitude estimation. Reads atmospheric pressure to determine height. Not very accurate for short-term altitude control (wind, temperature), but useful for logging and HUD display.

Power regulation

Input: 3S-6S LiPo (12-25V). The board has a switching regulator (buck converter) that produces 5V and 3.3V rails. The 5V rail powers the VTX and receiver. The 3.3V rail powers the MCU, gyro, and logic. Current capacity: ~2A at 5V, ~1A at 3.3V.

Peripherals

USB-C (programming + serial), SD card slot (blackbox logging), LED (arming status), buzzer (audio feedback), OSD chip (ATA24 or MSP2P023 — overlays battery/telemetry onto the DJI video signal), and a 30x30mm mounting hole pattern.

ESC (the stack part)

The 4-in-1 ESC board is a separate PCB stacked underneath. It has 4 motor controllers (each with 3 half-bridges for the 3 motor phases = 12 MOSFETs total), current sensors, and runs BLHeli_S firmware. It receives DShot commands from the FC over dedicated motor signal lines (not SPI) and outputs 3-phase drive to the motors.

Designing your own FC with KiCad

1

Schematic capture

Open KiCad (free, open source). Start with the Betaflight reference design as a starting point. Place symbols for the STM32, IMU, regulators, and connectors. Wire them together following the datasheets. The Betaflight source code has a board definition for every supported FC — you just need to define your pin mappings.

2

PCB layout

Place components on a 30x30mm footprint (standard FC size). Route traces: power traces wide (2-3mm for 5A), SPI traces matched length (critical for high-speed communication), ground plane on the bottom layer (noise reduction). Keep the IMU close to the MCU (short SPI traces = less noise).

3

Generate Gerber files

KiCad exports Gerber (manufacturing) and BOM (Bill of Materials) files. Send them to JLCPCB or PCBWay — they'll manufacture a prototype for ~$5-20 including components.

4

Flash Betaflight

Connect your custom PCB via ST-Link or USB. Flash the Betaflight firmware (it's open source — GitHub). Add your board definition to the Betaflight source, compile, and flash. You now have a flight controller you designed from scratch.

What you'll learn

🎓
Capstone project material Designing your own flight controller PCB and flashing custom firmware is an outstanding mechatronics capstone. It touches every discipline: electrical engineering (PCB design), mechanical engineering (thermal management, mounting), software engineering (embedded C, real-time systems), and control theory (PID, sensor fusion). Bonus points if you add GPS, an OSD, or a custom ESC. The Betaflight community welcomes new board contributions — you could literally add your design to the open-source project.
11Power System

Battery deep dive — LiPo vs Li-ion

The battery is your single biggest lever for flight time. Here's everything you need to know.

LiPo vs Li-ion comparison

LiPo 6S 6000mAhLi-ion 6S 8000mAh
Weight~430g~400g (lighter!)
Flight time12-18 min18-25 min
Cost$45 per pack~$25 to build
Discharge rateVery high (120C)Good (15-30A continuous)
SafetyFire risk if damagedMuch safer
Charging15-30 min (balanced)1-2 hours (slow charge)
Lifecycle~200-300 cycles~500-1000 cycles
Ready to buyYes, off the shelfBuild yourself or buy pre-made

Building a Li-ion battery (Samsung 30Q cells)

If you want 20+ minute flights, Li-ion is the way to go. Samsung 30Q cells are nominally 3000mAh each. A 6S2P pack = 6000mAh total. Continuous current: ~30A per cell × 2 parallel = ~60A continuous. This is an advanced project — see the callout below.

What you need

  • 12x Samsung INR18650-30Q cells ($1.50-2 each from reputable sellers)
  • 1x 6S Li-ion BMS (Battery Management System) — AIO-120 ($30) or LiionAIO ($35)
  • Nickel strip (0.15mm) for spot welding
  • Spot welder (or soldering iron with extreme caution)
  • Shrink wrap, velcro strap, XT90 connector
  • 18650 battery holder template (3D printable)

Build steps

  1. Measure all 12 cells — voltage should be within 0.05V of each other. Discard outliers.
  2. Arrange in 6S2P configuration (2 parallel pairs, connected in series)
  3. Nickel strip the cells (spot weld, don't solder — heat damages cells)
  4. Connect the BMS balance leads to each series connection
  5. Connect BMS power leads to the main pack + and -
  6. Wrap in shrink tubing, add XT90 connector
  7. Do a test charge with your balance charger and verify each cell charges evenly
⚠️
Safety with Li-ion Li-ion cells can catch fire if shorted, overcharged, or damaged. Always use a BMS — never wire cells together without one. Charge slowly (0.5C max — that's 2.5A for a 5000mAh pack). Never charge unattended. If a cell gets hot, swollen, or leaks: stop using it immediately and dispose of it properly.
📦
Pre-made Li-ion packs — recommended for beginners If building a pack sounds daunting, pre-made 6S Li-ion packs are available from several FPV suppliers for $30-50. The AIO-120 pack is the most popular — it includes the cells, BMS, and case. Plug and play.

Battery safety rules (both LiPo and Li-ion)

12Performance

Flight characteristics & expectations

What to expect from this build.

Flight time

15-20 min with 6S 6000mAh LiPo, gentle cruising. Aggressive flying drops to 5-8 min. With Li-ion 6S 8000mAh: 20-25 min cruising. Smooth throttle = longer flights. Stay at 50-70% throttle for optimal efficiency.

Total weight

Target 650-750g all-up weight. The PA6-CF frame (~50g) is lighter than most carbon equivalents. 1900KV motors are efficient at this weight class.

Range

ELRS: 2+ km control range. DJI O3: 1.5-2 km video range with Caddx antennas. You'll lose video before control. Always fly within visual line of sight.

Top speed

100-130 km/h on 5046 props. For speed: 5045 props (lower pitch, higher RPM). For endurance: 5047 (higher pitch, more efficient cruise).

Propeller selection guide

PropSpeedEfficiencyUse Case
HQProp 5045★★★★★★★★☆☆Racing, speed runs
HQProp 5046★★★★☆★★★★☆All-round (default)
HQProp 5047★★★☆☆★★★★★Long-range cruising
HQProp 5043★★★★☆★★★★☆Acro/freestyle tricks
★ = rating out of 5

First flight checklist

13Maintenance

Crash repair & maintenance

You will crash. Here's how to handle it.

Common crash damage (most to least frequent)

Broken propeller

Damage: Chipped or cracked prop.
Fix: Replace. Props are cheap and disposable. Don't fly with a damaged prop — it unbalances the motor and can cause vibration damage.
Cost: ~$2 per prop

Bent motor shaft

Damage: Motor wobbles, prop hits the frame.
Fix: Replace the motor. Don't try to straighten the shaft — the bearing is damaged too.
Cost: ~$18 per motor

Broken arm (3D printed)

Damage: Frame arm cracked or detached from motor mount.
Fix: This is where 3D printing shines. Print a replacement arm in an hour. For emergency field repair: superglue + zip tie gets you home.
Cost: ~$2 in filament

Blown ESC

Damage: Motor doesn't spin on one arm, smoke or burning smell.
Fix: Usually a solder joint cracked loose. Inspect and re-solder. If the ESC is truly blown, replace the stack.
Cost: $0 (solder) to $70 (new stack)

Camera/VTX damage

Damage: No video, blurry image, or intermittent signal.
Fix: Check the video cable connection. If the camera lens is cracked, replace the unit.
Cost: $0-180 depending on damage

Broken antenna

Damage: Antenna snapped off (very common).
Fix: Screw on a replacement. Always carry spares.
Cost: ~$2-5 per antenna

3D printing advantage

🖨️
Why 3D printing wins for crashes With a carbon fiber frame, a broken arm means ordering a replacement part (3-7 day wait, $20-40). With a 3D-printed frame, you print a replacement in 2-4 hours for ~$2 in filament. The H2C can print overnight and you're flying again the next day. This is the single biggest advantage of 3D-printed frames.

Post-flight maintenance

Emergency field repair kit

Carry this in your flying bag:

Essentials

  • Spare propellers (2 sets)
  • Spare VTX antenna
  • Small hex driver set
  • Zip ties (assorted sizes)
  • Superglue (CA adhesive)
  • Heat shrink + lighter
  • Spare solder joints repair wire
  • Multimeter

Backup plan

  • Spare battery (fully charged)
  • Portable charger (ISDT NanoPro works)
  • Replacement motor (1 spare)
  • Phone power bank
  • ELRS mobile configurator (phone app)
  • First aid kit (for your fingers — solder burns happen)
15Resources

Learn more

The best guides, tutorials, and communities.

Oscar Liang — oscarliang.com

The bible of FPV. Every component explained in detail with specific product recommendations. Start here for any question. His guides on PID tuning, Li-ion batteries, and drone builds are the best free resources available.

Joshua Bardwell — YouTube

The most trusted reviewer in FPV. Honest, detailed reviews with actual testing. His "Top 5" lists for motors, flight controllers, and batteries are the industry reference.

IntoFPV — intofpv.com

Active community of FPV builders and pilots. Search for answers, post your build for feedback. The "What to buy" guides are excellent for beginners.

Betaflight Docs — betaflight.com

Official documentation. Covers configuration, PID tuning, failsafe setup, filters, and advanced features. The PID Tuning Guide is particularly good.

Chris Rosser — YouTube

Deep-dive technical content. His PID tuning explanation is the best video on the topic. Also covers ESC timing, motor theory, and flight controller internals — perfect for a mechatronics student.

r/fpv — Reddit

Large, active subreddit. Great for asking specific questions, showing off builds, and getting troubleshooting help. The weekly "Help Me Choose" threads are goldmines of advice.

Tools & software

ToolWhat it doesLink
Betaflight ConfiguratorConfigure your flight controllerbetaflight.com
ELRS ConfiguratorBind receivers, tune radio settingsexpresslrs.org
Blackbox ExplorerAnalyze flight logs for tuningGitHub
LiftoffFlight simulator (paid)Steam
VelocidroneFlight simulator (paid)velocidrone.com
EdgeTXRadio firmware & ground stationedgetx.org
Blender / Fusion 360Design custom 3D printed partsblender.org / fusion.autodesk.com
↑