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
| ITEM | Specification |
|---|---|
| Processor | STM32H7 Arm® Cortex®-M7, 480MHz |
| Version | X25 MEGA |
| Gyro&Acce | ADIS-16607 / IIM-42652 / IIM-42653 |
| Compass | RM3100 |
| Barometer | TDK ICP-20100 / Bosch BMP581 |
| PWM OUT | 16 |
| Power IN (CAN) | 2 (model: 5055670871-5055650801) |
| GPS Ports | 2 |
| TELEM Ports | 2 |
| UART4 Ports | 1 |
| RCIN | 1(PPM/SBUS/DSM and other protocols) |
| DEBUG(DSU) | 1 |
| Ethernet (ETH) | 1 |
| CAN Bus | CAN1×3 CAN2×2 |
| SPI6 Expansion | 1 |
| ADC 3V3 | 1 |
| ADC 6V6 | 1 |
| USB Ports | 1 (Type-C) |
| I2C Ports | 3 |
| RSSI Ports | 1 |
| Power Module | PMU 2 Lite |
| Input Voltage | USB: 4.75V ~ 5.25V PMU 2 Lite: 20V ~ 70V Power: 10V ~ 18V |
| Operating Temperature | -20 ℃ ~ +85°C |
| Size | 76.5 × 45.45 × 32.2 mm |
| Weight | 108.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 Ports | Function & Purpose |
|---|---|
| POWER C1/C2 | Connect the PMU2 Lite to this port; this port is used for connecting the DroneCAN power module. |
| M1~M16 | PWM signal output ports, usable for controlling motors or servos; support 3.3V/5V PWM configuration. |
| RC IN | Connect 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. |
| RSSI | For connecting signal strength feedback modules. |
| GPS&SAFETY | Connect Neo-series GPS or C-RTK-series RTK; this port includes interfaces for GPS, safety switch, and buzzer. |
| GPS2 | Usable 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. |
| ADC3V3 | For analog level signal detection; the maximum detectable level signal is 3.3V. |
| ADC6V6 | For analog level signal detection; the maximum detectable level signal is 6.6V. |
| ETH | Ethernet port, usable for connecting Ethernet devices such as companion computers. |
| I2C1/2/3 | Connect external I2C devices (e.g., external compasses) for communication between the controller and I2C devices. |
| TELEM1/TELEM2 | Connect telemetry modules (for data transmission) to enable MAVLINK data interaction. |
| CAN1/2 | For communication between the controller and DroneCAN devices (e.g., connecting NEO4 SE GPS). |
| TYPE C | USB port of the controller, usable for connecting to the ground station, flashing firmware, and other operations. |
| SPI6 | SPI 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
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 blin 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
ODID Firmware
ArduPilot v4.6.3 ODID firmware (CUAV® Backport) for scenarios that require Remote ID functionality.
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
| SERIAL | Mark |
|---|---|
| SERIAL0 | USB |
| SERIAL1 | UART7 (TELEM1) |
| SERIAL2 | UART5 (TELEM2) |
| SERIAL3 | USART1 (GPS1&SAFETY) |
| SERIAL4 | USART2 (GPS2) |
| SERIAL5 | UART4 |
| SERIAL6 | USART3 (DEBUG/DSU) |
| SERIAL7 | OTG2 (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 name | SERVO SN | GPIO number |
|---|---|---|
| M1 | SERVO1 | 50 |
| M2 | SERVO2 | 51 |
| M3 | SERVO3 | 52 |
| M4 | SERVO4 | 53 |
| M5 | SERVO5 | 54 |
| M6 | SERVO6 | 55 |
| M7 | SERVO7 | 56 |
| M8 | SERVO8 | 57 |
| M9 | SERVO9 | 58 |
| M10 | SERVO10 | 59 |
| M11 | SERVO11 | 60 |
| M12 | SERVO12 | 61 |
| M13 | SERVO13 | 62 |
| M14 | SERVO14 | 63 |
| M15 | SERVO15 | 64 |
| M16 | SERVO16 | 65 |
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= 1RSSI_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 blin 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
- PX4-Autopilot GitHub releases (look for
cuav_x25-mega_default.px4) - PX4 stable firmware
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
| UART | Device | Port |
|---|---|---|
| USART1 | /dev/ttyS0 | GPS1 |
| USART2 | /dev/ttyS1 | GPS2 |
| USART3 | /dev/ttyS2 | Debug Console |
| UART4 | /dev/ttyS3 | UART4 |
| UART5 | /dev/ttyS4 | TELEM2 |
| USART6 | /dev/ttyS5 | RC |
| UART7 | /dev/ttyS6 | TELEM1 |
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_ENABLEparameter to Sensors Automatic config. - Set the
UAVCAN_SUB_BATparameter 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 Rail | Type | Voltage Range |
|---|---|---|
| POWER C1 | DroneCAN/UAVCAN Battery Interface | 10V – 18V |
| POWER C2 | DroneCAN/UAVCAN Battery Interface | 10V – 18V |
| USB | USB Input | 4.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 eth0BOOTPROTO: Protocol for getting the PX4 IP address. Valid values aredhcp,static,fallback(use DHCP but fall back to static address after time, if that fails)IPADDR: Static IP address (used if BOOTPROTO isstaticorfallback)NETMASK: Network maskROUTER: 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.
| Pin | Signal | Volt |
|---|---|---|
| 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) | GND | GND |
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.