This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Autopilot Integration Guides

Connecting UAVLAS landing systems to ArduPilot, PX4 and Embention Veronte autopilots.

Application

These guides are common to every UAVLAS system that talks to the autopilot over MAVLink: ULS-XCopter, ULS-ProCopter, ULS-Heli and ULS-XSpot. They cover autopilot parameters, link verification and tuning of precision loiter and landing. Product-specific installation, pinouts and wiring are in each product’s Operation Manual and Interface Control Document. The Embention Veronte Autopilot 1x guide connects the receiver over CAN instead of MAVLink.

Documents

Each page is generated from the source of the controlled PDF; the numbered PDF can be downloaded from the document portal.

1 - ArduPilot Integration Guide

Connect any UAVLAS precision landing system to ArduPilot: PLND, serial and stream-rate parameters, LANDING_TARGET check, precision loiter and PID tuning.

ULSDC-PBIG161026-AP · version 1.0.1 · issued October 16, 2026
The numbered PDF is the controlled copy: download it from the portal.

ardupilot logo

ArduPilot and the ArduPilot logo are trademarks of the ArduPilot project, shown to identify the autopilot this guide covers.

Introduction

Purpose

This guide describes how to connect a UAVLAS precision landing system to an ArduPilot (ArduCopter) autopilot, configure the autopilot, verify the link and tune precision loiter and landing.

Intended Audience

Integrators and operators setting up precision landing on ArduPilot vehicles.

Applicability

This guide applies to every UAVLAS precision landing system that connects to the autopilot over MAVLink: ULS-XCopter, ULS-ProCopter, ULS-Heli and ULS-XSpot. Product-specific installation, pinouts and wiring are in each product’s Operation Manual and Interface Control Document.

Integration

Preparing for Integration

  • Download the latest version of ULS-Tools. Connect all UAVLAS devices to a PC and update their firmware before proceeding.
  • Update the autopilot to the latest ArduCopter version.
  • Install the transmitter and receiver(s) and wire the receiver to a free autopilot UART (TELEM) port. Pinouts and wiring diagrams are in the Interface Control Document and Operation Manual of your product.
  • Configure the transmitter in ULS-Tools.
  • Configure the receiver in ULS-Tools (on dual-receiver systems, configure both receivers).
Generation 3 receivers (ULS-Heli-G3, ULS-XSpot-G3) have an RS422 interface. A UART-only autopilot needs the ULS-XX-UART-RS422 onboard adapter.

The system communicates with ArduPilot over MAVLink 2 and reports the target in MAV_FRAME_BODY_FRD.

Example of receiver configuration:

Receiver configuration for ArduPilot

Figure: Receiver Configuration for ArduPilot

Autopilot Configuration

Setup PLND Section

ParamValueComment
PLND_ENABLED1Enable the precision landing module
PLND_TYPE1Use type = 1 to enable UAVLAS sensor over the companion computer driver

Table: ArduPilot PLND Section Parameters All other PLND parameters should remain at defaults, or be set according to your vehicle requirements.

ArduPilot PLND Configuration

Figure: PLND Configuration Example

It is recommended to test several Kalman filter options during test flights (or switch it off) to achieve the best performance.

Set Up Serial Communication in SERIALx Section

The example uses SERIAL2; use the number of the port the receiver is wired to.

ParamValueComment
SERIAL2_BAUD230Baud rate — must match the receiver UART baud rate setting
SERIAL2_OPTIONS0Default
SERIAL2_PROTOCOL2MAVLink 2 protocol

Table: ArduPilot SERIALx Section Parameters Set up serial stream rates in the SRx section. The sensor requires the following data from the autopilot:

ParamValueComment
SR2_EXTRA1 (or MAV2_EXTRA1)20Attitude stream at 20 Hz — required for compass mode yaw orientation
SR2_POSITION (or MAV2_POSITION)20Optional — Vehicle LOCAL_POSITION_NED stream at 20 Hz for absolute target position calculation

Table: ArduPilot SRx Stream Rate Parameters

Check Setup

When configuration and wiring are correct, GPS is available, and the receiver is in the field of view of the transmitter, you will see the LANDING_TARGET MAVLink message in the MAVLink Inspector (Mission Planner example shown):

LANDING_TARGET Message in MAVLink Inspector

Figure: LANDING_TARGET Message in MAVLink Inspector

Setup Precision Loiter Mode

Attach any unused switch to the PrecLoiter option to enable precision loiter mode:

PrecLoiter Switch Configuration

Figure: PrecLoiter Switch Configuration

Activate the switch and confirm messages “PrecLoiter: LOW” and “PrecLoiter: HIGH” appear. After a test flight above the target, check telemetry for PL offset data.

Telemetry PL Data

Figure: Telemetry Data Showing PL Offsets

PID Tuning

In case of oscillations or instability during landing, check the PID parameters in ArduPilot Extended Tuning.

It is recommended to tune Position XY, Velocity XY, and Loiter Speed for the best performance:

Extended Tuning PID Parameters

Figure: ArduPilot Extended Tuning Parameters

Settings of Velocity XY P = 0.8, I = 0.2, D = 0.6 have worked well for some customers as a starting point.
It is recommended to start PID testing and performance validation in Precision Loiter mode before enabling full precision landing.

For additional information, see the ArduPilot documentation at https://ardupilot.org/ardupilot/


2 - Embention Veronte 1x Integration Guide

Connect a UAVLAS precision landing system to the Embention Veronte Autopilot 1x over CAN: Blitz messages, 1x PDI Builder mailboxes, custom messages and landing setup.

ULSDC-PBIG161026-VR · version 1.0.2 · issued October 20, 2026
The numbered PDF is the controlled copy: download it from the portal.

embention logo veronte logo

Embention, Veronte and their logos are trademarks of Embention Sistemas Inteligentes S.A., used with its permission.

Introduction

Purpose

This guide describes how to connect a UAVLAS precision landing system to an Embention Veronte Autopilot 1x over CAN, configure the receiver and the autopilot in 1x PDI Builder, verify the link and set up precision landing.

Intended Audience

Integrators setting up precision landing on multicopters and helicopters with the Embention Veronte Autopilot 1x.

Applicability

This guide applies to UAVLAS receivers that send the Blitz Position in TX frame message over CAN (ULS-XCopter-G2). Vertical take-off and landing vehicles are covered; fixed-wing recovery (ULS-OnNet) is not. Product-specific installation, pinouts and wiring are in each product’s Operation Manual and Interface Control Document. Veronte Autopilot 1x configuration is described for 1x PDI Builder; see the Embention manuals for details of each panel.

Integration

Integration Overview

The Veronte Autopilot 1x does not use MAVLink for precision landing. The UAVLAS receiver is connected to a 1x CAN bus and sends the position of the vehicle relative to the transmitter as Blitz messages (ULS-DeCoNet). The 1x receives them as a CAN Custom Message, stores the values in user variables and uses them in its navigation and landing guidance.

UAVLAS to Veronte Autopilot 1x integration overview

Figure: Integration Overview: from the Transmitter to Veronte Landing Guidance

Preparing for Integration

  • Download the latest version of ULS-Tools. Connect all UAVLAS devices to a PC and update their firmware before proceeding.
  • Install the transmitter and the receiver. Product installation details are in the Interface Control Document and Operation Manual of your product.
  • Wire the receiver to a CAN bus of the Veronte Autopilot 1x as described in Wiring below.
  • Configure the transmitter in ULS-Tools.
  • Configure the receiver in ULS-Tools as described below.
The integration uses the Blitz message 0x0012 (Position in TX frame). It is sent by the ULS-XCopter-G2 receiver. For other UAVLAS receivers, contact UAVLAS support before planning a Veronte integration.

Wiring

The receiver is connected to the CAN A (or CAN B) bus of the 68-pin connector of the Veronte Autopilot 1x with a twisted pair and a common ground. The receiver is powered from the vehicle 5 V supply.

Receiver to Veronte Autopilot 1x CAN wiring

Figure: Receiver to Veronte Autopilot 1x CAN Wiring

Receiver JX1 pinSignalVeronte 1x pin (CAN A)Veronte 1x pin (CAN B)Veronte harness wire colour
4CAN H25 — CanA P28 — CANB_PWhite – Black (25) / Yellow – Green (28)
5CAN L26 — CanA N29 — CANB_NBrown – Black (26) / Pink – Green (29)
10GND27 — GND (buses)30 — GND (buses)Grey – Green (27) / Yellow – Pink (30)
1+5V input——Vehicle 5 V supply (BEC)

Table: Receiver to Veronte Autopilot 1x Wiring The receiver pinout is that of the ULS-XCopter-G2 receiver connector JX1 (see the ULS-XCopter-G2 Interface Control Document). The Veronte 1x pins and harness colours are taken from the Veronte Autopilot 1x Hardware Manual (UM.305): CAN A and CAN B support up to 1 Mbit/s and are protected against ESD.

Veronte Autopilot 1x 68-pin connector

Figure: Veronte Autopilot 1x 68-pin Connector, Frontal View (Source: Embention UM.305)

  • Terminate the CAN bus with 120 Ω at both ends. The Veronte 1x provides one internal 120 Ω resistor, enabled in CAN Setup → Mailboxes; fit a 120 Ω resistor between CAN H and CAN L at the receiver end of the bus.
  • Pin numbering and harness colours can differ between Veronte 1x hardware versions. Check them against the hardware manual for your unit before connecting: misuse of the harness can damage the autopilot.
CAN A and CAN B are equivalent for this integration. The bus selected in 1x PDI Builder (Mailboxes and Input filter) must be the bus the receiver is wired to.

Receiver Configuration

Set the following parameters in the receiver configuration in ULS-Tools:

ParameterValueComment
canAddress1Static CAN address of the receiver, 1–63. The default 255 means “no static address”, and the receiver does not send Blitz messages to the 1x
canSpeed1000000CAN bit rate. Must match the Baudrate of the 1x CAN bus. Always set it explicitly

Table: Receiver CAN Parameters for Veronte The examples in this guide use CAN address 1 and 1 Mbit/s. On a long bus, use a lower bit rate (500, 250 or 125 kbit/s) on both devices.

Blitz CAN Messages

Each Blitz message is sent in one CAN 2.0B frame with an extended (29-bit) identifier and 8 data bytes. The identifier is built from the command, the receiver CAN address and the message ID:

CAN ID = (0x06 << 24) | (canAddress << 16) | (MSG_ID low byte << 8) | (MSG_ID high byte)
Blitz messageMSG_IDCAN ID (address 1), hexCAN ID (address 1), decimal
Position in TX frame0x00120x06011200100733440
Raw measurement (optional)0x00110x06011100100733184
Ground IMU (optional)0x00200x06012000100737024

Table: Blitz CAN Identifiers The data bytes are little-endian. The Position in TX frame message (0x0012) has the following layout:

ByteFieldTypeUnitDescription
0statusuint8—Status bits (see below)
1counteruint8—Measurement counter
2–3posXint16cmHorizontal offset of the receiver from the transmitter, X axis
4–5posYint16cmHorizontal offset of the receiver from the transmitter, Y axis
6–7posZint16cmHeight of the receiver above the transmitter (positive up)

Table: Blitz 0x0012 Position in TX Frame Payload

BitFlagDescription
0RX_CARRIER_OKIR signal detected
1RX_SQ_OKSignal quality OK
2RX_POS_OKPosition estimated — use posX/posY/posZ only when this bit is set
3RX_VEL_OKVelocity estimated
4RX_GU_IMU_OKGround unit IMU OK

Table: Blitz Status Bits The complete message set is described in the ULS-DeCoNet Blitz Messages Specification (ULSDC-PBDS051125).

Veronte Autopilot 1x Configuration

The configuration is done in 1x PDI Builder, menu Input/Output → CAN Setup.

Mailboxes

In the Mailboxes tab, select the bus the receiver is wired to (CAN A or CAN B), set its Baudrate to the receiver canSpeed and add a mailbox for the receiver message:

ParameterValueComment
Mailboxes1One mailbox is enough for one message ID
ExtendedEnabledBlitz uses 29-bit identifiers
ID0x06011200Units ID: Hexadecimal (100733440 decimal)
Mask0x1FFFFFFFUnits Mask: Hexadecimal — all 29 bits must match
Baudrate1000 kbit/sSame as the receiver canSpeed

Table: Veronte 1x Mailbox for Blitz 0x0012 1x PDI Builder Mailboxes panel

Figure: 1x PDI Builder CAN Setup, Mailboxes Panel (Source: Embention)

Leave at least one mailbox free for transmission, as required by 1x PDI Builder.

Input Filter and Custom Message Consumer

In the Configuration tab, add an Input filter producer and connect it to a Custom message consumer (for example Custom message 0):

Input filter parameterValue
PortCAN A or CAN B (the bus the receiver is wired to)
Id100733440 (decimal)
Mask536870911 (decimal, 29 bits)
Filter typeExtended

Table: Veronte 1x Input Filter for Blitz 0x0012 1x PDI Builder CAN Setup Configuration tab

Figure: Input Filter Connected to a Custom Message Consumer (Source: Embention)

1x PDI Builder Input filter settings

Figure: Input Filter Settings (Source: Embention)

RX Custom Message

In the Custom message tab used above, add an RX message:

ParameterValueComment
Can id100733440Decimal
ExtEnabledExtended identifier
EndiannessLittle endian
Time out0.2 sThe receiver sends position at up to 100 Hz
Bit IDa free user bit, e.g. “ULS message OK”True while the message is received

Table: Veronte 1x RX Custom Message Settings 1x PDI Builder RX custom message

Figure: CAN Custom Message, RX Section (Source: Embention)

Create four user variables (for example ULS status, ULS X, ULS Y, ULS Z) and build the message structure with the Edit button. The order of the fields must follow the payload:

#Field typeVariableBitsCompressionDecode min / maxEncode min / max
1VariableULS status (integer)8Compress, Max 255——
2Skip— (counter)8———
3VariableULS X (real)16Compress - Bits Signed−32768 / 32767−327.68 / 327.67
4VariableULS Y (real)16Compress - Bits Signed−32768 / 32767−327.68 / 327.67
5VariableULS Z (real)16Compress - Bits Signed−32768 / 32767−327.68 / 327.67

Table: Veronte 1x RX Custom Message Fields The Decode / Encode values scale the received centimetres to metres. Each Variable field is set up in the message editor:

1x PDI Builder Variable field

Figure: Variable Field: Compression and Encode / Decode Range (Source: Embention)

Position Valid Condition

Use the received position only when the message is being received and the receiver reports a valid position:

  • Bit ID (“ULS message OK”) is true, and
  • bit 2 (RX_POS_OK) of ULS status is set (in Block Programs, for example, ULS status bitwise AND 4 not equal to 0).

Combine both into one user bit (for example ULS position valid) and use it to enable the precision landing logic below.

Check Setup

  1. Power the transmitter and the vehicle. Place the vehicle (or hold the receiver) above the transmitter, inside its field of view.
  2. In Veronte Ops / 1x PDI Builder, add the user variables ULS status, ULS X, ULS Y, ULS Z and the bit ULS message OK to the variable list.
  3. Check that ULS message OK is true and that bit 2 of ULS status is set (with signal, signal quality and position OK, the value is 7 or more).
  4. Check that ULS Z shows the height of the receiver above the transmitter in metres.
  5. Move the receiver along each axis of the transmitter and note the sign of ULS X and ULS Y. Use these signs to set the axes (and, if needed, the invert option) in the navigation setup below.
If no message is received, check the CAN wiring and termination, that canSpeed and the 1x Baudrate match, that canAddress is between 1 and 63 and that the mailbox and input filter IDs use the same address.

Precision Landing Configuration

The received offset is a position of the vehicle relative to the landing point (the transmitter). In 1x PDI Builder it is used in Block Programs:

  • Navigation — a Relative position sensor block takes the measurement relative to a base position (the landing point, for example a Moving Object for a moving platform) and gives the navigation filter an absolute position measurement. Set the base yaw input to the heading of the transmitter, the distance to mass centre to the receiver position on the vehicle, and the horizontal / vertical variances. Enable the block only while ULS position valid is true.
  • Guidance — the landing is flown with the multicopter VTOL guidance (type Straight, Safe set as a relative distance below the vehicle, and an automation that stops the motors at touchdown), or with the Landing settings of the guidance block described in the 1x PDI Builder manual.
Relative Position Sensor settings

Figure: Relative Position Sensor Settings (Source: Embention)

For the exact parameters of the guidance and navigation blocks, see the 1x PDI Builder user manual (Block Programs → Guidance → Landing) or contact Embention support.

First Flights

  • Start with a hover above the transmitter at 3–5 m, with the precision landing logic disabled, and compare ULS X, ULS Y, ULS Z with the vehicle position.
  • Enable the relative position measurement and check that the vehicle holds its position above the transmitter.
  • Only then perform the first precision landing. Tune the variances of the relative position measurement for a smooth approach.

For additional information, see the Embention Veronte documentation at https://manuals.embention.com/


3 - PX4 Integration Guide

Connect any UAVLAS precision landing system to PX4: MAVLink port parameters, LANDING_TARGET check in QGroundControl and precision landing missions.

ULSDC-PBIG161026-PX4 · version 1.0.1 · issued October 16, 2026
The numbered PDF is the controlled copy: download it from the portal.

px4 logo

PX4 and the PX4 logo are trademarks of the Dronecode Foundation, shown to identify the autopilot this guide covers.

Introduction

Purpose

This guide describes how to connect a UAVLAS precision landing system to a PX4 autopilot, configure the MAVLink port, verify the LANDING_TARGET message and fly a precision landing mission.

Intended Audience

Integrators and operators setting up precision landing on PX4 vehicles.

Applicability

This guide applies to every UAVLAS precision landing system that connects to the autopilot over MAVLink: ULS-XCopter, ULS-ProCopter, ULS-Heli and ULS-XSpot. Product-specific installation, pinouts and wiring are in each product’s Operation Manual and Interface Control Document.

Integration

Preparing for Integration

  • Download the latest version of ULS-Tools. Connect all UAVLAS devices to a PC and update their firmware before proceeding.
  • Update the autopilot to the latest PX4 version. The stock PX4 firmware supports UAVLAS systems; no custom build is needed.
  • Install the transmitter and receiver(s) and wire the receiver to a free autopilot UART (TELEM) port. Pinouts and wiring diagrams are in the Interface Control Document and Operation Manual of your product.
  • Configure the transmitter in ULS-Tools.
  • Configure the receiver in ULS-Tools (on dual-receiver systems, configure both receivers).
Generation 3 receivers (ULS-Heli-G3, ULS-XSpot-G3) have an RS422 interface. A UART-only autopilot needs the ULS-XX-UART-RS422 onboard adapter.

The system communicates with PX4 over MAVLink 2 and reports the target in MAV_FRAME_LOCAL_NED.

Example of receiver configuration:

Receiver configuration for PX4

Figure: Receiver Configuration for PX4

Configure PX4 Autopilot

Values are provided as an example (Pixhawk4-mini AP):

PX4 ParameterValueComment
MAV_1_CONFIGTELEM/SERIAL4Requires reboot to apply the next parameters
MAV_1_FORWARDEnabledForward MAVLink messages
MAV_1_MODEOnboardSet link mode to onboard
SER_TEL4_BAUD460800_8N1Must match the UART baud rate set in the receiver configuration

Table: PX4 Autopilot Configuration Parameters

Running and Testing

After configuration and wiring, power up the drone and transmitter. In QGroundControl, go to Analyze Tools → MAVLink Inspector and check for the LANDING_TARGET MAVLink message.

If the vehicle is providing a LOCAL_POSITION_NED message to the UAVLAS system and is hovering over the beacon, the field position_valid = 1 will appear in LANDING_TARGET.

To perform precision landing, create a flight plan and enable the Precision Landing option on the landing waypoint.

LANDING_TARGET may be unavailable when connected over USB. Use a telemetry channel (UART modem, etc.) to connect the drone to QGroundControl during testing.
LANDING_TARGET in QGroundControl

Figure: LANDING_TARGET Message in QGroundControl

For additional information, see the PX4 documentation at https://docs.px4.io/main/en/