Skip to main content

Firmware & Parameters

This page collects the firmware file and parameter sets used to configure a Quiver Dev-Kit flight controller.

Use this when you are setting up or re-flashing a Quiver Dev-Kit. The supporting firmware and parameter files live alongside this page so they can be downloaded directly from the docs.

Firmware File

FileDescription
arducopter-pixhawk6c.apjCompiled firmware — flash via Mission Planner or QGroundControl
arducopter-pixhawk6c.abinAlternate firmware artifact for compatible tooling

Flashing

  1. Open Mission PlannerSetupInstall FirmwareLoad custom firmware or open QGroundControlVehicle SetupFirmwareAdvanced settingsCustom firmware
  2. Select arducopter-pixhawk6c.apj
  3. After flashing: full parameter reset, then load parameter files below

Parameters

Load in order:

FilePurpose
standard-params.paramBase configuration — load this first on every drone
params-ethernet.param(optional) Enable PPP networking via Raspberry Pi
params-object-avoidance.param(optional) Enable RPLidar S2 obstacle avoidance
params-remoteid.param(optional) Enable DroneBeacon db201 Remote ID via DroneCAN

See Parameter Notes below for full parameter documentation.

⚠️ After loading parameters, perform compass calibration, accelerometer calibration, and RC calibration — these are drone-specific and not included in the standard file.

Custom Build Features

This firmware adds the following on top of the standard ArduCopter release.

RPLidar S2 Support

Cherry-picks PR #31663 from ArduPilot upstream.

  • Adds RPLidar S2 as a proximity sensor (PRX1_TYPE = 5)
  • Reuses the RPLidar A2 serial protocol with an additional dense-express scan mode
  • Connect to SERIAL3: SERIAL3_PROTOCOL = 11, SERIAL3_BAUD = 1000 (1 Mbaud)
  • Enable via params-object-avoidance.param when needed

PPP Networking (Raspberry Pi Ethernet over UART)

  • Enables PPP protocol on SERIAL2 to bridge Ethernet from the Raspberry Pi
  • Allows Mission Planner / MAVProxy to connect to the Pixhawk over the RPi network
  • Enable via params-ethernet.param (disabled by default)

Temperature Sensors

Enables support for MCP9600, MLX90614, TSYS01, and TSYS03 I2C temperature sensors.

OpenDroneID (Remote ID)

Enables ArduPilot's OpenDroneID support (AP_OPENDRONEID_ENABLED) for use with the DroneBeacon db201 or any external Remote ID transponder.

  • Connects via DroneCAN (CAN1, already configured)
  • The standard Pixhawk 6C bootloader is unchanged — firmware can still be updated freely
  • Enable via params-remoteid.param (disabled by default)

Supporting Scripts

FilePurpose
tattu_bridge.pyTattu smart battery bridge helper script

Parameter Notes

Documentation for the Quiver standard parameter configuration and key differences from the stock Pixhawk 6C defaults.

Parameter File Structure

FilePurpose
standard-params.paramLoad first — base config with ethernet and OA disabled
params-ethernet.paramLayer on to enable PPP networking via Raspberry Pi
params-object-avoidance.paramLayer on to enable RPLidar S2 obstacle avoidance

CAN Bus

ParameterValueNotes
CAN_P1_DRIVER1Enables CAN port 1
CAN_P1_BITRATE10000001 Mbit/s — required for DroneCAN
CAN_D1_PROTOCOL1DroneCAN (formerly UAVCAN) on CAN1
CAN_D2_PROTOCOL14Reserved for secondary CAN bus
CAN_D1_UC_ESC_BM15ESC bitmask: motors 1–4 on DroneCAN (binary 1111)

Ethernet / PPP Networking (params-ethernet.param)

Disabled in standard-params.param. Load params-ethernet.param to enable.

ParameterValueNotes
NET_ENABLE1Enables MAVLink networking stack
NET_P1_PORT5760Standard MAVLink TCP port
NET_P1_PROTOCOL1MAVLink 1 on network port 1
SERIAL2_PROTOCOL48PPP — bridges Ethernet from Raspberry Pi
SERIAL2_BAUD1250000012.5 Mbaud — required for PPP throughput

Connect Mission Planner or MAVProxy to RPi_IP:5760 over TCP.

RPLidar S2 (Proximity Sensor)

The proximity sensor is always configured in standard-params.param, but obstacle avoidance is disabled by default. Load params-object-avoidance.param to enable.

ParameterValueNotes
PRX1_TYPE5RPLidar A2/S2 (serial)
PRX1_YAW_CORR180Corrects for cable-forward mounting orientation
SERIAL3_PROTOCOL11Lidar serial protocol
SERIAL3_BAUD10001 Mbaud (required for S2)

Motors & ESCs

Quiver uses DroneCAN ESCs. Motor outputs 1–4 are mapped via CAN_D1_UC_ESC_BM = 15; PWM/DShot output settings are not the primary ESC control path for the standard dev-kit configuration.

ParameterValueNotes
CAN_D1_UC_ESC_BM15DroneCAN ESC bitmask for motors 1–4
MOT_SPIN_ARM0.07Low spin on arm
MOT_SPIN_MIN0.1Minimum throttle in-flight
MOT_SPIN_MAX0.95Leaves headroom for control
MOT_THST_EXPO0.74Calibrated for T-Motor MN501S

⚠️ MOT_THST_HOVER is auto-learned and drone-specific. Not included in standard file.

Battery

ParameterValueNotes
BATT_MONITOR9DroneCAN ESC voltage/current monitor
BATT_CAPACITY3000030Ah — matches Tattu 30Ah pack
BATT_ARM_VOLT42Minimum voltage to arm (~3.5V/cell on 12S)
MOT_BAT_VOLT_MAX60.9Full charge (12S × 4.2V)
MOT_BAT_VOLT_MIN46.2Low threshold (12S × 3.85V)
BATT_FS_LOW_ACT2Low battery → RTL
BATT_FS_CRT_ACT1Critical battery → Land

GPS

ParameterValueNotes
GPS1_TYPE / GPS2_TYPE9DroneCAN GPS (Here3+)
GPS1_GNSS_MODE77GPS + GLONASS + Galileo + BeiDou
GPS2_GNSS_MODE69GPS + GLONASS + BeiDou

IMU Orientation

ParameterValueNotes
AHRS_ORIENTATION0Default — no rotation

Note: Earlier param files used AHRS_ORIENTATION = 4 (Yaw 180°) specific to one airframe's mounting. Standard config uses 0 (default). Set per-drone if your flight controller is mounted at a different rotation.

EKF

ParameterValueNotes
AHRS_EKF_TYPE3EKF3
EK3_SRC1_POSXY3Primary XY position: GPS
EK3_SRC1_VELXY3Primary XY velocity: GPS
EK3_SRC1_VELZ3Primary Z velocity: GPS
EK3_SRC_OPTIONS1Fuse all sources when available

Parameters NOT Included (Calibrate Per-Drone)

Parameter GroupReason
COMPASS_OFS_*, COMPASS_DIA_*, COMPASS_ODI_*, COMPASS_SCALE_*Compass calibration — unique per drone
COMPASS_DEV_ID*, COMPASS_PRIO*_IDHardware IDs set during calibration
COMPASS_DECMagnetic declination — location-specific
INS_ACC*OFFS_*, INS_ACC*SCAL_*Accelerometer calibration
INS_GYR*OFFS_*Gyro bias
INS_ACC*_ID, INS_GYR*_IDHardware IDs
RC*_MIN, RC*_MAX, RC*_TRIMRadio calibration
BARO*_GND_PRESS, BARO*_DEVIDBarometer calibration
MOT_THST_HOVERAuto-learned hover throttle
ATC_RAT_*, ATC_ANG_*, ATC_ACCEL_*Autotune PID results
AHRS_ORIENTATIONReview if flight controller is not mounted in default orientation
GPS*_CAN_NODEIDCAN node IDs assigned on first boot
STAT_*Flight statistics counters