...

X25 MEGA Controller: Wiring, ArduPilot & PX4 Guide

X25 MEGA is an industrial-grade, high-precision intelligent controller built for civilian unmanned systems. It features a 480MHz STM32H7 main controller and a dedicated MEMS clock, with its core built on the new-generation ADIS-16607 industrial-grade IMU, jointly developed by CUAV® and ADI. The sensor delivers lower power consumption and higher performance, and its high-range redundant design is a perfect fit for high-maneuverability, high-roll-rate scenarios, significantly improving system safety under extreme attitudes. Combined with the RM3100 compass module, a multi-redundancy sensor matrix, and PMU 2 power adaptation, the X25 MEGA brings outstanding stability to all kinds of industrial unmanned systems.

Features

  • Brand-new ADIS-16607 industrial-grade IMU
  • 10V~18V wide-range power supply architecture
  • Industrial-grade IMU sensor matrix
  • High-performance STM32H7 processor
  • IMU dual temperature compensation system
  • PCBA with conformal coating
  • Compatible with ArduPilot/PX4 mainstream open-source systems
  • Supports PMU 2 series power management units

Hardware parameters

ITEMSpecification
ProcessorSTM32H7 Arm® Cortex®-M7, 480MHz
VersionX25 MEGA
Gyro&AcceADIS-16607 / IIM-42652 / IIM-42653
CompassRM3100
BarometerTDK ICP-20100 / Bosch BMP581
PWM OUT16
Power IN (CAN)2 (model: 5055670871-5055650801)
GPS Ports2
TELEM Ports2
UART4 Ports1
RCIN1(PPM/SBUS/DSM and other protocols)
DEBUG(DSU)1
Ethernet (ETH)1
CAN BusCAN1×3
CAN2×2
SPI6 Expansion1
ADC 3V31
ADC 6V61
USB Ports1 (Type-C)
I2C Ports3
RSSI Ports1
Power ModulePMU 2 Lite
Input VoltageUSB: 4.75V ~ 5.25V
PMU 2 Lite: 20V ~ 70V
Power: 10V ~ 18V
Operating Temperature-20 ℃ ~ +85°C
Size76.5 × 45.45 × 32.2 mm
Weight108.5g

 

Size

Pinouts

PX4 Firmware compilation command

make cuav_x25-mega_default upload

ArduPilot Firmware compilation command

./waf configure --board CUAV-X25-MEGA

./waf copter --upload

Quick Wiring

This quick wiring guide explains how to power the X25 MEGA intelligent controller and connect its most critical peripheral devices.

Hardware Connection Overview

The figures below show the connections for the most important peripherals of the X25 MEGA, as well as the port layout and forward direction of the controller.

Main PortsFunction & Purpose
POWER C1/C2Connect the PMU2 Lite to this port; this port is used for connecting the DroneCAN power module.
M1~M16PWM signal output ports, usable for controlling motors or servos; support 3.3V/5V PWM configuration.
RC INConnect remote controller receivers with one-way protocols (e.g., SBUS/DSM/PPM). Note: ELRS/CRSF receivers should be connected to any serial port, not RC IN.
RSSIFor connecting signal strength feedback modules.
GPS&SAFETYConnect Neo-series GPS or C-RTK-series RTK; this port includes interfaces for GPS, safety switch, and buzzer.
GPS2Usable for connecting additional GPS/RTK modules.
DEBUG (DSU)For FMU chip debugging and reading debug device information; with ArduPilot firmware, it can be configured for other serial port functions.
ADC3V3For analog level signal detection; the maximum detectable level signal is 3.3V.
ADC6V6For analog level signal detection; the maximum detectable level signal is 6.6V.
ETHEthernet port, usable for connecting Ethernet devices such as companion computers.
I2C1/2/3Connect external I2C devices (e.g., external compasses) for communication between the controller and I2C devices.
TELEM1/TELEM2Connect telemetry modules (for data transmission) to enable MAVLINK data interaction.
CAN1/2For communication between the controller and DroneCAN devices (e.g., connecting NEO4 SE GPS).
TYPE CUSB port of the controller, usable for connecting to the ground station, flashing firmware, and other operations.
SPI6SPI port for external expansion; generally not used.

 

GPS

We recommend using a CAN GPS/RTK (such as Neo 4SE); simply connect it to the CAN 1 or CAN 2 port. You can also use a standard GPS/RTK module by connecting it to the GPS port.Most commonly used GPS modules today integrate GPS, compass, safety switch, buzzer, and LED status light. Mount the GPS module on a bracket, keep it away from other electronic devices, and align it with the aircraft’s forward direction (the arrow on the NEO GPS should match the arrow on the controller).

Safety Switch & Buzzer

 Note

When using a NEO-series GPS, no additional safety switch or buzzer is required. The safety switch acts as a motor safety lock—long-press the white button on the GPS to arm or disarm the motor.For PX4 firmware: The safety switch is disabled by default.For ArduPilot firmware: Disable the safety switch by setting the BRD_SAFETY_DEFLT parameter to 0.

Remote Controller

Connection methods vary by remote controller and receiver type:

Android Remote Controllers
Take the H16 as an example:

  • Connect TELEM1/TELEM2 to the UART0 port of the H16 remote controller, and link the H16’s SBUS pin to the RC IN port.

SBUS/DSM/PPM Protocol Receivers

  • Use wires to connect the receiver to the RC port at the rear of the controller.

ELRS/CRSF Receivers

  • Connect the ELRS/CRSF receiver to any UART serial port of the X25 MEGA (e.g., TELEM2)and modify the corresponding parameters for ArduPilot /PX4.

Power module

The X25 MEGA comes standard with the PMU2 Lite power module, which supports 20–70V input and can measure a maximum current of 220A. It can be directly connected to the Power C1/C2 port of the X25 MEGA and is plug-and-play (no configuration required). Optionally, you can choose the PMU 2s power module, which supports 140V input and 500A current detection.

Telemetry

A telemetry system allows you to communicate with the unmanned system via ground station software, enabling you to monitor and control the UAV’s status during flight. Connect the on-board unit of the telemetry system to the TELEM1 or TELEM2 port.

Ethernet Devices

The X25 MEGA integrates a 100M Ethernet port, which can be used to connect Ethernet devices such as companion computers, providing high-real-time, large-bandwidth communication for intelligent applications such as visual navigation and swarm operations.

Motors

Connect motors/servo systems to the M1~M16 ports in the order specified for your aircraft in the airframe reference document. The pin definitions of the MAIN headers are shown below (-: negative, +: positive, S: signal).

Servo Power Supply

The X25 MEGA does not supply power to servos. If you need to power servos:

  • Connect a BEC/UBEC to the positive and negative terminals of any column among M1~M16 (the positive and negative terminals of M1~M16 are interconnected).
  • Then connect the servos to the same column.

ArduPilot Firmware User Guide

This chapter describes key points to note when running ArduPilot firmware on the X25 MEGA.

Loading Firmware

The X25 MEGA ships with factory test firmware onboard, which is not suitable for any vehicle; firmware must be flashed manually before use.

 Tip

Use a ground station (e.g. Mission Planner / QGroundControl) to flash the firmware via USB or the port. Hex firmware with with bl in the name includes the bootloader and is intended for scenarios where the bootloader needs to be reflashed; it can be flashed via DFU mode or the DEBUG port.

The X25 MEGA® controller supports ArduPilot. The following mainly explains how to load the ArduPilot firmware.

Online Firmware Flashing:

  • Run the LGC Ground Station
  • Click the LGC icon > Vehicle Settings > Firmware.
  • Connect the device to your computer via USB.
  • Select the type of firmware to flash.

Load local firmware:

The following firmware is based on ArduPilot 4.6.3 stable firmware (CUAV® Backport) and already includes X25 MEGA board support (ADIS-16607 industrial-grade IMU driver).

Standard Firmware

Vehicleapj firmwarewith BLHeli firmware
MulticopterDownloadDownload
HelicopterDownloadDownload
Fixed-wingDownloadDownload
RoverDownloadDownload
BoatDownloadDownload

ODID Firmware

ArduPilot v4.6.3 ODID firmware (CUAV® Backport) for scenarios that require Remote ID functionality.

Vehicleapj firmwarewith BLHeli firmware
MulticopterDownloadDownload
HelicopterDownloadDownload
Fixed-wingDownloadDownload

 

 Tip

The official ArduPilot firmware will support the X25 MEGA in the 4.7.3 stable release.

Then follow these steps to flash:

  • In the firmware flashing settings, check Advanced Settings.
  • Select Custom Firmware as the version.
  • In the pop-up window, choose the downloaded firmware file.

GPS/RTK Configuration

 Tip

The LGC Ground Station supports graphical configuration of GPS/RTK modules. Click the corresponding GPS/RTK icon and follow the system prompts for automatic configuration. You can configure the GPS position offset via the module position slider, and configure GPS2 via the “Positioning Module 2” slider.

Power Module

The X25 MEGA comes standard with the PMU2 Lite power module, which supports 20–70V input and can measure a maximum current of 220A. It can be directly connected to the Power C1/C2 port of the X25 MEGA. Optionally, you can choose the PMU 2s power module, which supports 140V input and 500A current measurement.

Airspeed Sensor Configuration

For airframes that require an airspeed sensor, such as Plane/vertical and VTOL, you can configure it in LGC > Vehicle Settings > Sensors > Airspeed Sensor.

 Tip

To zero/calibrate the airspeed: Go to Flight View > Real-Time Properties > Airspeed Calibration.

Accelerometer/Gyroscope/Compass Calibration

 Tip

Calibrate the accelerometer, gyroscope, and compass on the Sensor Calibration page. Follow the LGC guide to complete the process.

UART Mapping

SERIALMark
SERIAL0USB
SERIAL1UART7 (TELEM1)
SERIAL2UART5 (TELEM2)
SERIAL3USART1 (GPS1&SAFETY)
SERIAL4USART2 (GPS2)
SERIAL5UART4
SERIAL6USART3 (DEBUG/DSU)
SERIAL7OTG2 (SLCAN)

 

 Note

The TELEM1 and TELEM2 ports support flow control (RTS/CTS); other UARTs do not have RTS/CTS pins. All UARTs are equipped with fully functional DMA.

RC Input

The RC IN port supports all one-way RC protocols (SBUS/PPM/DSM).

DSM/PPM/SBUS Receivers

Use Dupont wires to connect the receiver to the RC IN port—no additional parameter settings are required.

Receivers with Two-Way Protocols (e.g., CRSF/ELRS)

For receivers with two-way telemetry protocols (such as CRSF/ELRS), connect them to a UART port. The following is a setup tutorial (taking SERIAL2 (UART5/TELEM2) for two-way RC as an example):

ELRS Receivers

Connect the receiver to the TELEM2 port and set the following parameters:

  • SERIAL2_PROTOCOL=23;
  • SERIAL2_OPTIONS=0;
  • RSSI_TYPE=3;
  • RC_OPTIONS=8192 (Use 420kbaud for ELRS protocol);
  • Save the parameters and restart the controller.

CRSF Receivers

  • SERIAL2_PROTOCOL=23;
  • SERIAL2_OPTIONS=0;
  • RSSI_TYPE=3;

FPort Receivers

  • SERIAL2_PROTOCOL=23;
  • SERIAL2_OPTIONS=7;
  • RSSI_TYPE=3;

 Tip

Any UART can be used to connect an RC receiver in ArduPilot, and it is compatible with all protocols except PPM. For details, refer to Radio Control Systems.

PWM Output

The X25 MEGA supports 16 PWM output channels, which are divided into 5 groups. Each group uses a different timer—only one output rate or protocol can be used for all channels in the same group.

PWM Output Grouping:

  • PWM 1–4: Group 1 (TIM5)
  • PWM 5–8: Group 2 (TIM4)
  • PWM 9–11: Group 3 (TIM1)
  • PWM 12–14: Group 4 (TIM8)
  • PWM 15–16: Group 5 (TIM12)

 NOTE

Channels in the same group must use the same output rate. If any channel in a group uses DShot, all channels in that group must use DShot. Channels 15 and 16 do not support DShot.

 Tip

All channels support switching between 3.3V/5V PWM. For long cable runs or high-power systems, 5V PWM is recommended. Use the BRD_PWM_VOLT_SEL parameter to set the PWM voltage level.

GPIO

All servo outputs can be used as GPIOs (for relays, camera shutters, RPM, etc.). To use a servo output as a GPIO, set SERVOx_FUNCTION=-1 (where x is the PIN).

GPIO Pin Mapping:

Pin nameSERVO SNGPIO number
M1SERVO150
M2SERVO251
M3SERVO352
M4SERVO453
M5SERVO554
M6SERVO655
M7SERVO756
M8SERVO857
M9SERVO958
M10SERVO1059
M11SERVO1160
M12SERVO1261
M13SERVO1362
M14SERVO1463
M15SERVO1564
M16SERVO1665

 

Example: To use M14 as a relay, set Relay_pin=63.

Analog Input

The X25 MEGA has three analog input ports: ADC Pin13 → ADC 3.3V ADC Pin12 → ADC 6.6V ADC Pin10 → RSSI

RSSI

The X25 MEGA has an RSSI (voltage signal) telemetry strength monitoring port. Enable it by setting the following parameters:

  • RSSI_TYPE = 1
  • RSSI_ANA_PIN = 10

Compass/Magnetometer

The X25 MEGA has a built-in RM3100 compass. However, due to potential interference, this board is usually used with an external I2C compass (as part of a GPS/compass combination). Priority should be given to using the external compass (e.g., the compass on a GPS) as the primary compass.

Ethernet Port Configuration

The X25 MEGA has an ETH port. Configure it by following the ArduPilot Ethernet Configuration Tutorial.

Development Guide

IMPORTANT

CUAV® does not provide technical guidance for secondary development of firmware or software. For related questions, please carefully read the relevant guides or seek assistance from the ArduPilot discordchannel.

ArduPilot Firmware Compilation

./waf configure --board CUAV-X25-MEGA

./waf copter --upload

 NOTE

Channels in the same group must use the same output rate. If any channel in a group uses DShot, all channels in that group must use DShot. Channels 15 and 16 do not support DShot.

Pre-built firmware can be found in the Load local firmware section above.

The controller comes pre-installed with an ArduPilot-compatible bootloader, allowing any ArduPilot-compatible ground station to load *.apj firmware files.

PX4 Firmware Guide

This chapter describes the points to be aware of when running PX4 firmware on the X25 MEGA. The PX4 docs have the complete PX4 guide.

Loading firmware

The X25 MEGA ships with factory test firmware onboard, which is not suitable for any vehicle; firmware must be flashed manually before use.

 Tip

Use a ground station (e.g. Mission Planner / QGroundControl) to flash the firmware via USB or the port. Hex firmware with with bl in the name includes the bootloader and is intended for scenarios where the bootloader needs to be reflashed; it can be flashed via DFU mode or the DEBUG port.

The X25 MEGA® controller supports PX4. The following mainly explains how to load the PX4 firmware.

PX4 Firmware Download

There are two methods for firmware flashing: online flashing and local flashing. You can choose based on your needs.

Write firmware online:

  • Download and run the LGC Ground Station, then click the LGC icon.
  • Navigate to Vehicle Settings → Firmware, and connect the controller to the computer via USB.
  • Select the required “PX4 Pro vxxxx” version and click Confirm.
  • After the loading is complete, if no operation is performed, the controller will connect automatically after a dozen seconds.

Local Flashing (Custom Firmware)

  • Download the X25 MEGA firmware file to your local computer.
  • Enter the firmware flashing settings, check Advanced Settings, and select the version as Custom Firmware.
  • In the pop-up window, select the downloaded local firmware file to complete the flashing.

Serial Mapping

UARTDevicePort
USART1/dev/ttyS0GPS1
USART2/dev/ttyS1GPS2
USART3/dev/ttyS2Debug Console
UART4/dev/ttyS3UART4
UART5/dev/ttyS4TELEM2
USART6/dev/ttyS5RC
UART7/dev/ttyS6TELEM1

Power Module Settings

The X25 MEGA comes standard with a PMU2 Lite power module, which supports a 20-70V input and a maximum current of 220A. It can be directly connected to the X25 MEGA’s Power C1/C2 ports. Once connected, power on the controller without configuring any parameters. Optionally, you can choose the PMU 2s power module, which supports 140V input and 500A current measurement.

If you modify its settings, you need to set the following parameters and restart the controller after writing.

  • Set the UAVCAN_ENABLE parameter to Sensors Automatic config.
  • Set the UAVCAN_SUB_BAT parameter to Raw data.

 NOTE

Analog power modules are not recommended due to poor accuracy and large temperature drift. It is recommended to use CAN power modules such as PMU2 Lite (with factory calibration and temperature compensation) or CAN smart batteries.

Rated Voltage

The X25 MEGA supports triple power redundancy. Pay attention to the voltage range of each interface.

Power RailTypeVoltage Range
POWER C1DroneCAN/UAVCAN Battery Interface10V – 18V
POWER C2DroneCAN/UAVCAN Battery Interface10V – 18V
USBUSB Input4.75V – 5.25V

 

 Tip

Unlike other controllers, the X25 MEGA’s POWER C1/C2 ports do not support 5V input, only 10V-18V voltage input. For the default package, the PMU 2lite converts the 20-70V voltage to 15V to power the X25 MEGA.

Ethernet Configuration

The X25 MEGA supports LAN connection via Ethernet. Devices in the LAN must be on the same IP network (same subnet) to ensure each device has a unique IP address and can communicate with other devices. By default, Ethernet uses DHCP for automatic IP assignment; if DHCP fails, you need to set the IP manually.

Setting the IP Address

  • Connect the controller to the computer using a USB cable.
  • Open QGroundControl via the MAVLink Console → Analyze Tools.
  • Enter the following commands in the MAVLink Console (to write values to the configuration file):

echo DEVICE=eth0 > /fs/microsd/net.cfg
echo BOOTPROTO=fallback >> /fs/microsd/net.cfg
echo IPADDR=10.41.10.2 >> /fs/microsd/net.cfg
echo NETMASK=255.255.255.0 >>/fs/microsd/net.cfg
echo ROUTER=10.41.10.254 >>/fs/microsd/net.cfg
echo DNS=10.41.10.254 >>/fs/microsd/net.cfg

  • After setting the network configuration, disconnect the USB cable and restart the controller.
  • After the setup is complete, the configuration information will be saved in the SD card directory /fs/microsd/net.cfg name=value as follows:

DEVICE=eth0
BOOTPROTO=fallback
IPADDR=10.41.10.2
NETMASK=255.255.255.0
ROUTER=10.41.10.254
DNS=10.41.10.254

Where the values are:

  • DEVICE: Interface name. Default is eth0
  • BOOTPROTO: Protocol for getting the PX4 IP address. Valid values are dhcp, static, fallback (use DHCP but fall back to static address after time, if that fails)
  • IPADDR: Static IP address (used if BOOTPROTO is static or fallback)
  • NETMASK: Network mask
  • ROUTER: The address of the default route.
  • DNS: The address of the DNS server.

Network Connectivity Test

  • Open the Windows Command Prompt.
  • Enter the command: ping 10.41.10.2

 Tip

A response with network latency data indicates that communication is established. A “request timed out” message may mean the IP address is incorrect or communication has failed. For more details, refer to PX4 Ethernet Setup.

Connecting to GCS

Run the LGC Ground Station software. Configure the Ethernet port to transmit MAVLink data.

Parameter Value GCS Display Description
MAV_2_CONFIG 1000 Ethernet Configure MAVLink to transmit via Ethernet
MAV_2_BROADCAST 1 Always broadcast Broadcast messages continuously
MAV_2_MODE 0 Normal Send the “normal” set of MAVLink messages (i.e., the GCS set)
MAV_2_RADIO_CTL 0 Disabled Disable software restrictions on MAVLink traffic
MAV_2_RATE 100000 100000B/s Maximum transmission rate
MAV_2_REMOTE_PRT 14550 14550 MAVLink remote port 14550 (for GCS)
MAV_2_UDP_PRT 14550 14550 MAVLink remote port 14550 (for GCS)
 
  • Create a new network connection: Go to Application Settings → Commlinks → Add Connection. Set the connection name, select UDP as the connection type, enter the controller’s IP address and port number (14550), then click OK to confirm the creation.

  • Once created, select the connection to establish communication.

Firmware Compilation

 NOTE

Most users do not need to compile firmware; they can directly flash firmware online via LGC/QGroundControl.

Compilation Command

make cuav_x25-mega_default

Debug Port

The PX4 System Console and SWD run on the FMU Debug port. They can be used with the C-ADB DebugAdapter for debugging configuration.

PinSignalVolt
1 (red)5V++5V
2 (blk)DEBUG TX (OUT)+3.3V
3 (blk)DEBUG RX (IN)+3.3V
4 (blk)FMU_SWDIO+3.3V
5 (blk)FMU_SWCLK+3.3V
6 (blk)GNDGND

 

Development Guide

NOTE

CUAV® does not provide technical support for secondary development of firmware or software. For related questions, please read the relevant guides carefully.

More Information

Seraphinite AcceleratorOptimized by Seraphinite Accelerator
Turns on site high speed to be attractive for people and search engines.