MicoAir
Docs directory
Table of contents

MicoAir405v2 User Manual

Product Overview

MicoAir405v2 is a general-purpose flight controller for small and medium-sized drones and multirotor platforms. It uses an STM32F405 MCU and integrates a high-performance BMI088 IMU, SPL06 barometer, analog-video OSD, microSD card slot, and a comprehensive set of UART and PWM resources. It runs ArduPilot and INAV and is suitable for projects that require analog video, multiple peripheral interfaces, and a compact 30.5 × 30.5 mm mounting pattern.

Front and back of the MicoAir405v2 flight controller

Key Features

ItemSpecification
MCUSTM32F405RGT6, 168 MHz, 1 MB Flash
IMUBMI088
BarometerSPL06
Analog OSDAT7456E
Data loggingmicroSD card slot
UART6 UARTs
Motor / servo outputs10 PWM outputs
Expansion buses1 × I²C, 1 × SWD
Analog inputs2 ADC inputs for voltage and current monitoring
USBUSB Type-C
Regulated outputs5 V / 3 A, 9 V / 3 A
Firmware supportArduPilot 4.5.0 and later; INAV 8.0.0 and later
Mounting-hole pattern30.5 × 30.5 mm, approximately 4 mm hole diameter
DimensionsApproximately 36 × 36 × 8 mm
WeightApproximately 9 g

Purchase

MicoAir Tech Store

Hardware Specifications

Processor and Sensors

MicoAir405v2 uses an STM32F405RGT6 MCU. The BMI088 measures acceleration and angular velocity, while the SPL06 provides barometric altitude data. The flight controller has no onboard magnetometer. If heading data is required, connect a GPS with an integrated magnetometer or a separate compass to the external I²C interface.

Interfaces and Outputs

  • Six UARTs for peripherals such as GPS, telemetry radios, RC receivers, digital video transmitters, and ESC telemetry.
  • Ten PWM outputs, with outputs 1–8 suitable for motors or servos.
  • One external I²C bus for compatible sensors such as magnetometers and airspeed sensors.
  • One SWD interface for low-level debugging and recovery.
  • Two ADC inputs for battery-voltage and current sensing.
  • AT7456E analog OSD for overlaying flight information on an analog-video feed.
  • microSD card slot for flight-log storage.

Power and Mechanical Design

The flight controller provides regulated 5 V / 3 A and 9 V / 3 A outputs.

Distinguish carefully between 5V, 9V, and VBAT. Connecting battery voltage to a 5 V input, or connecting the 9 V output to a receiver rated only for 5 V, may damage the device immediately.

Dimensions and Installation

MicoAir405v2 dimensions

Installation recommendations:

  1. Mount the flight controller on silicone grommets or another vibration-isolation system to prevent high-frequency frame vibration from reaching the IMU directly.
  2. Install the board with its arrow pointing forward. If the frame requires a rotated installation, set the correct flight-controller orientation in the firmware.

Interfaces and Power

Pin Definition

MicoAir405v2 interface diagram

Typical Wiring

MicoAir405v2 wiring diagram

Follow these wiring principles:

  • Connect a peripheral's TX to the corresponding flight-controller UART RX, and its RX to the flight-controller TX.
  • All communicating devices must share a common ground.
  • GPS is normally connected to UART3. If the GPS includes a magnetometer, also connect I²C SCL and SDA.
  • An SBUS receiver connects to UART6 RX by default.
  • Before using the dedicated 6-pin connector with a DJI O3 or another digital video transmitter, verify the 9 V, GND, TX, and RX pin order.

Serial Port Mapping

The ArduPilot serial-port mapping for MicoAir405v2 is shown below.

ArduPilot parameterHardware interfaceDefault / recommended useDMA
SERIAL0USBUSB virtual serial port—
SERIAL1UART1Telemetry or another UART deviceSupported
SERIAL2UART2DJI digital video transmitterSupported
SERIAL3UART3GPS—
SERIAL4UART4Telemetry, receiver, or another peripheralSupported
SERIAL5UART5 RXESC telemetryRX only
SERIAL6UART6SBUS / RC inputTX6 has no DMA

PWM Outputs

MicoAir405v2 provides up to ten PWM outputs. The hardware timer groups are listed below.

OutputMCU pinTimerGroup
M1PB0TIM3_CH3Group 1
M2PB1TIM3_CH4Group 1
M3PA15TIM2_CH1Group 2
M4PB3TIM2_CH2Group 2
M5PB4TIM3_CH1Group 1
M6PB5TIM3_CH2Group 1
M7PB8TIM4_CH3Group 3
M8PB9TIM4_CH4Group 3
M9PB14TIM12_CH1Group 4
M10PB15TIM12_CH2Group 4
  • M1–M8 support DShot.
  • M1–M4 support bidirectional DShot.
  • Outputs in the same timer group normally need to use compatible output protocols and frequencies.

Remove all propellers before motor testing, changing the motor order, or calibrating ESCs. Motors may start unexpectedly when parameters are written, the flight controller restarts, or a test command runs.

Receivers

SBUS

UART6 RX6 is an inverted SBUS input:

  • Receiver signal → RX6 / SBUS
  • Receiver power → 5 V, provided this matches the receiver's rated voltage
  • Receiver ground → GND

CRSF / ELRS and Other UART Receivers

Connect bidirectional or non-inverted protocols such as CRSF, ELRS, and FPort to a standard full-duplex UART such as UART1 or UART4. In ArduPilot, set the corresponding SERIALx_PROTOCOL to 23, and repurpose or disable SERIAL6_PROTOCOL if it is no longer used.

OSD and Video Interfaces

Analog Video

MicoAir405v2 integrates an AT7456E that overlays flight data on an analog-video feed. Connect the analog camera to the CAM input and the analog video transmitter to the VTX output.

ArduPilot normally uses:

OSD_TYPE = 1

After configuration, use the ground station to adjust OSD element positions, units, and pages.

DJI Digital Video

UART2 is used for DJI digital-video communication by default. The dedicated SH1.0-6P connector also provides 9 V power. Whether the digital video system displays OSD, which protocol it uses, and which options can be configured depend on the flight-controller and video-transmitter firmware versions.

Battery Monitoring, Magnetometer, and I²C

Battery Monitoring

The default ArduPilot firmware parameters are:

ParameterDefaultDescription
BATT_VOLT_PIN10Voltage-sensing channel
BATT_CURR_PIN11Current-sensing channel
BATT_VOLT_MULT21.2Voltage-divider multiplier
BATT_AMP_PERVLT / current scale40.2Current-sensor conversion factor

External Magnetometer

The flight controller has no onboard magnetometer. When connecting an external magnetometer:

  1. Connect SCL, SDA, power, and GND correctly to I²C.
  2. Keep the magnetometer as far as practical from power wires, ESCs, and motors.
  3. Confirm that the firmware detects the device.
  4. Verify the compass orientation and complete calibration.

I²C Expansion

Several devices with different addresses can share one I²C bus. Consider bus length, pull-up resistors, and address conflicts.

Flight Controller Firmware

ArduPilot

  • Official hardware target: MicoAir405v2
  • Included in ArduPilot's official hardware support list starting with ArduPilot 4.5.0.
  • Suitable for projects requiring full autonomous flight, mission planning, extensive peripheral support, and the ArduPilot ground-station ecosystem.

Related links:

INAV

  • MicoAir405v2 is supported starting with INAV 8.0.0.
  • Suitable for fixed-wing aircraft, FPV aircraft, and navigation applications that emphasize manual flight.

MicoAir405v2 in INAV Configurator

Related links:

Troubleshooting

USB Connects, but the GPS, Receiver, or Video Transmitter Does Not Work

  • Check whether the peripheral requires the main battery to be connected.
  • Confirm that the 5 V / 9 V outputs are working.
  • Verify that TX and RX are cross-connected and that all devices share a common ground.
  • Confirm that the serial protocol is configured on the correct SERIALx port.

SBUS Is Not Detected

  • Confirm that the signal is connected to UART6's inverted RX6 / SBUS input.
  • Confirm that the receiver outputs SBUS rather than CRSF, IBUS, or a standard UART protocol.
  • Check that SERIAL6_PROTOCOL is configured for RC input.

MOTOR3/4 Have No Output in INAV

Manually configure Timer2 and Timer3 as MOTORS.

INAV timer configuration example

Motors Do Not Respond When Arming or Using Motor Test in ArduPilot with the Matching Bluejay ESC

Set the flight controller's ESC protocol to DShot300. See the configuration tutorial for details.

Appendix A: Pinout Table

FunctionMCU pinAlternate function / description
USB DMPA11OTG1 DM
USB DPPA12OTG1 DP
Blue LEDPA8Status indicator
Green LEDPC4Status indicator
Red LEDPC5Status indicator
UART1 TXPA9USART1_TX
UART1 RXPA10USART1_RX
UART2 TXPA2USART2_TX, DJI-VTX
UART2 RXPA3USART2_RX, DJI-VTX
UART3 TXPB10USART3_TX, GPS
UART3 RXPB11USART3_RX, GPS
UART4 TXPA0UART4_TX
UART4 RXPA1UART4_RX
UART5 RXPD2ESC telemetry
UART6 TXPC6USART6_TX
UART6 RXPC7USART6_RX
SBUS inverter controlPC15SBUS_INV
I²C1 SCLPB6External I²C
I²C1 SDAPB7External I²C
Voltage ADCPC0Battery-voltage sensing
Current ADCPC1Battery-current sensing
M1PB0TIM3_CH3
M2PB1TIM3_CH4
M3PA15TIM2_CH1
M4PB3TIM2_CH2
M5PB4TIM3_CH1
M6PB5TIM3_CH2
M7PB8TIM4_CH3
M8PB9TIM4_CH4
M9PB14TIM12_CH1
M10PB15TIM12_CH2
OSD SPI SCKPA5SPI1_SCK
OSD SPI MISOPA6SPI1_MISO
OSD SPI MOSIPA7SPI1_MOSI
OSD CSPB12AT7456E chip select
IMU / barometer SPI SCKPB13SPI2_SCK
IMU / barometer SPI MISOPC2SPI2_MISO
IMU / barometer SPI MOSIPC3SPI2_MOSI
SPL06 CSPA4Barometer chip select
BMI088 accelerometer CSPC13IMU chip select
BMI088 gyroscope CSPC14IMU chip select
microSD SCKPC10SPI3_SCK
microSD MISOPC11SPI3_MISO
microSD MOSIPC12SPI3_MOSI
microSD CSPC9SD card chip select
SWDIOPA13SWD debug
SWCLKPA14SWD debug