ArduPilot settings — progress (UL8 / Pixhawk 6X Mini)

Living checklist: what’s already on the FC, what we still need to set

ArduPilot settings — progress (UL8 / Pixhawk 6X Mini)

ArduPilot settings progress

Living checklist: what’s already on the FC, what we still need to set

QGroundControl showed 1085 parameters. I searched for SERIAL2 and thought: this isn’t a setup wizard — it’s a spreadsheet with wings. Frame, CAN, and GPS are already in. ELRS isn’t. Someone has to keep that list honest — that’s us.

This is the central progress post for ArduPilot parameters on our Pixhawk 6X Mini. Per-sensor detail stays in the part posts. Here: what the FC already knows versus what the build still lacks.

How ArduPilot configs work (and why that’s our problem)

ArduPilot on the Pixhawk is not “an app with menus only”. The core is a big list of settings — parameters. Each setting has a name and a value. Example: SERIAL2_PROTOCOL = 23 means TELEM2 speaks CRSF (ELRS).

Without understanding that list, things “half work” — GPS sats, but no sticks. Or sticks, but battery failsafe still on 3S defaults. That’s exactly where we are now.

How we use that:

  1. Fetch — QGroundControl (MacBook) connects to the FC (USB or radio). It then reads every parameter from the board.
  2. Browse / search — Vehicle Setup → Parameters. Search by name (BATT_, GPS1_, SERIAL2_, …).
  3. Change — edit the value → Save. Sometimes you must reboot (new baud, protocol, CAN).
  4. Save — Parameters → Tools → Save to file → .param file. That’s our backup in docs/firmware/param-backups/.
  5. Restore — Tools → Load from file → Save. Useful after a flash or when something goes wrong.

Short version: one big config list on the FC. We fetch it, set what we need, and keep a dump. This documentation is the checklist on top of that list — not all 1085 lines.

Wiki: Parameters · tool: QGroundControl on the MacBook (ArduPilot wiki often shows Mission Planner screens — same params).

Latest backup: 2026-09-11, ArduCopter 4.7.1, 1085 params (docs/firmware/param-backups/pixhawk6x-mini-latest.param). Status legend: done · review · todo · later.

Where we are — in plain language

Good news: the quad-X / DShot baseline is in. CAN1 + F9P + M9N + H-Flow are in the dump. The digital power module is recognized.

Less good: TELEM2 still speaks MAVLink2 instead of CRSF. Battery capacity is still a 3300 mAh-ish default while we fly Tattu 1480 mAh 6S. LD-06 and O4 OSD are waiting.

Next action: set ELRS on TELEM2 and calibrate the radio (props off). Then 6S capacity/failsafes and LD-06. See ELRS setup and step 7 — config.

Overview

Block Status
Frame / motors (quad X, DShot) done
Battery monitor (PM02D type) done (capacity/failsafes todo)
CAN1 + DroneCAN driver done
GPS1 F9P (DroneCAN) + GPS2 M9N done
H-Flow (flow + ToF) done (offsets/max range review)
ExpressLRS / CRSF (TELEM2) todo
LD-06 proximity (TELEM1) todo
Flight modes / radio calibration todo
Battery 6S (1480 mAh) failsafes todo
O4 MSP DisplayPort OSD later
MAVLink-over-ELRS + QGC (backpack) later (checklist)
Object avoidance fine-tune later

Frame & motors — done

The quad-X / DShot baseline is in place. ESC is the Pacer 60A. We still verify motor order on the bench with props off — that stays exciting until you see it spin. Nothing surprising in the dump. This block is ready for first flight.

Parameter Backup Goal / note
FRAME_CLASS 1 Copter / multicopter
FRAME_TYPE 1 Quad X
MOT_PWM_TYPE 6 DShot
BRD_IO_DSHOT 1 DShot via I/O
SERVO1…4_FUNCTION 33–36 Motors 1–4

Battery (PM02D) — partial

The digital power module is recognized (BATT_MONITOR=21). The dump still carries a 3S/3300-ish default. We fly Tattu R-Line V6 1480 mAh 6S through the PM02D. Capacity, low/critical/arm voltages, and failsafe actions still need setting — otherwise the FC thinks we have a different pack. Current calibration later against a wattmeter.

Parameter Backup Goal Status
BATT_MONITOR 21 Digital power module done
BATT_I2C_BUS 1 PM02D bus done
BATT_CAPACITY 3300 → 1480 todo
BATT_LOW_VOLT 10.5 → ~21.0 (6S low, tune) todo
BATT_CRT_VOLT 0 → ~19.8–20.4 (6S critical) todo
BATT_ARM_VOLT 0 → ~22.0 (arming minimum) todo
BATT_FS_LOW_ACT / CRT_ACT 0 Set failsafe actions todo

CAN / DroneCAN — done

CAN1 runs as a DroneCAN driver at 1 Mbit. That’s the Holybro stack we need for F9P and H-Flow. Hub + power: CAN Hub (XT30 Power-In). No further changes needed for first flights unless we add nodes.

Parameter Backup Note
CAN_P1_DRIVER 1 First driver on CAN1
CAN_P1_BITRATE 1000000 Holybro stack 1 Mbit
CAN_D1_PROTOCOL 1 DroneCAN
CAN_D1_UC_NODE 10 FC node ID

GPS — done

Primary is the F9P Helical via DroneCAN. Secondary is the Micro M9N on GPS2. Physically the GPS1 connector stays empty — F9P hangs on CAN. See ports. Still to do once mounting is final: compass calibration in the frame and GPS*_POS_* offsets. Offsets “later” always feel harmless until Loiter gets weird.

Parameter Backup Meaning
GPS1_TYPE 9 DroneCAN → F9P Helical
GPS1_CAN_NODEID 125 F9P node
GPS2_TYPE 1 uBlox → Micro M9N on GPS2
GPS_AUTO_SWITCH 1 Auto switch
GPS_PRIMARY 0 GPS1 primary

H-Flow (optical flow + ToF) — done / review

Flow + rangefinder are on via DroneCAN. EKF sources combine outdoor GPS + flow + ToF. Setup: H-Flow. POSXY=0 (flow-only) is not our default outdoor mode. Still open: review max range / node address and set FLOW_POS_* after mounting — we only know that once it’s bolted down.

Parameter Backup Goal / note Status
FLOW_TYPE 6 DroneCAN H-Flow done
RNGFND1_TYPE 24 DroneCAN rangefinder done
RNGFND1_ORIENT 25 Downward done
RNGFND1_MAX 7 Holybro cites ~30 m → maybe raise review
RNGFND1_ADDR 0 Check node address vs DNA review
FLOW_POS_* 0 Offsets vs CG after mounting todo
EK3_SRC1_POSXY 3 GPS (outdoor / our default) done
EK3_SRC1_VELXY 5 Optical flow done
EK3_SRC1_POSZ 2 Rangefinder height done
EK3_FLOW_USE 1 Flow fusion on done

ExpressLRS / CRSF — todo

TELEM2 (SERIAL2) is still MAVLink2. We want CRSF to the XR4 + TX16S. Without this block, no sticks the FC understands. Full procedure: ELRS setup. Then radio calibrate and failsafe test — props off.

Parameter Backup now Goal
SERIAL2_PROTOCOL 2 (MAVLink2) 23 (RCIN / CRSF)
SERIAL2_BAUD 57 often irrelevant with CRSF; ELRS 420k via options
RSSI_TYPE 0 3 (ReceiverProtocol)
RC_OPTIONS 32 bits for ELRS 420kBaud (bit 13), Yaapu (bit 8), suppress rate (bit 9) — see ELRS post
FLTMODE_CH 5 often 12 with ELRS hybrid

LD-06 proximity — todo

TELEM1 stays reserved for the LD-06. In the backup SERIAL1 is still MAVLink2. We set protocol 11 + PRX1_TYPE 16 once the LiDAR is mounted. Object avoidance: backup already has AVOID_ENABLE=3 — review before first flights (don’t leave it on blind). Fine-tune = later.

Parameter Backup now Goal
SERIAL1_PROTOCOL 2 11 (Lidar360)
SERIAL1_BAUD 57 230 (230400)
BRD_SER1_RTSCTS 2 0 (flow control off)
PRX1_TYPE 0 16 (LD06)
PRX1_ORIENT — 0 (top) or 1 (bottom)
Ignore sectors — after mounting (PRX1_IGN_ANG* / WID*)

Flight modes & arming — todo

All FLTMODE slots are still Stabilize (0). Mode assignment, radio and compass/accel calibration, and throttle failsafe after ELRS bind belong in step 7 — config & first flights. Without modes it’s “one switch, one feel” — not how we want to start safely.

Parameter Backup Action
FLTMODE1…6 all 0 (Stabilize) Assign modes (Stabilize / AltHold / Loiter / …)
FLTMODE_CH 5 Match TX (often CH12)
Radio calibration — QGroundControl → Vehicle Setup → Radio
Compass / Accel — Setup → Calibrate
FS_THR_* partly default Test failsafe after ELRS bind

O4 OSD (MSP DisplayPort) — later

No UART reserved yet (OSD_TYPE=0). Once video is stable we follow the native path in fpv.wtf & native OSD and O4 install. O4 S.Bus stays open. RC = ELRS. OSD is nice-to-have; sticks first.

Parameter Goal
SERIALn_PROTOCOL 42
SERIALn_BAUD 115
OSD_TYPE / OSD_TYPE2 5
MSP_OPTIONS often 4 (BF font, Goggles 3)

Serial map (current vs plan)

Handy reference beside ports & wiring: what the backup says now versus what we want.

Port Now (backup) Plan
SERIAL0 USB MAVLink2 GCS
SERIAL1 TELEM1 MAVLink2 LD-06 (11)
SERIAL2 TELEM2 MAVLink2 ELRS CRSF (23)
SERIAL3 GPS1 GPS empty / unused (F9P=CAN)
SERIAL4 GPS2 GPS Micro M9N
Other disabled / default optional O4 DisplayPort

How we keep progress

  1. After any serious param change: new backup in docs/firmware/param-backups/ + copy to pixhawk6x-mini-latest.param.
  2. Update this post (NL + EN): status column + tables.
  3. Detail stays in part posts. This page is the checklist only.
  4. Cursor workflow: Cursor + ArduPilot.

Read next

Choice log

What Progress documentation for all ArduPilot settings we’ve set or still need to set
Why One place to see what’s already in the FC dump versus what the build still lacks
Our pick Status from the 2026-09-11 backup (Copter 4.7.1). Updates via new dumps + this post.

Photos

Technical documents

Leave a Reply

Your email address will not be published. Required fields are marked *