Skip to main content

NxtPX4 V2 Mini Flight Controller — User Manual

The NxtPX4 V2 (board name: NxtPX4v2) is a 20×20 mm mini flight controller with full-size H7 performance, designed as open-source hardware by the HKUST UAV Group and manufactured by MicoAir. It was created for a specific audience: researchers and developers building small PX4 drones — VIO (visual-inertial odometry), swarm, and autonomy work — who need clean dual-IMU data, a hardware design they can inspect and modify, and a board that fits airframes where a 30.5×30.5 stack won't. It runs PX4 natively (hardware follows the PX4-V6 standard) and is also officially supported by ArduPilot.

NxtPX4 V2 mini flight controller — 20×20 mount, STM32H743, dual BMI088, open-source HKUST design

Where to buy

Why researchers care about "open hardware + PX4-V6 standard"

Most FPV flight controllers are closed designs: you get the board, not the schematic. The NxtPX4 V2's full hardware design is public, which means a lab can verify signal paths, add custom sensors, or respin the board for a project — no reverse-engineering. Following the PX4-V6 hardware standard means mainline PX4 firmware runs without vendor patches, and future PX4 releases keep working. HKUST also maintains a modified branch that publishes IMU data to ROS at 500 Hz — exactly what VIO pipelines want.

NxtPX4 V2, H743 V2, or F405 V2 — which one?

NxtPX4 V2H743 V2F405 V2
ProcessorSTM32H743, 480 MHzSTM32H743, 480 MHzSTM32F405, 168 MHz
IMUBMI088 × 2 (dual)BMI088 + BMI270 (dual)BMI088
FirmwarePX4 (native) / ArduPilotArduPilot / PX4 / INAV / BetaflightArduPilot / INAV
Mounting20 × 20 mm, Φ330.5 × 30.5 mm30.5 × 30.5 mm
Weight6.5 g10 g9 g
OSD chipNone (HD DisplayPort only)AT7456E + DisplayPortAT7456E + DisplayPort
Best forSmall PX4 research / VIO dronesDo-it-all flagshipBudget long-range

Specifications

ItemSpecification
MCUSTM32H743VIH6, 480 MHz, 2 MB flash
IMU2× BMI088 (dual, independent)
BarometerSPL06
LoggingMicroSD card slot
Interfaces7× UART, 8× PWM, 1× I2C, 1× SPI, 1× SWD, 2× ADC
USBType-C
HD VTX connectorSH1.0-6P for DJI O3 Air Unit (DisplayPort)
BEC5 V 2.5 A (peripherals) + 12 V 2.5 A (VTX, camera)
Battery input2–6S LiPo, on-board voltage sensing
CompassNone built-in — connect external via I2C (SDA/SCL)
GPIOs3 on the AUX connector (ArduPilot pins 81/82/83)
Mounting20 × 20 mm, Φ3 mm holes
Dimensions / weight27 × 32 × 8 mm / 6.5 g
Hardware designOpen source (HKUST Nxt-FC), PX4-V6 standard

Pinout

Front and back pad layout:

NxtPX4 V2 front view — pads and connectors labeled

NxtPX4 V2 back view — pads and connectors labeled

UART mapping

PortArduPilotPX4Default function
USBSERIAL0GCS connection
UART2SERIAL1TELEM1MAVLink2 telemetry
UART4SERIAL2TELEM2MAVLink2 (companion computer)
UART1SERIAL3GPS1GPS
UART3SERIAL4GPS2DJI O3 (DisplayPort)
UART7SERIAL5TELEM3ESC telemetry (RX only)
UART5SERIAL6RCRC receiver input
UART8SERIAL7SERIAL4Spare (user)

All UARTs are DMA-enabled. Note the deliberate numbering: physical UART2/UART4 are the MAVLink telemetry ports — on a research drone, that's one for the radio and one for the onboard computer.

RC input

UART5 is the default RC port:

  • SBUS — the SBUS pin (hardware-inverted into RX5) works out of the box; on PX4 set RC_INPUT_PROTO = Auto
  • CRSF / ELRS — wire RX5 and TX5; on ArduPilot set SERIAL6_OPTIONS = 0 (telemetry comes back automatically)
  • FPort — TX5 with SERIAL6_OPTIONS = 7; SRXL2 — TX5 with SERIAL6_OPTIONS = 4
  • PPM is not supported

RC can also be moved to UART2, UART4 or UART8 (SERIALn_PROTOCOL = 23, and change SERIAL6_PROTOCOL away from 23).

HD VTX

The SH1.0-6P connector carries a DJI O3 Air Unit connection with DisplayPort OSD. There is no analog OSD chip on this board — it's designed for HD video or camera-less research airframes.

HD VTX connector — pin 1 is 12 V

Pin 1 of the SH1.0-6P connector carries the 12 V BEC rail. Never wire a 5 V peripheral to it.

PWM outputs and DShot

8 PWM outputs, all supporting bi-directional DShot (ArduPilot). Outputs are grouped — same protocol within a group:

GroupOutputs
11, 2, 3, 4
25, 6
37, 8

Battery monitoring

Built-in voltage sensing (up to 6S); current sensing via an external sensor on the Curr pin (typically from a 4-in-1 ESC). Default ArduPilot parameters:

ParameterValue
BATT_MONITOR4
BATT_VOLT_PIN4
BATT_CURR_PIN8
BATT_VOLT_MULT10.2
BATT_AMP_PERVLT20.4

Note the values differ from the 30.5-size boards — don't copy parameters across models.

Compass

No compass on board. For outdoor GPS flight, add a GPS+compass combo on the SDA/SCL pads. Indoor VIO-only research builds typically fly without one.

Firmware

FirmwareSupportTarget / notes
PX4NativeBuild targets hkust_nxt-dual (bootloader: hkust_nxt-dual_bootloader); 500 Hz IMU ROS branch from HKUST
ArduPilotOfficialTarget NxtPX4v2 — builds on firmware.ardupilot.org

First-time flashing (DFU)

  1. Hold the bootloader button, plug in USB — the board enumerates in DFU mode
  2. Flash the *_with_bl.hex firmware with your DFU tool
  3. Afterwards, update with .apj files (ArduPilot) or via QGroundControl (PX4) over plain USB

FAQ

Is this board only for researchers?

No — it's also a solid pick for any small ArduPilot/PX4 build where 20×20 mounting and 6.5 g matter. But its distinctive features (open hardware, PX4-V6 compliance, 500 Hz IMU ROS topic) are aimed at autonomy work; if you just want a general-purpose FC, the H743 V2 gives you more UARTs, analog OSD and Bluetooth for similar money.

How do I connect a companion computer (Jetson / Pi)?

Wire the companion's UART to UART4 (TELEM2 on PX4) and set it up as a MAVLink port — the standard PX4 offboard-control path. UART2 stays free for a telemetry radio like the LR900.

Can it fly FPV with analog video?

Not directly — there's no analog OSD chip. Pair it with an HD system (DJI O3) via the HD VTX connector, or add an external OSD. For analog-first builds, choose the F405 V2 or H743 V2.


Written and maintained by the Robofusion engineering team. Hardware reference data from MicoAir Tech, HKUST UAV Group, and the ArduPilot documentation (CC BY-SA 3.0).