3D-printed carbon fiber frame, 15-20 min flights, $500-750. From simulator to sky — every step, every component, every concept explained.
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 |
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.
Your H2C is perfectly set up for carbon fiber nylon. Here's what you need to know about materials, settings, and finding a design.
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.
| Material | Strength | Weight | Heat Resist | Impact | Verdict |
|---|---|---|---|---|---|
| PA6-CF | ★★★★★ | Light | High (85°C Tg) | Excellent | Best choice |
| PETG-CF | ★★★☆☆ | Light | Medium | Good | Budget option |
| PLA | ★★☆☆☆ | Light | Low (60°C Tg) | Poor (brittle) | Avoid |
| ABS | ★★★☆☆ | Medium | Medium | Good | OK but heavy |
| ASA | ★★★☆☆ | Medium | Medium-High | Good | Sun-resistant |
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.
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.
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.
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.
Don't design from scratch on your first build. Here are proven 3D-printed drone frames:
Designed specifically for FDM printing with 30x30 stack mounts. Compatible with our parts list. Download on MakerWorld
Full frame with 20x20 and 30x30 options. PET-CF rated but works great with PA6-CF. Download on Thangs
Smaller 2.5" frame — great for a first printable quad before the big 5". Lighter motors, cheaper crashes. Download on Thingiverse
Try Printables, Thingiverse, or MakerWorld. Search "5 inch FPV drone frame 3D print PA6-CF". Filter by 30x30 mounts for SpeedyBee compatibility.
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.
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.
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.
Free on Steam. Lighter on system requirements. Good physics, simple interface. Great if your PC is older.
Menu > Model > create a new model named "Liftoff" or "Sim"Inputs tab — verify your 4 main channels:
0 to 100 in the Inputs tab — this is critical for Betaflight, the simulator should handle its own calibrationFrom printed frame to flying machine. Follow these steps in order.
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.
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.
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.
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.
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.
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.
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.
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.
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.
If everything checks out, connect the battery and go configure Betaflight.
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.
Go to the Configuration tab > click "Build/Release" dropdown > select the latest stable version > Flash Firmware. Your FC will reboot. Disconnect and reconnect USB.
Remove props first! Go to the Motors tab:
Go to the OSD tab. This is what you'll see in your goggles while flying. Drag widgets to position them:
Go to the Failsafe tab. Configure what happens if you lose the radio signal:
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.
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.
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.
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.
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 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 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.
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.
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.
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.
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.
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.
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.
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.
To fly stably, the drone needs to know its attitude — roll, pitch, and yaw angles in 3D space. Every sensor has limitations:
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.
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.
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.
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.
Brushless DC motors, back-EMF, KV ratings, and why DShot beats PWM.
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.
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.
| KV | RPM @ 22.2V (6S) | Winding | Current | Use Case |
|---|---|---|---|---|
| 950KV | 21,090 | Many turns (thick) | Low | 7-10" long range |
| 1700KV | 37,740 | Moderate | Medium | 5" long range |
| 1900KV | 42,180 | Moderate-few | Medium-high | 5" all-round |
| 2450KV | 54,390 | Few turns (thin) | High | 3-4" freestyle |
| 3400KV | 75,480 | Very few | Very high | 1-2" whoop |
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.
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 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.
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.
Stop downloading frames and start designing them. This is where mechatronics meets manufacturing.
| Tool | Cost | Strengths | Export |
|---|---|---|---|
| Fusion 360 | Free (personal use) | Generative design, stress analysis, parametric modeling | STL, STEP, 3MF |
| FreeCAD | Free (open source) | Parametric, no subscription, cross-platform | STL, STEP, 3MF |
| SolidWorks | $$ (university license) | Industry standard, FEA, advanced surfacing | STL, STEP, IGES |
| Onshape | Free (public docs) | Cloud-based, collaboration, no install | STL, STEP, 3MF |
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.
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.
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).
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.
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.
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.
The ultimate mechatronics project: designing the hardware and firmware that flies the drone.
Your SpeedyBee F405 V4 costs $70. Let's see what's actually on it:
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.
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.
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.
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.
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.
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.
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.
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).
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.
The battery is your single biggest lever for flight time. Here's everything you need to know.
| LiPo 6S 6000mAh | Li-ion 6S 8000mAh | |
|---|---|---|
| Weight | ~430g | ~400g (lighter!) |
| Flight time | 12-18 min | 18-25 min |
| Cost | $45 per pack | ~$25 to build |
| Discharge rate | Very high (120C) | Good (15-30A continuous) |
| Safety | Fire risk if damaged | Much safer |
| Charging | 15-30 min (balanced) | 1-2 hours (slow charge) |
| Lifecycle | ~200-300 cycles | ~500-1000 cycles |
| Ready to buy | Yes, off the shelf | Build yourself or buy pre-made |
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 to expect from this build.
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.
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.
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.
100-130 km/h on 5046 props. For speed: 5045 props (lower pitch, higher RPM). For endurance: 5047 (higher pitch, more efficient cruise).
| Prop | Speed | Efficiency | Use Case |
|---|---|---|---|
| HQProp 5045 | ★★★★★ | ★★★☆☆ | Racing, speed runs |
| HQProp 5046 | ★★★★☆ | ★★★★☆ | All-round (default) |
| HQProp 5047 | ★★★☆☆ | ★★★★★ | Long-range cruising |
| HQProp 5043 | ★★★★☆ | ★★★★☆ | Acro/freestyle tricks |
You will crash. Here's how to handle it.
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
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
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
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)
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
Damage: Antenna snapped off (very common).
Fix: Screw on a replacement. Always carry spares.
Cost: ~$2-5 per antenna
Carry this in your flying bag:
Before you fly, make sure you're compliant with local regulations.
This build exceeds 250g — most drone regulations apply. Register with your local aviation authority (FAA in US, CAA in UK, Transport Canada, etc.). You'll need to display your registration number on the drone.
Stay below 120m (400ft). Never fly near airports, helipads, or controlled airspace without authorization. Check airspace with apps like OpenSky (EU/UK) or an FAA-approved airspace awareness service (US). B4UFLY was retired by the FAA in 2024 — use the FAA's current list of approved services.
Keep the drone in visual line of sight (VLOS) at all times. FPV goggles give you first-person view, but you still need a visual observer or must see the drone with your own eyes. Many jurisdictions require this.
Never fly over people, crowds, or private property without permission. Maintain safe distances from buildings, vehicles, and wildlife. Consider third-party liability insurance.
The best guides, tutorials, and communities.
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.
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.
Active community of FPV builders and pilots. Search for answers, post your build for feedback. The "What to buy" guides are excellent for beginners.
Official documentation. Covers configuration, PID tuning, failsafe setup, filters, and advanced features. The PID Tuning Guide is particularly good.
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.
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.
| Tool | What it does | Link |
|---|---|---|
| Betaflight Configurator | Configure your flight controller | betaflight.com |
| ELRS Configurator | Bind receivers, tune radio settings | expresslrs.org |
| Blackbox Explorer | Analyze flight logs for tuning | GitHub |
| Liftoff | Flight simulator (paid) | Steam |
| Velocidrone | Flight simulator (paid) | velocidrone.com |
| EdgeTX | Radio firmware & ground station | edgetx.org |
| Blender / Fusion 360 | Design custom 3D printed parts | blender.org / fusion.autodesk.com |