# TerraHawk flight parameters: Holybro Pixhawk 6C Mini, Model A (firmware target Pixhawk6C). # Load after terrahawk-common.parm. Wiring: docs/electronics-notes.md, "Output map trap". # Not the first-flight board any more: the NxtPX4v2 flies first (board-nxtpx4v2.parm, Ryan 2026-10-04). Kept for a # 6C if one is used, and as the reference for our own FC, whose hwdef derives from the Pixhawk6C. # Mounted turned 180 degrees, arrow aft, ports toward the rear hatch. AHRS_ORIENTATION 4 # The Q43 has no safety button; arming is by the GCS or the sticks. BRD_SAFETY_DEFLT 0 # Two IMUs, two EKF3 lanes. EK3_IMU_MASK 3 # IMU offset from the design CG, kit (0, 270, -5.6), body axes (X forward, Y right, Z down), so the EKF's outputs (and # XKF1) are the CG's position, as GPS1_POS assumes. The 6C Mini's case centre, kit (0, 305.65, 23.90) (th-blender, # 2026-10-03); Holybro gives no IMU position inside the case, so a placeholder within about 15 mm. Both IMUs. In the # common file 2026-10-03 to 2026-10-04, then moved here. INS_POS1_X -0.036 INS_POS1_Y 0 INS_POS1_Z -0.030 INS_POS2_X -0.036 INS_POS2_Y 0 INS_POS2_Z -0.030 # Bench, before the first power-up: on the DroneCAN page, set the internal compass's COMPASS_USE to # 0 once the instances show, so only the Q43's compass is used (it sits over the PM02's current). # --- Outputs. MAIN 1-8 via the IO MCU (groups 1-2, 3-4, 5-8), AUX 1-6 on the FMU (1-4, 5-6) --- # Lift motors 1-4: functions on MAIN 1-4. This file sets them up for DroneCAN pod ESCs on CAN bus 1 # (pads unused). The first build flies the 4-in-1 on the MAIN pads: load lift-4in1.parm after this file. SERVO1_FUNCTION 33 SERVO2_FUNCTION 34 SERVO3_FUNCTION 35 SERVO4_FUNCTION 36 Q_M_PWM_TYPE 0 Q_M_PWM_MIN 1000 Q_M_PWM_MAX 2000 SERVO5_FUNCTION 0 SERVO6_FUNCTION 0 # Elevons on MAIN 7 and 8 (group 5-8, no motor). Reversal and endpoints are set on the bench and kept # in the airframe file. SERVO7_FUNCTION 77 SERVO8_FUNCTION 78 # AUX 1 and 2: Survey3W trigger and exposure feedback (the first build carries it, Ryan 2026-09-28). Set as # rows, not a comment: with no camera on AUX 1 and 2 they do nothing. AUX 2 is GPIO 51 on this board (the # IO MCU drives MAIN; the FMU's PWM(1..8) are AUX 1..8 at GPIO 50..57, Pixhawk6C hwdef). CAM1_TYPE needs a # reboot. Values and reasons: docs/survey3.md (MAPIR's trigger guide). SERVO9_FUNCTION 10 SERVO10_FUNCTION -1 CAM1_TYPE 1 CAM1_SERVO_ON 2000 # Idle pulse: never 1500, which puts the camera into USB transfer mode. CAM1_SERVO_OFF 1000 CAM1_DURATION 0.1 # Just above the camera's 1.5 s JPG interval. At the 21 m/s survey it gives 79 % forward overlap at 116 m # (th-aeronautics); 1.5 only if th-main confirms the Survey3W sustains it. CAM1_INTRVAL_MIN 1.6 CAM1_FEEDBAK_PIN 51 CAM1_FEEDBAK_POL 1 # AUX 3: belly cargo-door release servo (EMAX ES9051 at Y 360, th-blender 9b0c6a5; Ryan: door good for now, to be # revised). ArduPilot's gripper: DO_GRIPPER in a mission, or an RC switch (RCn_OPTION 19). Group AUX 1-4 has no motor. # At boot the gripper goes to GRIP_NEUTRAL (AP_Gripper_Servo::init_gripper); the default 1500 would half open the # door, so NEUTRAL equals GRAB (closed). The bench sets GRAB and RELEASE for the 60 deg horn swing; these are # placeholders. The servo only slides two end latches 5 mm; the door halves hang open after a drop, for the rest of # the flight. So AUTOCLOSE is 0: closing the latches behind open halves would stop them being pushed shut (the # fingers have no ramps). On the ground: close the port half (+X, no lip) by hand first, then the starboard half (-X, with the lap lip), then command GRAB # (th-blender, 2026-10-04: the -X half's lip lies outside the +X half's edge, so a lip closed first blocks it). # The drop (doors at Y 366 to 502, about Y 434) moves the CG forward. Bay payload limit (th-aeronautics fff6327, # from th-testpilot's sweep cc74ad7): all-up 3.01 kg or less at the 21 m/s survey, so 100 g with the Survey3W fitted # (about 165 g camera off, an estimate); after a release the CG must stay at 256 mm or aft with 8 deg of trim left at # 18 m/s. A 100 g drop with the pack held leaves only 6.77 deg, so cg_slider.lua (v1.7) watches this gripper output # (function 28 at GRIP_RELEASE) and moves the pack aft to put the CG back at the takeoff CG; set CGS_DROP_CG and # CGS_AFT_MM from the balance. The open doors add about 60 % drag for the rest of the flight: drop at the end of a # survey, not before its last line. SERVO11_FUNCTION 28 GRIP_ENABLE 1 GRIP_TYPE 1 GRIP_GRAB 1100 GRIP_RELEASE 1600 GRIP_NEUTRAL 1100 GRIP_AUTOCLOSE 0 # range-ok: 0 disables autoclose ("0 to disable", AP_Gripper_Backend.cpp is_positive) # AUX 4: the "ON" input of the video rail's MOSFET switch (the BEC has no enable). On at boot. SERVO12_FUNCTION -1 RELAY2_FUNCTION 1 RELAY2_PIN 53 RELAY2_DEFAULT 1 # AUX 5: pusher ESC, alone in group AUX 5-6. SERVO13_FUNCTION 70 SERVO14_FUNCTION 0 # --- CAN: two independent DroneCAN networks, never one driver on both --- # Bus 1 (CAN1): the four DroneCAN lift ESCs, node ids 24-27, ESC index = motor number - 1. Empty while # the 4-in-1 flies (lift-4in1.parm clears CAN_D1_UC_ESC_BM). # Bus 2 (CAN2): airspeed (21), charge node (20), rangefinder node (22) when fitted. CAN_P1_DRIVER 1 CAN_P2_DRIVER 2 CAN_D1_PROTOCOL 1 CAN_D2_PROTOCOL 1 CAN_D1_UC_NODE 10 CAN_D2_UC_NODE 10 CAN_D1_UC_ESC_BM 15 CAN_D1_UC_ESC_OF 0 # Airspeed: Holybro DLVR-L10D over DroneCAN on bus 2. ARSPD_TYPE 8 # --- Serial ports (SERIAL_ORDER OTG1 UART7 UART5 USART1 UART8 ...) --- # TELEM1: SiK radio, MAVLink 2. SERIAL1_PROTOCOL 2 SERIAL1_BAUD 57 # TELEM2: ELRS receiver, CRSF. SERIAL2_PROTOCOL 23 # The CRSF driver sets its own 416 kBaud; 115 is the conventional value here. SERIAL2_BAUD 115 # GPS1: Waveshare Q43 NEO-F9P (u-blox), its compass on this port's I2C. SERIAL3_PROTOCOL 5 SERIAL3_BAUD 230 GPS1_TYPE 2 # GPS2: DJI O4, MSP DisplayPort OSD. SERIAL4_PROTOCOL 42 SERIAL4_BAUD 115 OSD_TYPE 5 # --- Power: PM02 V3 on the POWER port (analog voltage and current) --- BATT_MONITOR 4 # Cross-check only, not used for failsafes: the sum of the lift ESCs' reported current (over bus 1, or # the 4-in-1's serial telemetry). BATT2_MONITOR 9