ULS-Heli-G2 Interface Control Document
ULSDC-PBICD210925 · version 1.0.1 · issued September 22, 2025
The numbered PDF is the controlled copy: download it from the portal.
Introduction
Purpose
This document outlines the interfaces between the ULS-Heli-G2 system components, including the transmitter, receiver, and autopilot systems (Ardupilot and PX4 and similar).
Scope
This document is intended for use by system engineers, integrators, and developers working with ULS-Heli-G2 systems. It provides detailed information on the interfaces between the system components, ensuring seamless integration and operation.
System Components
Transmitter (Ground Unit)

Figure: ULS-Heli-G2 Transmitter A transmitter is a device placed on the ground (platform, moving object). It emits a signal in the Infrared range and serves as a kind of beacon. Transmitter marks position for drone landing. The primary function of the transmitter is to continuously send out a coded signal that can be detected and interpreted by the receiver unit onboard the XCopter. This signal contains critical information needed for the operation of the system, such as positional data, commands, and status.
Receiver (Onboard Unit)

Figure: ULS-Heli-G2 Receiver A receiver is a device that is placed on board an aircraft. The receiver decodes this signal to derive flight information such as positional coordinates, real-time transmitter status updates, and landing guidance. It interprets the data to navigate accurately and ensure drone follows the intended flight path. It provides feedback to the autopilot systems, such as Ardupilot and PX4, to adjust the flight parameters as needed for optimal and safety landing or hovering above.
Interface Overview

Figure: ULS-Heli-G2 System Interfaces Overview
Transmitter to Control PC Interface (External Sensors)
The transmitter can be connected to a control PC or external equipment for configuration, status monitoring, and data exchange.
Data Types
- Status information
- Control signals
- Transmitter configuration
- External IMU/COMPASS data
Connection Types
- CAN Bus - For network communication
- USB - For configuration and firmware updates
- RS422 - For serial communication with external sensors
Transmitter Pinout

| Pin | Function |
|---|---|
| 1 | Vin +18V – +28V |
| 2 | RS422A |
| 3 | RS422B |
| 4 | RS422Y |
| 5 | RS422Z |
| 6 | CAN-L |
| 7 | CAN-H |
| 8 | USB-D- |
| 9 | USB-D+ |
| 10 | GND |
Table: Transmitter 10 Pin Connector Pinout
Transmitter to Receiver Interface
The transmitter and receiver use an optical interface to exchange data. Transmission uses IR emission at 940 nanometers. Data transmission is only in the direction from the transmitter to the receiver.
Data Types
- Position encoded
- Status encoded data (Transmitter orientation and instructions)
Connection Type
- Optical IR 940nm - Infrared optical link
Receiver to Autopilot and Receiver to PC Interfaces
Data Types
- MAVLink messages
- ULS-Blitz frames
- ASCII protocol
Connection Types
- UART - Serial communication with autopilot
- CAN - Network communication
- USB - Direct PC connection
Receiver Pinout

| Pin | Function |
|---|---|
| 1 | Vin (+5V) |
| 2 | CANH |
| 3 | CANL |
| 4 | GND |
Table: 4 Pin Connector Pinout
| Pin | Function |
|---|---|
| 1 | Vin (+5V) |
| 2 | CANH |
| 3 | CANL |
| 4 | UART_TX (OUT) |
| 5 | UART_RX(IN) |
| 6 | USB_D- |
| 7 | USB_D+ |
| 8 | GND |
Table: 8 Pin Connector Pinout
Powering Interfaces

Figure: Power Distribution and Connections
Transmitter Electrical Characteristics
| Parameter | Value | Unit | Notes |
|---|---|---|---|
| Supply Voltage | 22.0 - 26.0 | V | Nominal 24V |
| Supply Current | 4 | A | Peak |
| Power Consumption | 18.1 | W | Typical |
Table: Transmitter Electrical Specifications
Receiver Electrical Characteristics
| Parameter | Value | Unit | Notes |
|---|---|---|---|
| Supply Voltage | 5.0 | V | From flight controller |
| Supply Current | 1 | A | Peak |
| Power Consumption | 3 | W | Typical |
Table: Receiver Electrical Specifications
Functional Interfaces

Figure: Data Flow and Functional Interfaces
Data Exchange
The ULS-Heli-G2 system implements several data exchange mechanisms:
Control PC Functions:
- Configure and view status of transmitter
- Set configuration of receivers
- Send control signals (On/off, compass override information)
External Equipment:
- External IMU/Compass equipment can be used to override internal IMU/compass information
Receiver Functions:
- Accept data from transmitter over IR signal (position field information and ground unit IMU data)
- Accept NED and Attitude information from autopilot to convert coordinate system
- Multiple receivers can communicate to calculate vehicle orientation (YAW)
- Send position offset data to autopilot
Mechanical Interfaces

Figure: Slave receiver Mechanical Dimensions

Figure: Master receiver Mechanical Dimensions

Figure: Transmitter Mechanical Dimensions
Transmitter Mounting
Use 16 mounting holes to mount transmitter to panel. 3D model of the transmitter can be provided upon request.
Receiver Mounting
Both master and slave receivers have mounting provisions for secure installation. 3D models of the receivers can be provided upon request.
Communication Protocols
Overview
The protocol used by devices for configuration is proprietary and is described in other documents. However, the protocol implements the possibility of transmitting messages (Blitz messages) that can be used by the user to control the device and obtain information. These messages are universal, and the format describes the data that is transmitted by various devices in our system connected to a single network.
Use CMD=6 to send Blitz messages.
In this document, the CAN protocol is specified. RS485 is used to implement custom protocols that can be defined in the future.
CAN Bus Protocol Frame Format
flowchart LR A[Sender Device] --> B[GLOBAL] B --> C[CMD = 6] C --> D[ID] D --> E[dsn_lid] E --> F[msg_id] F --> G[Blitz Payload data <= 8 bytes] G --> H[Receiver Device]
The CAN protocol uses the following frame structure:
| Field | Description |
|---|---|
| GLOBAL | Flag used to send packets over several local networks |
| CMD | Command field (Use CMD=6 to send Blitz messages) |
| ID | Packet sender ID (local id src_lid for local packets and device id for global packets src_did) |
| dsn_lid | Destination local ID address |
| msg_id | Message ID used to identify Blitz packet types |
Table: CAN Protocol Frame Fields
Status Bit Definitions
Most messages include a status byte with the following bit definitions:
| Bit | Flag | Description |
|---|---|---|
| 0 | ULS_STATUS_RX_CARRIER_OK | IR signal detected |
| 1 | ULS_STATUS_RX_SQ_OK | Signal quality OK |
| 2 | ULS_STATUS_RX_POS_OK | Position estimated |
| 3 | ULS_STATUS_RX_VEL_OK | Velocity estimated |
| 4 | ULS_STATUS_RX_GU_IMU_OK | Ground Unit IMU OK |
| 5 | ULS_STATUS_RX_MRX_OK | MRX message received (secondary receiver) |
| 6 | ULS_STATUS_RX_MRXDATA_OK | MRX Yaw and Distance calculated OK |
Table: Status Bit Definitions
Common Data Structure
Blitz Common Data Structure
Structure: __blitz_common_data_struct
| Field | Type | Description |
|---|---|---|
src_lid | uint8_t | Source logical ID |
msg_id | uint16_t | Message ID (see message types below) |
data | union | Message-specific data (8 bytes max) |
Table: Blitz Common Data Structure The union contains all possible message structures:
xcg1_rx_raw_measurmetrx_raw_measurmetrx_pos_in_tx_framerx_mrxrx_dacs
Usage: Universal container for all ULS Blitz message types.
Implementation Notes
- Packed Structures: All structures use
__attribute__((packed))to ensure no padding bytes are added by the compiler. - Endianness: The protocol assumes little-endian byte order for multi-byte fields.
- Angular Precision: Angular measurements use 16-bit signed integers with specific scaling factors for different ranges.
- Distance Units: Distance measurements may use different units (cm, 10cm increments) depending on the message type.
Message Types
XCG1 Raw Measurement (0x0010)
Message ID: ULS_BLITZ_MSG_ID_XCG1_RX_RAW_MEASURMENT (0x0010)
Structure: __uls_blitz_xcg1_rx_raw_measurmet
| Field | Type | Description |
|---|---|---|
status | uint8_t | Status bits (see Status Bit Definitions above) |
d | uint8_t | Distance in 10 cm increments |
aX | int16_t | Angular information X-axis, proportional [-30000 = -30°, +30000 = +30°] |
aY | int16_t | Angular information Y-axis, proportional [-30000 = -30°, +30000 = +30°] |
oF | int8_t | Sensor offset Forward in cm |
oR | int8_t | Sensor offset Right in cm |
Table: XCG1 Raw Measurement Message Format Purpose: Legacy raw measurement data for XCG1 systems with limited angular range.
Raw Measurement (0x0011)
Message ID: ULS_BLITZ_MSG_ID_RX_RAW_MEASURMENT (0x0011)
Structure: __uls_blitz_msg_rx_raw_measurmet
| Field | Type | Description |
|---|---|---|
status | uint8_t | Status bits (see Status Bit Definitions above) |
counter | uint8_t | Message counter for tracking |
aX | int16_t | Angular information X-axis [-180° to +180°] |
aY | int16_t | Angular information Y-axis [-180° to +180°] |
distance | uint16_t | Distance measurement |
Table: Raw Measurement Message Format Angular Conversion Formula:
degrees = (value_int16 * 180.0f) / 32767.0f
Purpose: Standard raw measurement data with full angular range.
Position in TX Frame (0x0012)
Message ID: ULS_BLITZ_MSG_ID_RX_POS_IN_TX_FRAME (0x0012)
Structure: __uls_blitz_msg_rx_pos_in_tx_frame
| Field | Type | Description |
|---|---|---|
status | uint8_t | Status bits (see Status Bit Definitions above) |
counter | uint8_t | Message counter for tracking |
posX | int16_t | Position X-coordinate in transmitter frame (cm) |
posY | int16_t | Position Y-coordinate in transmitter frame (cm) |
posZ | int16_t | Position Z-coordinate in transmitter frame (cm) |
Table: Position in TX Frame Message Format Purpose: 3D position data relative to the transmitter coordinate system.
MRX Information (0x0013)
Message ID: ULS_BLITZ_MSG_ID_RX_MRX (0x0013)
Structure: __uls_blitz_msg_rx_mrx
| Field | Type | Description |
|---|---|---|
status | uint8_t | Status bits (see Status Bit Definitions above) |
counter | uint8_t | Message counter for tracking |
yaw | int16_t | Yaw angle [-180° to +180°] |
distance | uint16_t | Distance measurement in cm |
Table: MRX Information Message Format Purpose: Multi-receiver (MRX) information for secondary receiver data.
DACS Information (0x0014)
Message ID: ULS_BLITZ_MSG_ID_RX_DACS (0x0014)
Structure: __uls_blitz_msg_rx_dacs
| Field | Type | Description |
|---|---|---|
status | uint8_t | Status bits (see Status Bit Definitions above) |
counter | uint8_t | Message counter for tracking |
yaw | int16_t | Yaw angle [-180° to +180°] |
distance | uint16_t | Distance measurement |
yawContinuous | int16_t | Continuous yaw angle ±32768° |
Table: DACS Information Message Format Purpose: DACS (Distance and Azimuth Correction System) data with continuous yaw tracking. Available on VTOL systems only.
Ground IMU Measurement (0x0020)
Message ID: ULS_BLITZ_MSG_ID_GIMU_MEASUREMENT (0x0020)
Structure: __uls_blitz_msg_gimu_data
| Field | Type | Description |
|---|---|---|
status | uint8_t | Status bits (see Status Bit Definitions above) |
counter | uint8_t | Message counter for tracking |
roll | int16_t | Roll angle [-180° to +180°] |
pitch | int16_t | Pitch angle [-180° to +180°] |
yaw | int16_t | Yaw angle [-180° to +180°] |
Table: Ground IMU Measurement Message Format Angular Conversion Formula:
degrees = (value_int16 * 180.0f) / 32767.0f
Purpose: Ground unit IMU (Inertial Measurement Unit) orientation data.
IMU Override (0x0030)
Message ID: ULS_BLITZ_MSG_ID_XX_TXC_IMU_OVERRIDE (0x0030)
Structure: __uls_blitz_msg_xx_txc_imu_override
| Field | Type | Description |
|---|---|---|
control | uint8_t | Control bits (see Control Bits below) |
counter | uint8_t | Message counter for tracking |
roll | int16_t | Override roll angle [-180° to +180°] |
pitch | int16_t | Override pitch angle [-180° to +180°] |
yaw | int16_t | Override yaw angle [-180° to +180°] |
Table: IMU Override Message Format Control Bits:
| Bit | Description |
|---|---|
| 0 | SET Roll - Enable roll angle override |
| 1 | SET Pitch - Enable pitch angle override |
| 2 | SET Yaw - Enable yaw angle override |
| 3-7 | Reserved |
Table: IMU Override Control Bits Angular Conversion Formula:
degrees = (value_int16 * 180.0f) / 32767.0f
Purpose: Override IMU data on ground unit for external orientation control.
Magnetometer Override (0x0031)
Message ID: ULS_BLITZ_MSG_ID_XX_TXC_MAG_OVERRIDE (0x0031)
Structure: __uls_blitz_msg_xx_txc_mag_override
| Field | Type | Description |
|---|---|---|
control | uint8_t | Control bits (see Control Bits below) |
counter | uint8_t | Message counter for tracking |
mx | int16_t | Magnetic field X-component |
my | int16_t | Magnetic field Y-component |
mz | int16_t | Magnetic field Z-component |
Table: Magnetometer Override Message Format Control Bits:
| Bit | Description |
|---|---|
| 0 | SET override - Enable magnetometer override |
| 1-7 | Reserved |
Table: Magnetometer Override Control Bits Magnetic Field Conversion Formula:
mag_value = (value_int16 * 1.0f) / 32767.0f
Purpose: Override magnetometer data on ground unit for external compass control.
Environmental Conditions
For the Receiver Unit
- Operating temperature range: -40°C to +85°C
- Humidity range: Less than 70%
- Dust and moisture protection: IP67
- 6 - Complete protection against dust ingress
- 7 - Protected against temporary immersion in water (up to 1 meter depth for 30 minutes)
For the Transmitter Unit
- Operating temperature range: -40°C to +85°C
- Humidity range: Less than 70%
- Dust and moisture protection: IP67
- 6 - Complete protection against dust ingress
- 7 - Protected against temporary immersion in water (up to 1 meter depth for 30 minutes)
Storage Conditions
- Storage temperature: -40°C to +85°C
- Relative humidity: Up to 70% (non-condensing)
Part Numbering
| Part Number | Description |
|---|---|
| ULS-HELI-G2 | System set with 3 receivers. |
| ULSDV-HL-TX-G2 | Transmitter unit. |
| ULSDV-HL-RXM-G2 | Master receiver unit. |
| ULSDV-HL-RXS-G2 | Slave receiver unit. |
| SA610/P4IB | 4 Pin Connector for receiver. Manufacturer Weipu. |
| SA810/P8IIB | 8 Pin Connector for receiver. Manufacturer Weipu. |
| SA1610/P10IIB-1 | 10 Pin Connector for transmitter. Manufacturer Weipu. |
Table: Part Numbering
Specifications
| Parameter | Value |
|---|---|
| Distance range m.: | 50.0 |
| Working angle (deg): | 60 |
| Data update frequency (Hz): | 20 |
Table: Common Specification
| Parameter | Value |
|---|---|
| Field of view (deg): | 90 |
| Dimensions mm : | 46x26x12 |
| Weight g.: | 40 |
| Power Consumption (W): | 3 |
| Voltage supply (V): | 5 |
| Interfaces: | USB, CAN, UART |
Table: Receiver (Slave) Specifications
| Parameter | Value |
|---|---|
| Field of view (deg): | 90 |
| Dimensions mm : | 50x50x14 |
| Weight g. : | 60 |
| Power Consumption (W): | 3 |
| Voltage supply (V): | 5 |
| Interfaces: | USB, CAN, UART |
Table: Receiver (Master) Specifications
| Parameter | Value |
|---|---|
| Field of emitting (deg): | 60 |
| Dimensions mm. : | 290x215x48 |
| Weight g.: | 4100 |
| Power Consumption (W): | 10 |
| Voltage supply (V): | 22.0-26.0 |
| Interfaces : | USB, CAN, UART |
Table: Transmitter (Ground) Specifications
Change Control
All changes to this document must be reviewed and approved by the relevant technical leads and stakeholders
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve this page !
Sorry to hear that. Please tell us how we can improve it !