Build Checklist¶
Track your build progress step by step. Check off items as you complete them.
Phase A: Parts Procurement¶
Frame¶
- [ ] TBS Source One V5 7" Deadcat frame kit (or CNC-cut from open-source DXF files)
- [ ] CF-PETG filament 500g (for custom adapter parts)
- [ ] Hardened steel 0.4mm nozzle (CF wears brass)
- [ ] Carbon fiber tube 12mm OD x 150mm x1 (GPS mast)
- [ ] M3x8 button head screws x8 (adapter mounting)
- [ ] M3 heat-set inserts x8
- [ ] M2.5x6 screws x4 (Pi 4 mount)
Core Electronics¶
- [ ] Holybro Pixhawk 6C (with PM02 power module)
- [ ] Holybro Tekko32 F4 4-in-1 50A ESC
- [ ] T-Motor Velox V2207.5 1950KV x4
- [ ] HQProp 7x3.5x3 tri-blade x4 (+ spares)
- [ ] Holybro M9N GPS (u-blox M9N, built-in compass)
- [ ] RC Receiver (TBS Crossfire Nano or ELRS 900MHz)
- [ ] RC Transmitter (if not owned)
- [ ] 4S 2200--3000mAh LiPo x2
- [ ] LiPo charger (if not owned)
- [ ] Holybro SiK Radio V3 (433 or 915MHz, pair)
Companion Computer¶
- [ ] Raspberry Pi 4 (4GB)
- [ ] 64GB+ microSD card
- [ ] BEC 5V 3A (Matek UBEC or Pololu 5V step-down)
Camera¶
- [ ] Raspberry Pi HQ Camera (IMX477)
- [ ] 6mm CS-mount lens
Wiring & Connectors¶
- [ ] XT60 connectors (if not included with ESC/PM02)
- [ ] 14-16 AWG silicone wire (battery to PM02)
- [ ] JST-GH connectors or pre-made cables (TELEM2 to Pi UART)
- [ ] Heat shrink tubing assortment
- [ ] Zip ties
Phase B: 3D Print Custom Adapters (~5h total)¶
- [ ] Pi 4 top plate adapter (~1.5h)
- [ ] Camera mount (~1h)
- [ ] GPS mast base (~30min)
- [ ] Canopy (~2h)
- [ ] Test-fit all adapters on the Source One V5 frame
Phase C: Frame Assembly¶
- [ ] Assemble Source One V5 frame per TBS instructions
- [ ] Install M3 heat-set inserts in custom printed adapters (soldering iron at 220°C)
- [ ] Attach Pi 4 adapter plate to top standoffs
- [ ] Attach camera mount to bottom plate
- [ ] Attach GPS mast base to rear standoffs
- [ ] Mount motors (mind rotation direction: M1 FR-CCW, M2 RL-CCW, M3 FL-CW, M4 RR-CW)
Phase D: Electronics Installation¶
ESC & Motors¶
- [ ] Mount Tekko32 4-in-1 ESC in the 30.5mm stack
- [ ] Solder motor wires to ESC pads
- [ ] Route motor wires cleanly along arms
- [ ] Connect ESC signal cable to Pixhawk MAIN OUT 1-4
Flight Controller¶
- [ ] Mount Pixhawk 6C on vibration dampening standoffs (arrow pointing forward)
- [ ] Connect PM02 power cable to Pixhawk POWER1
- [ ] Connect PM02 XT60 to ESC power input
GPS¶
- [ ] Insert GPS mast CF tube into mast base
- [ ] Secure with set screw or CA glue
- [ ] Mount M9N GPS on mast top (arrow forward)
- [ ] Route GPS cable to Pixhawk GPS1 port
RC & Telemetry¶
- [ ] Mount RC receiver (away from ESC/motors for signal quality)
- [ ] Connect RC receiver to Pixhawk RC IN
- [ ] Mount SiK radio (antenna orientation matters)
- [ ] Connect SiK radio to Pixhawk TELEM1
Companion Computer¶
- [ ] Mount Pi 4 to adapter plate with M2.5 screws
- [ ] Connect BEC 5V output to Pi 4 (via GPIO 5V/GND or USB-C)
- [ ] Connect BEC input to battery voltage (tap from PM02 or ESC pad)
- [ ] Wire TELEM2 TX → Pi GPIO 15 (RX), TELEM2 RX → Pi GPIO 14 (TX)
- [ ] Connect Pi HQ Camera via CSI ribbon cable
- [ ] Attach canopy over Pi 4 + wiring
Power¶
- [ ] Wire PM02 battery input (XT60)
- [ ] Wire BEC input to battery voltage
- [ ] Verify no short circuits (multimeter continuity check)
- [ ] Plug in battery briefly — verify Pixhawk boots, Pi boots, no smoke
Phase E: Software Setup¶
Pi 4¶
- [ ] Flash Ubuntu 24.04 Server to microSD
- [ ] Boot and configure WiFi + SSH
- [ ] Install ROS2 Jazzy (
sudo apt install ros-jazzy-ros-base) - [ ] Enable UART for uXRCE-DDS (
/boot/firmware/config.txt) - [ ] Clone bennu repo and install packages
- [ ] Install Micro XRCE-DDS Agent
- [ ] Test
MicroXRCEAgent serial --dev /dev/ttyAMA0 -b 921600
PX4¶
- [ ] Flash PX4 v1.16.1 via QGroundControl
- [ ] Upload base params:
./firmware/px4/upload_params.sh - [ ] Calibrate accelerometer (QGC)
- [ ] Calibrate gyroscope (QGC)
- [ ] Calibrate compass (QGC — rotate drone in all axes)
- [ ] Calibrate radio (QGC — move all sticks)
- [ ] Verify GPS lock (outdoors, wait for 3D fix)
- [ ] Configure TELEM2 for uXRCE-DDS:
UXRCE_DDS_CFG: TELEM2SER_TEL2_BAUD: 921600
Integration Test (props OFF)¶
- [ ] Power on full system (battery)
- [ ] Verify uXRCE-DDS bridge: Pi sees PX4 topics (
ros2 topic list) - [ ] Verify GPS data on Pi:
ros2 topic echo /fmu/out/vehicle_gps_position - [ ] Verify camera capture:
libcamera-still -o test.jpg - [ ] Run bennu camera node:
ros2 run bennu_camera camera_node
Phase F: First Flight¶
Pre-flight (props ON, outdoors, open area)¶
- [ ] Attach props (correct rotation per motor)
- [ ] Verify motor spin direction (QGC motor test, one at a time, low throttle)
- [ ] Battery fully charged
- [ ] GPS 3D fix acquired
- [ ] Failsafes configured (RTL on RC loss, RTL on data link loss)
- [ ] Geofence configured (max 200m radius, max 120m altitude)
- [ ] QGroundControl connected via telemetry
First Hover¶
- [ ] Arm in Stabilized mode
- [ ] Gentle throttle up — hover at 1--2m
- [ ] Check stability (no oscillations, no toilet-bowling)
- [ ] If unstable: land immediately, check prop direction and motor order
- [ ] Land, disarm
First Position Hold¶
- [ ] Switch to Position mode (requires GPS lock)
- [ ] Hover at 5m — verify GPS hold (should stay in place hands-off)
- [ ] Test RTL: flip RTL switch — drone should return and land
First Survey Flight¶
- [ ] Plan a small grid (50x50m) using GridPlanner or QGC
- [ ] Upload mission
- [ ] Fly in Auto mode
- [ ] Verify images captured
- [ ] Download bundle, validate with E2E test