Skip to content

Cinematic 6" ArduPilot with GoPro — build guide

Summary

Formerly "Pro." Non-acro, ArduPilot, HDZero, TBS Source One V6 7" DC frame flown on 6" props, GoPro Mission 1 Pro payload. Built for nature and skatepark video and family footage, not racing. Flown manually, like Betaflight — ArduPilot is wired with the planning option (MAVLink, QGroundControl) available, not because missions are the default way of flying this. This is the single source of truth for this build, written as a kit-assembly manual: fifteen chapters, one physical action per numbered step, a gate at the end of every chapter. Generic procedures (soldering discipline, firmware flashing, radio and video setup, checks, maiden) are linked, not repeated.


Concept

How to read this guide

This is a skeleton in the corpus sense: prose plus links. What makes it long is the mechanical detail that exists only on this frame — nothing else in the corpus needs "how the TBS Source One V6 bolts together," so that is written out here in full. Every other build stage links to the atom that owns the topic. If a fact here and the atom it links to ever disagree, the atom is right and this guide needs updating.

Conventions, used the same way in every chapter:

  • One action, one step. "Insert the screw" and "tighten the screw" are two steps. If a step makes you do two things, it's a bug in the guide.
  • Every chapter opens with Tools and Parts and closes with a Gate — the state the build must be in before the next chapter starts. A failed gate means stop, not continue and fix later.
  • Fasteners are named diameter × length in mm: M3×10 is a 3 mm thread, 10 mm long, measured under the head. Measure, don't sort by eye — M3×10, M3×12 and M3×14 are near-indistinguishable in a pile.
  • Loctite 243 goes on every metal-to-metal threaded joint unless the step says otherwise. One drop on the lower third of the thread. Never on anything that threads into plastic, never on grommets, never on prop nuts.
  • Where a step says "per [[atom-id]]" — open the atom and follow its procedure at that point. This guide tells you when; the atom tells you how.

Markers

Three markers flag work that can only be finished at the bench with the real parts. They are deliberately plain text so they survive both Obsidian and MkDocs and can be found with one search:

  • [PHOTO n.m] — a photo of the physical state after step n.m is needed. The text after the marker says what the shot must show.
  • [DIAGRAM n.m] — a drawing (not a photo) is needed: wiring, pinout, orientation.
  • [VERIFY] — a value this guide cannot state honestly without the part in hand or the TBS drawing open. Measure it, write it in, delete the marker.

To list what's still open: grep -n "\[PHOTO\|\[DIAGRAM\|\[VERIFY" skeletons/sk-cinematic-6in-ardupilot-gopro.md


Reference

Prerequisites

  • Frame: TBS Source One V6 7" DC — bought, not printed. 313 mm wheelbase, 6 mm arms, 30.5/20 mm stack pattern, 16/19 mm M3 motor pattern, 20 × 20 mm M2 VTX mount. Kit: plates, camera plates, 4 arms, arm spacer, 16× M3×10, 4× M3×12, 4× M3×14, 22 mm and 30 mm standoffs, 8 press nuts. No parametric model, no coupon validation; that workflow belonged to the dropped printed-frame catalog.
  • FC: Matek H7A3-SLIM, ArduPilot only (target MatekH7A3, 4.6+). 36 × 36 mm, 30.5 mm pattern with Φ4 holes for M3 grommets.
  • ESC: Pilotix 75A AM32 4-in-1 — 44.5 × 40.5 mm, 30.5 mm (M3). Ships with a 1000 µF 35 V capacitor, XT60 lead, M3×30 screws, soft mounts.
  • Motors: BrotherHobby Avenger V2 2507 1750KV ×4 (16 × 16 mm M3).
  • VTX/cam: HDZero Freestyle V2 VTX + Nano 90 V2 camera + MIPI cable.
  • GPS: Matek M10Q-5883.
  • RX: RadioMaster RP2 (ELRS).
  • Battery: Tattu R-Line V3 1800 mAh 6S XT60.
  • Props: HQProp 6×2.5×3 (default with GoPro), 6×3×3 (without payload).
  • Payload: GoPro Mission 1 Pro on a TPU mount — not a GX12 connector. A printed GX12 mast is planned for the next iteration (see the private proposal note); this build doesn't have one yet.

Printed parts

Part Material Source Chapter
SO1-V6-AN-Cam-Mount.stl (HDZero Nano 90 V2, 19 mm bracket) TPU TBS source_one repo, v6 9
SO1-V6-GoPro-Mount.stl (36 × 32 × 19 mm, Hero-sized — stopgap) TPU TBS source_one repo, v6 10
VTX antenna holder (HDZero U.FL may need its own) TPU TBS repo or own 9
GPS mount PETG/ASA own [VERIFY] — design not yet fixed 10

Tools (whole build)

Tool Used in chapters
Hex drivers 1.5 / 2.0 / 2.5 mm (M2, M3 button head, M3 socket head) 2–4, 8–10
Digital calipers with depth rod 1, 3, 4
Bench vise with soft jaws (or arbor press) 2
Soldering iron ≥ 80 W with a chisel tip for power pads, fine tip for signal 5–7
Flux, 60/40 or SAC solder, solder wick, heat-shrink, side cutters, strippers 5–7
Loupe or USB microscope 6, 7, 11
Multimeter with continuity beeper 5, 7, 13, 14
VIFLY ShortSaver V2 (smoke stopper) 14
JST-SH pin-extraction tool (or a fine needle) 7
8 mm prop wrench (M5 prop nuts) 15
Kitchen scale, 1 g resolution 10
Loctite 243, IPA, cable ties, kapton tape, paint pen throughout

Fastener map

Fill in from the TBS assembly drawing in chapter 1 before any fastener goes in. Cells marked [VERIFY] are not known from the kit list alone.

Location Fastener Qty Loctite
Motor → arm M3×10 (kit) — after depth check in chapter 4 16 Yes
Arm clamp through bottom plate / arm spacer M3×12 and/or M3×14 [VERIFY] which where 8 [VERIFY] Yes
Body standoffs → bottom plate [VERIFY] [VERIFY] Yes
Top plate → standoffs [VERIFY] [VERIFY] No until after maiden (top plate comes off repeatedly during commissioning)
Stack ESC-supplied M3×30 + M3 locknuts [VERIFY] — locknuts not in either kit list 4 No — grommets
VTX → 20 × 20 mount M2 [VERIFY] length, not in frame kit 4 No
Camera plates / TPU camera mount [VERIFY] [VERIFY] [VERIFY]
GoPro TPU mount → top plate [VERIFY] [VERIFY] No — into TPU

No torque values are given: the only torque atom ([[bolt-torque-reference]]) is deprecated with the printed frame. Until a CF-frame torque reference exists, tighten to snug and record what you used.

Values to record

Copy into the build log as you go — later chapters depend on them.

Value Recorded in step Needed in chapter
Body standoff height chosen (22 or 30 mm) 3.12 3
Motor base thread depth; screw protrusion 4.1–4.3 4
ESC output (M1–M4) → physical motor position 6.10 14
ESC ↔ FC harness pin map 7.2 7
UART assignment: RX, GPS, VTX (MSP) 7.5 13
GPS mount position and arrow direction 10.5 13
AUW with and without GoPro 10.14–10.15 acceptance
Firmware version flashed 12.4 —

Risks — read before you start

Pulled together from across the whole build, because the rest of this guide is too long to hold in working memory mid-build.

Can damage hardware if missed: - VTX on 6S directly. HDZero VTX takes 7–25 V regulated, never straight off the pack — wire it from the H7A3-SLIM's own switchable BEC (9 V / 2 A). See voltage-regulation. Step 13.19 measures the pad before the VTX is ever plugged in. - VTX powered without an antenna. Antenna on before any power — step 9.9. - ESC JST-SH pin order vs H7A3-SLIM. Not guaranteed to agree on pin 1 — ring out by hand before first connect (step 7.1). See electronics-installation. - Motor screws into windings. Kit's M3×10 screws are unverified against this motor's winding depth — measured in steps 4.1–4.3 before any screw goes in with Loctite. - Second capacitor fitted redundantly. The ESC ships with its own — fit that one, not the optional Panasonic as well. See capacitor-placement-emc. - Press nuts hammered into CF. Press them, don't strike them — impact delaminates the plate around the hole (step 2.5).

Safety risks (physical): - Props on during any bench power-up until motor direction and order are confirmed. Props go on in chapter 15, not before. - LiPo handling generally — see lipo-batteries for charging, storage, and post-crash inspection. - First hop — deliberately the last and smallest step, not one to compress. See maiden-flight.

Can silently fail: - Bidirectional DShot not actually enabled. The notch filter depends on it for RPM data; if it's off, the filter just quietly does nothing. See dshot-protocol. Step 14.12 confirms RPM telemetry is live on all four motors. - ELRS model match set inconsistently. A receiver bound under the wrong model ID reports a successful bind, then fails to connect once model match is enabled. See elrs-mavlink-mode. - UART assignment taken from an old document. This build follows ArduPilot's board defaults as set out in ardupilot-commissioning: ELRS on UART2, GPS on UART3, VTX DisplayPort on UART1. The deprecated Betaflight-era wiring reference has RX and GPS the other way round — don't wire from it. - Arming checks and failsafe left at default without ever being tested. See pre-flight-check and ardupilot-failsafe.

Low stakes, worth knowing: - GoPro Mission 1 Pro mount is sized for a Hero and flagged as a stopgap — flex it by hand before trusting it in the air (step 10.11). - HDZero VTX/goggle firmware mismatch costs a troubleshooting session a version check up front would avoid. See hdzero-video-link-setup.

Session plan

A first build on this stack runs roughly 12–18 hours, split across sessions rather than one sitting.

Session Chapters Time Note
1. Preparation and frame 1–3 ~2.5h No soldering, safe to interrupt. Printed parts can run in parallel
2. Motors and power wiring 4–6 ~3.5–4h Highest-risk session — uninterrupted block only
3. FC wiring and stack 7–8 ~2h Harness ring-out first, not last
4. Mounts, top plate, payload 9–11 ~2h + coating cure Printed parts ready beforehand
5. Firmware and configuration 12–13 ~3h+ TX16S and goggles charged; DFU fallback may add time
6. First power-up and props 14–15 ~1.5–2h Only on a day you're not rushed at the end of it

Preventive checks specific to this build

# Check Step
1 Pilotix footprint clears body standoffs — confirmed in hand 3.6
2 FC + ESC + grommets fit stack height 3.10–3.12
3 ESC JST-SH pin order rung out by hand before first connect 7.1–7.3
4 Motor screws (M3×10) don't reach into windings 4.1–4.3, 4.11
5 GoPro TPU mount flex-tested with the actual Mission 1 Pro, not assumed from the Hero-sized STL 10.11
6 HDZero Nano 90 V2 fits the camera plates 9.3
7 9 V BEC pad measured before VTX is connected 13.19

Procedure

1. Preparation

Tools: calipers, paint pen, printer. Parts: frame kit, all electronics, filament (TPU, PETG/ASA).

  1. Unpack the frame kit onto a tray, not onto the bench — press nuts and M3 screws roll. [PHOTO 1.1] full kit laid out, every part visible.
  2. Count the fasteners against the kit list: 16× M3×10, 4× M3×12, 4× M3×14, 8 press nuts, 22 mm and 30 mm standoffs. Note anything short.
  3. Measure one screw from each length group with calipers, under the head.
  4. Sort the screws into labelled cups by measured length.
  5. Open the TBS assembly drawing (So1-V6-7inDC-2025-JUL-07.dxf, TBS source_one repo v6) and print the plate outlines at 1:1.
  6. Lay each plate on its 1:1 print to identify it: bottom plate, top plate, arm spacer, camera plates.
  7. Fill in the Fastener map in Reference from the drawing. Anything the drawing doesn't settle stays [VERIFY] until the part is in hand.
  8. Mark FRONT with the paint pen on the underside of the bottom plate (camera-plate end). [PHOTO 1.8] marked bottom plate.
  9. Print SO1-V6-AN-Cam-Mount.stl in TPU.
  10. Print SO1-V6-GoPro-Mount.stl in TPU.
  11. Print the VTX antenna holder in TPU.
  12. Print the GPS mount in PETG or ASA (ASA preferred for summer sun).
  13. Optional: seal the CF plate edges. Wet-sand, never dry — CF dust is a respiratory hazard — then a thin wipe of thin CA along cut edges that will touch wires.

Gate: every part identified, fastener map filled in as far as the drawing allows, printed parts done or printing.

2. Frame assembly

Tools: vise with soft jaws, 2.0/2.5 mm hex drivers, Loctite 243. Parts: bottom plate, 4 arms, arm spacer, 8 press nuts, arm-clamp screws (M3×12 / M3×14 per fastener map).

  1. Place the bottom plate FRONT-mark down, FRONT end away from you.
  2. Identify the 8 press-nut holes on the drawing [VERIFY] positions and which face the nut enters from. [DIAGRAM 2.2] plate outline with press-nut holes and entry face marked.
  3. Insert the first press nut into its hole from the entry face.
  4. Put the plate in the vise with the nut against one soft jaw and a flat, clear surface against the other.
  5. Press the nut home with steady vise pressure. Never a hammer — impact delaminates CF around the hole.
  6. Check the nut is flush and square to the plate. [PHOTO 2.6] seated press nut, side view.
  7. Repeat 2.3–2.6 for the remaining seven press nuts.
  8. Lay the four arms on the bottom plate in their positions. [VERIFY] whether the DC arms are handed or interchangeable.
  9. Place the arm spacer over the arm roots. [PHOTO 2.9] arms and spacer in place, no screws yet.
  10. Insert the arm-clamp screws finger-tight, all of them, before tightening any.
  11. Check alignment: arms seated in their locating features, no rocking.
  12. Remove one screw.
  13. Apply Loctite 243 to that screw.
  14. Reinsert it finger-tight.
  15. Repeat 2.12–2.14 for every arm-clamp screw.
  16. Tighten in diagonal order — front-left, rear-right, front-right, rear-left — to snug.
  17. Check each arm by hand for play at the tip: none. [PHOTO 2.17] assembled arm base from above.

Gate: four arms clamped, no play, Loctite on every arm screw.

3. Stack dry-fit and body standoffs

No soldering, no Loctite on the stack. The goal is two answers: does the ESC fit the bay, and which standoff height does the stack need.

Tools: calipers, hex drivers. Parts: Pilotix ESC, H7A3-SLIM, ESC M3×30 screws and soft mounts, FC M3 grommets, 22 mm and 30 mm standoffs.

  1. Push the four M3 grommets into the H7A3-SLIM's Φ4 mounting holes.
  2. Fit the ESC's soft mounts to the ESC mounting holes.
  3. Insert the four M3×30 screws through the bottom plate's 30.5 mm stack holes [VERIFY] from below, heads under the plate.
  4. Lower the ESC onto the screws, XT60 pads toward the rear [VERIFY] against the ESC's motor-pad layout.
  5. Stand two body standoffs loosely in their holes nearest the ESC.
  6. Measure clearance from each ESC board edge to the nearest standoff with calipers. Drawing analysis says ~3 mm; confirm in hand. [PHOTO 3.6] ESC in bay with the tightest gap visible.
  7. Decide the ESC–FC spacing — enough for the harness plug and its cable bend. [VERIFY] whether spacers are needed; none are in either kit list.
  8. Lower the H7A3-SLIM onto the screws, arrow forward.
  9. Thread nuts on finger-tight — enough to hold, grommets uncompressed.
  10. Measure stack height from the bottom plate's top face to the highest point: FC top, tallest component, or a plugged connector with its cable bend.
  11. Compare with 22 mm and 30 mm standoffs. The shortest one that clears the stack with margin wins.
  12. Record the choice in Values to record. [PHOTO 3.12] stack beside the chosen standoff, side view.
  13. Check USB-C access: with a standoff standing in, confirm a cable will reach the FC port once the top plate is on.
  14. Remove the nuts, FC and ESC. Leave the grommets in the FC.
  15. Remove the two loose standoffs.
  16. Apply Loctite 243 to the first body standoff's lower thread or screw [VERIFY] which side the standoff fixes from.
  17. Fit the first standoff to the bottom plate, snug.
  18. Repeat 3.16–3.17 for every body standoff.

Gate: ESC fit confirmed, standoff height decided and fitted, stack parts back in their bags.

4. Motors

Tools: calipers with depth rod, 2.0/2.5 mm hex driver, torch. Parts: 4× Avenger V2 2507, 16× M3×10, Loctite 243.

  1. Measure the thread depth of one motor-base M3 hole with the caliper depth rod. Record.
  2. Measure the arm thickness at the motor mount (nominal 6 mm). Record.
  3. Calculate protrusion: 10 mm − arm thickness. It must be clearly less than the thread depth. If it isn't, stop and source shorter screws — don't grind the kit ones.
  4. Place motor 1 on the front-right arm, using the 16 mm hole pattern (not 19 mm), wires pointing inward along the arm.
  5. Insert one M3×10 dry, finger-tight.
  6. Check how it stops: by its head against the arm, not by its tip. A screw that stops before its head seats is bottoming out — stop.
  7. Remove that screw.
  8. Apply Loctite 243 to all four screws for this motor.
  9. Insert the four screws finger-tight.
  10. Tighten in cross order to snug.
  11. Spin the bell by hand and look through the bell with a torch: free rotation, no scraping, no screw tip visible near the windings. [PHOTO 4.11] view into the motor, screw tips vs windings.
  12. Repeat 4.4–4.11 for motor 2 (rear-left), motor 3 (front-left) and motor 4 (rear-right) — ArduPilot Quad X numbering. [DIAGRAM 4.12] top view: motor numbers, positions, spin directions (1 and 2 CCW, 3 and 4 CW).

Gate: four motors mounted, all spin freely, no screw near a winding.

5. ESC power preparation (bench, off frame)

Capacitor-first, per electronics-installation. How to fit the cap is in capacitor-placement-emc; this chapter only adds what's specific to this ESC. Wire gauges: wire-gauge-selection.

Tools: iron with chisel tip, flux, multimeter. Parts: Pilotix ESC, its 1000 µF 35 V capacitor and XT60 lead, SMBJ28A TVS diode.

  1. Fit the ESC-supplied 1000 µF capacitor to the VBAT/GND pads per capacitor-placement-emc. Not the optional Panasonic as well. [PHOTO 5.1] cap flat on the board, polarity visible.
  2. Identify the TVS cathode band on the SMBJ28A (unidirectional).
  3. Solder the TVS across VBAT and GND, cathode band to VBAT+.
  4. Hold the ESC in its bay position and measure how far the XT60 lead has to run to exit the frame at the rear. [VERIFY] exit point.
  5. Cut the XT60 lead to that length plus service slack — shortest that works.
  6. Tin both lead ends.
  7. Solder red to VBAT+.
  8. Solder black to GND.
  9. Check polarity with the multimeter from XT60 pins to pads.
  10. Check for a short VBAT to GND: reading should start low and climb as the capacitor charges, not sit at zero.
  11. Secure the cap body per capacitor-placement-emc. [PHOTO 5.11] finished power side of the ESC.

Gate: cap, TVS and XT60 on, polarity and no-short checks passed.

6. ESC on frame, motor phase wiring

Route before you solder, per electronics-installation — the sequence and joint-inspection criteria live there.

Tools: iron, fine tip, strippers, cable ties, loupe. Parts: prepared ESC, M3×30 stack screws and soft mounts.

  1. Seat the ESC on its screws and soft mounts in the bay, not nutted.
  2. Route motor 1's three wires along the arm to the ESC's nearest motor pad group [VERIFY] over or under the arm.
  3. Twist the three wires along their run.
  4. Mark the cut point leaving enough slack to lift the ESC ~10 mm off its screws for service.
  5. Cut the three wires at the mark.
  6. Strip 2 mm from each wire end.
  7. Tin the wire ends.
  8. Tin the three pads.
  9. Solder the three wires — any order; direction is fixed in chapter 14.
  10. Record which ESC output (M1–M4 as printed on the board) this motor went to.
  11. Inspect the three joints under the loupe per electronics-installation.
  12. Repeat 6.2–6.11 for motors 2, 3 and 4. [PHOTO 6.12] all four motors wired, routing visible.
  13. Cable-tie each motor's bundle at the arm root — no strain on the pads.

Gate: 12 joints inspected, ESC output → motor position recorded.

7. FC wiring (bench)

Connections, cable routing, grounding and EMC discipline: electronics-installation, star-grounding, twisted-pairs, ferrite-beads. Wire gauges: wire-gauge-selection. UART assignment: ardupilot-commissioning.

Tools: multimeter, pin-extraction tool, fine-tip iron, loupe. Parts: H7A3-SLIM, ESC–FC JST-SH harness, 100 µF MLCC, RP2, M10Q-5883, HDZero VTX power/UART lead.

  1. Ring out the ESC–FC harness: for each wire, beep from the ESC-side pin to the FC-side pin.
  2. Write the pin map against both boards' published pinouts — function at each end (VBAT, GND, CURR, TLM, M1–M4). [DIAGRAM 7.2] side-by-side pinout, ESC vs FC, mismatches marked.
  3. If any function mismatches, re-pin the FC-side housing with the extraction tool. Don't cut and splice.
  4. Fit the 100 µF MLCC across the FC 5 V rail per capacitor-placement-emc.
  5. Confirm the UART assignment from ardupilot-commissioning — RX on UART2, GPS on UART3, VTX on UART1 — and record it. If you use a different pad for anything, chapter 13 must match what you soldered. [DIAGRAM 7.5] FC pad map as actually wired.
  6. Bind the RP2 before it goes in, per elrs-mavlink-mode and electronics-installation.
  7. Solder RP2 5 V and GND to the FC.
  8. Solder RP2 TX to the FC UART RX, RP2 RX to the FC UART TX.
  9. Solder M10Q 5 V and GND to the FC — GPS ground via the FC, never a separate wire to the ESC.
  10. Solder M10Q TX/RX to its UART, crossed as in 7.8.
  11. Solder M10Q SDA/SCL to the FC I²C pads (compass).
  12. Solder the VTX power lead to the switchable 9 V BEC pad and GND. Do not plug the VTX in — that waits for step 13.19.
  13. Solder the VTX UART (MSP DisplayPort) TX/RX.
  14. Inspect every joint per electronics-installation. [PHOTO 7.14] FC top and bottom, all wires on.

Gate: pin map matches both ends, UART assignment recorded, VTX still unplugged.

8. Stack final assembly

Tools: hex driver, cable ties. Parts: wired FC, stack nuts.

  1. Route every FC cable to its final destination before anything is tightened, per electronics-installation.
  2. Plug the harness into the ESC.
  3. Lower the FC onto the screws, arrow forward, harness side toward its ESC connector.
  4. Plug the harness into the FC.
  5. Thread the four nuts on.
  6. Tighten until the grommets just start to bulge — then stop. Crushed grommets isolate nothing.
  7. Check the FC underside touches nothing on the ESC.
  8. Bundle power wiring on one side, signal wiring on the other, per electronics-installation. [PHOTO 8.8] stack from both sides, separated bundles visible.

Gate: stack bolted, grommets free, power and signal bundles separated.

9. Camera and VTX

Link setup is in hdzero-video-link-setup; this chapter is mechanical only.

Tools: 1.5/2.0 mm hex drivers. Parts: Nano 90 V2 with 19 mm bracket, TPU camera mount, camera plates, VTX, MIPI cable, VTX antenna and holder, M2 screws.

  1. Fit the Nano 90 V2 into the TPU camera mount.
  2. Fit the mount between the camera plates.
  3. Check fit — this is open check 6. [PHOTO 9.3] camera in plates, front three-quarter view.
  4. Set a starting uptilt and note it; step 10.12 matches the GoPro to it. [VERIFY] starting angle.
  5. Fix the VTX to the 20 × 20 mm M2 mount [VERIFY] position on the frame.
  6. Route the MIPI cable from camera to VTX, away from phase wires, no sharp folds.
  7. Seat the MIPI connector at the camera.
  8. Seat the MIPI connector at the VTX, latch closed.
  9. Connect the VTX antenna (U.FL). No power to the VTX without an antenna, ever.
  10. Fit the antenna holder and route the antenna away from where the GPS will sit. [PHOTO 9.10] VTX, MIPI and antenna routing.
  11. Position the RP2 with its antenna clear of carbon and power wiring [VERIFY] location.

Gate: camera, VTX, MIPI and both antennas fixed; nothing touches a prop arc.

10. Top plate, GPS, battery, GoPro

Tools: hex drivers, scale. Parts: top plate, GPS mount, battery pad, 2 battery straps (20 × 250 mm), TPU GoPro mount, GoPro Mission 1 Pro, lanyard.

  1. Lower the top plate onto the standoffs.
  2. Fit its screws — no Loctite yet (see Fastener map).
  3. Tighten diagonally to snug.
  4. Choose the GPS position: no carbon above the patch, away from the battery lead, ESC and VTX antenna — constraints in gps-antenna-placement.
  5. Fix the GPS mount there and the M10Q on it, arrow forward. Record position and arrow direction.
  6. Stick the anti-slip pad on the top plate.
  7. Thread the first battery strap through its slots [VERIFY].
  8. Thread the second strap.
  9. Fix the TPU GoPro mount to the front of the top plate [VERIFY] position and fasteners.
  10. Fit the Mission 1 Pro to the mount, lens hood off.
  11. Flex-test the mount by hand: press down on the camera front, twist it. It's a Hero-sized stopgap — any visible sag or resonance means reprint stiffer before flying. [PHOTO 10.11] GoPro on mount, side view.
  12. Match GoPro uptilt to the HDZero camera angle from step 9.4.
  13. Attach the lanyard from the GoPro to the frame.
  14. Weigh without the GoPro, battery fitted. Record.
  15. Weigh with the GoPro. Record. Estimates are ~795 g and ~1,025 g; the mass gate is in acceptance-validation. [PHOTO 10.15] complete airframe on the scale.

Gate: airframe mechanically complete, AUW recorded.

11. Inspection and conformal coating

Criteria and method: electronics-installation (inspection) and conformal-coating (masking, coating, cure).

  1. Lift the top plate for access.
  2. Inspect every solder joint under the loupe — 12 motor, 2 power, TVS, cap, MLCC, RX, GPS, VTX.
  3. Clean flux with IPA.
  4. Mask connectors and ports per conformal-coating.
  5. Coat per conformal-coating.
  6. Cure fully before first power-on — not "dry to touch."
  7. Remove masking, inspect under UV.
  8. Refit the top plate.

Gate: coating cured and inspected.

12. Firmware

Follow ardupilot-h7a3-firmware-flashing — normal .apj path first, DFU fallback in reserve if the board is coming from Betaflight or the normal path fails.

  1. Connect the FC by USB only — no battery.
  2. Flash per ardupilot-h7a3-firmware-flashing.
  3. Reconnect in QGroundControl (qgroundcontrol).
  4. Record the firmware version shown.

Gate: ArduPilot Copter 4.6+ running, ground station connected.

13. Configuration, radio and video

The full parameter set and calibration order is ardupilot-commissioning; modes and failsafe are ardupilot-flight-modes and ardupilot-failsafe. Only this build's deltas are listed here. USB power only until step 13.18.

  1. Set frame class and type per ardupilot-commissioning, group 1. Confirm against the actual arm layout.
  2. Enable bidirectional DShot per dshot-protocol (ArduPilot parameters).
  3. Set battery monitoring to the ESC current/voltage lines from the pin map (step 7.2).
  4. Set the RX and GPS UART parameters per ardupilot-commissioning, groups 2 and 3, adjusted to what step 7.5 recorded.
  5. Set the VTX OSD per ardupilot-commissioning, group 5 (DisplayPort, OSD_TYPE = 5).
  6. Set the 9 V BEC relay per ardupilot-commissioning, group 4.
  7. Set GPS/compass orientation to how the M10Q is actually mounted (step 10.5).
  8. Reboot the FC.
  9. Calibrate the accelerometer (6-position).
  10. Set up the TX16S model per edgetx-model.
  11. Bind and verify the link per elrs-mavlink-mode — model match consistent on both ends.
  12. Calibrate RC.
  13. Assign flight modes per ardupilot-flight-modes.
  14. Configure failsafe per ardupilot-failsafe.
  15. Calibrate the compass — outdoors, away from metal.
  16. Update VTX and goggles to matching HDZero firmware per hdzero-video-link-setup.
  17. Disconnect USB.
  18. Connect the battery through the ShortSaver, transmitter on first.
  19. Switch the 9 V BEC on from the TX and measure the VTX pad with the multimeter: ~9 V, never pack voltage.
  20. Disconnect the battery.
  21. Plug the VTX in.
  22. Set band/channel and confirm picture and OSD per hdzero-video-link-setup. [PHOTO 13.22] goggle view with OSD.

Gate: RC link, telemetry, video and OSD all working; failsafe configured.

14. First power-up and motor test — props off

Generic first-power-on sequence: electronics-installation.

Tools: ShortSaver, multimeter.

  1. Confirm props are off — all four.
  2. Transmitter on.
  3. Battery through the ShortSaver.
  4. Compare battery voltage in QGC with the multimeter at the XT60.
  5. Remove the ShortSaver, battery direct.
  6. Run the motor test for the first motor. Test order runs clockwise from front-right (A, B, C, D) — not motor number.
  7. Check the right motor spins, per the diagram in step 4.12.
  8. Check its direction.
  9. If direction is wrong, disconnect the battery and swap two phase wires on that motor, in hardware — never in software.
  10. Repeat 14.6–14.9 for the other three motors.
  11. If order is wrong, fix the ESC output mapping recorded in step 6.10, not by rewiring.
  12. Confirm RPM telemetry from all four motors — this is the bidirectional-DShot check. A silent motor: see the verification procedure in dshot-protocol.
  13. Test failsafe with props off: arm, switch the TX off, confirm the failsafe action per ardupilot-failsafe.

Gate: all four motors correct position and direction, RPM telemetry live, failsafe observed.

15. Props and handover to first flight

Prop selection and balance: propellers, propeller-balance.

Tools: 8 mm prop wrench, prop balancer. Parts: HQProp 6×2.5×3 (GoPro flights), M5 prop nuts.

  1. Balance each prop per propeller-balance.
  2. Sort props by direction — CW for motors 3 and 4, CCW for 1 and 2.
  3. Fit motor 1's prop, printed face up.
  4. Thread its nut on and tighten per propellers.
  5. Repeat 15.3–15.4 for motors 2, 3 and 4. [PHOTO 15.5] finished build, top view, props on.
  6. Run acceptance-validation.
  7. Run pre-flight-check.
  8. Fly the maiden per maiden-flight — brief low hover first.
  9. After the maiden, re-check every fastener and add Loctite to the top-plate screws.

Gate: acceptance passed; the maiden is the last step, not part of the build.


Rationale

Every physical action is its own numbered step because the failures this build is exposed to — a screw into a winding, a press nut hammered into CF, a VTX on the wrong pad — happen between two actions a paragraph would have merged. A numbered step is also a place to stop and resume across the six sessions without re-reading a page of prose. Prusa's kit manuals set the bar here, and the reason they work is the same.

Mechanical assembly stays inline rather than becoming its own atom because nothing else in the corpus would ever link to "how the TBS Source One V6 bolts together." Everything else links out, because those atoms (electronics, firmware flashing, radio binding, video setup, checks) are frame-agnostic and Agile today, and whatever comes next, reuse them. Some steps look like they restate an atom — "fit the capacitor per capacitor-placement-emc" — but they only say when and which part; the how stays in the atom.

The [VERIFY] markers are there instead of guesses. The fastener allocation between M3×12 and M3×14, the press-nut positions, and the mount positions are all settled by the TBS drawing or the part in hand, and a confident wrong value in a build manual is worse than an honest gap. The same goes for torque: the only torque atom is deprecated, so this guide says "snug and record" until a CF-frame torque reference exists.

The ArduPilot atoms this guide links to were corrected against ArduPilot's board definition for the H7A3-SLIM on 2026-09-27 (UART defaults, no onboard compass, DShot600, bidirectional-DShot parameters, DisplayPort OSD). Some still carry Bandit-era survey-mission framing in their prose — worth a read-through pass, not urgent.

The GX12 payload mast is planned, not built — see the private proposal note. Once it exists, Prerequisites, the Fastener map and chapter 10 all need an update.


Connections

requires: - electronics-installation - ardupilot-h7a3-firmware-flashing related: - star-grounding - twisted-pairs - capacitor-placement-emc - ferrite-beads - conformal-coating - wire-gauge-selection - lipo-batteries - legal-and-regulatory - dshot-protocol - elrs-mavlink-mode - edgetx-model - hdzero-video-link-setup - voltage-regulation - gps-antenna-placement - qgroundcontrol - propellers - propeller-balance - ardupilot-copter - ardupilot-flight-modes - ardupilot-failsafe - pre-flight-check leads_to: - ardupilot-commissioning - acceptance-validation - maiden-flight