Přeskočit obsah

ArduPilot commissioning

Summary

ArduPilot commissioning on the Matek H7A3-SLIM covers four parameter groups that must be configured correctly before first flight: frame and motor setup, ELRS MAVLink mode on UART2, GPS and compass on UART3, and VTX power control via the switchable 9V BEC — plus the MSP DisplayPort OSD for the HDZero VTX. The UART assignment follows ArduPilot's own defaults for this board. Mandatory calibration (accelerometer, compass, RC, ESC) follows. MAVLink mode is wired in from the start — not because the Cinematic build flies missions by default, but so the planning option (QGC connected, mission upload, full telemetry) is available the moment it's wanted, with no rewiring. Day-to-day flying stays manual regardless.


Concept

Parameter groups and their dependencies

ArduPilot commissioning is ordered by dependency. Frame type must be set before motor test (DSHOT requires correct frame geometry for correct motor direction). ELRS MAVLink must be configured before RC calibration (the RC channel mapping is carried inside the MAVLink stream, not on a separate SBUS wire). GPS must be configured before compass calibration (the QMC5883 on the M10Q-5883 is the only compass on the aircraft — the H7A3-SLIM has none built in).

ArduPilot's defaults for the H7A3-SLIM are SERIAL1 (USART1) MAVLink2 telemetry, SERIAL2 (USART2) RC input with SERIAL2_PROTOCOL=23 (RCIN), and SERIAL3 (USART3) GPS; SERIAL4–6 are unassigned and have no DMA. This guide keeps RC on SERIAL2 and GPS on SERIAL3 — the board's own defaults. For ELRS MAVLink mode, SERIAL2 must be changed to SERIAL2_PROTOCOL=2 (MAVLink2). In ELRS MAVLink mode, the RC channel data is embedded inside the MAVLink stream — setting the protocol to RCIN will prevent telemetry from working while setting it to MAVLink2 handles both RC and telemetry on the same UART. This is the most common commissioning error on first Bandit builds. See → elrs-mavlink-mode for the full mode explanation.

Compass placement

The H7A3-SLIM has no built-in compass; ArduPilot probes the I²C bus for an external one. The QMC5883 inside the Matek M10Q-5883 is therefore the only heading source, and its distance from motor and battery current is what decides compass quality. Placement rules are in → gps-antenna-placement.

VTX OSD UART

The HDZero VTX takes its OSD over MSP DisplayPort on any spare UART. Telemetry on this build travels over the ELRS link (SERIAL2), so SERIAL1 — DMA-capable, defaulting to a MAVLink telemetry port that nothing uses here — is repurposed for the VTX. Any of SERIAL4–6 works as well; if you choose one, change group 5 to match the pad you soldered.


Reference

Parameter group 1 — Frame and motor

FRAME_CLASS,1          ; Quad
FRAME_TYPE,1           ; X
MOT_PWM_TYPE,6         ; DShot600 (5 = DShot300)
MOT_SPIN_ARM,0.1       ; Spin on arm for motor check
MOT_THST_HOVER,0.35    ; Starting estimate; auto-learned after hover
SERIAL2_PROTOCOL,2     ; MAVLink2 — RC carried inside MAVLink stream
SERIAL2_BAUD,460       ; 460800 baud
RSSI_TYPE,5            ; Telemetry radio (ELRS MAVLink mode)
RC_PROTOCOLS,512       ; CRSF enabled
RC_OPTIONS,8448        ; Bit 8 (CRSF passthrough telem) + Bit 13 (420 kbaud ELRS) — CRSF only, inert in MAVLink mode

Parameter group 3 — GPS and compass (UART3)

SERIAL3_PROTOCOL,5     ; GPS (board default)
SERIAL3_BAUD,57        ; Board default; uBlox driver auto-detects baud
GPS_TYPE,1             ; uBlox (M10Q-5883)
GPS_AUTO_CONFIG,1      ; Default — ArduPilot configures the module
COMPASS_USE,1          ; External QMC5883 on the M10Q-5883 (no FC compass)
COMPASS_ORIENT,0       ; Arrow forward on GPS mount — match actual mounting

Parameter group 4 — VTX power (9V switchable BEC)

RELAY1_PIN,81          ; GPIO81 = PC13 = 9V BEC (board default)
RCx_OPTION,28          ; Assign to TX switch for VTX on/off
                       ; GPIO81 low = 9 V ON (default), high = 9 V OFF

Parameter group 5 — VTX OSD (MSP DisplayPort, UART1)

SERIAL1_PROTOCOL,42    ; DisplayPort
SERIAL1_BAUD,115       ; Set automatically when protocol 42 is chosen
OSD_TYPE,5             ; MSP_DISPLAYPORT
OSD1_TXT_RES,1         ; HD 50×18 — HDZero accepts 0 or 1; 2 garbles text

Procedure

Full commissioning sequence

  1. Flash ArduPilot (see → ardupilot-h7a3-firmware-flashing).
  2. Connect QGroundControl. Navigate to Vehicle Setup → Parameters.
  3. Enter parameter groups 1–5 in order. Write each group before proceeding.
  4. Mandatory calibration sequence: a. Accelerometer calibration (6-position, follow QGC prompts). b. Compass calibration (rotate aircraft on all axes until QGC confirms). c. RC calibration (verify all channels, confirm mode switches map correctly — see → ardupilot-flight-modes). d. ESC calibration only for non-DShot ESCs — libdrone builds run DShot600 (→ dshot-protocol), so it is not required.
  5. Motor test (QGC → Motors tab): confirm correct spin direction for X frame, props off.
  6. First hover test in AltHold, props on, open area: confirm altitude hold, confirm RTL on RC signal loss.
  7. Run Autotune in AltHold before first Auto mission. See → ardupilot-autotune.

Rationale

Splitting commissioning into named parameter groups rather than a flat parameter list reduces the error surface for workshop builds. Each group has a single failure mode: if ELRS MAVLink is broken, RC calibration fails obviously. If GPS is wrong, Loiter refuses to engage. If the compass is not isolated, Loiter drifts on a predictable bearing. Named groups make the diagnosis path shorter when something does not work.

UART assignment follows ArduPilot's board defaults (RC on SERIAL2, GPS on SERIAL3) rather than the Betaflight-era map in the deprecated [[sk-wiring-reference]] (RX on UART3, GPS on UART2). Staying on the defaults means a parameter reset leaves RC and GPS on the right pads. Earlier versions of this atom also assumed an M8Q GPS at 38400 baud and an internal FC compass to disable; neither applies to the H7A3-SLIM with an M10Q-5883.


Connections

requires:
  - [ardupilot-copter](<./ardupilot-copter.md>)
  - [elrs-mavlink-mode](<./elrs-mavlink-mode.md>)
  - [gnss-gps](<./gnss-gps.md>)
  - [barometer-magnetometer](<./barometer-magnetometer.md>)
related:
  - [ardupilot-h7a3-firmware-flashing](<./ardupilot-h7a3-firmware-flashing.md>)
  - [dshot-protocol](<./dshot-protocol.md>)
  - [gps-antenna-placement](<./gps-antenna-placement.md>)
  - [hdzero-video-link-setup](<./hdzero-video-link-setup.md>)
  - [ardupilot-flight-modes](<./ardupilot-flight-modes.md>)
  - [ardupilot-autotune](<./ardupilot-autotune.md>)
  - [ardupilot-failsafe](<./ardupilot-failsafe.md>)
  - [[software-commissioning]]
leads_to:
  - [ardupilot-flight-modes](<./ardupilot-flight-modes.md>)
  - [ardupilot-autotune](<./ardupilot-autotune.md>)
  - [maiden-flight](<./maiden-flight.md>)