Skip to main content

MicoAir F405 V2 Flight Controller — User Manual

The MicoAir F405 V2 (board name: MicoAir405v2) is a cost-effective 30.5×30.5 flight controller for ArduPilot and INAV builds. Its claim to fame: it was the first F405 board to pair the budget STM32F405 processor with the Bosch BMI088 — an industrial-grade IMU whose temperature stability and vibration robustness are normally found on much more expensive autopilots. If you want a reliable GPS-mission-capable long-range build without paying H7 money, this is the board.

MicoAir F405 V2 flight controller — STM32F405 with Bosch BMI088 IMU, 30.5×30.5 mount

Where to buy

Why the IMU matters more than the processor

A flight controller's real job is reading its IMU (gyro + accelerometer) cleanly. A fast CPU with a noisy IMU still flies badly; a modest CPU with a clean IMU flies beautifully. The BMI088 on this board was designed by Bosch for drones and robotics — it shrugs off motor vibration that makes hobby-grade IMUs drift. That is why an F405 board with a BMI088 can out-fly pricier boards on paper specs. The trade-off of the older F405 processor: fewer UARTs and less headroom for heavy logging or Lua scripting — see the comparison below.

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

F405 V2H743 V2NxtPX4 V2
ProcessorSTM32F405, 168 MHzSTM32H743, 480 MHzSTM32H743, 480 MHz
IMUBMI088BMI088 + BMI270 (dual)BMI088 × 2 (dual)
FirmwareArduPilot / INAVArduPilot / PX4 / INAV / BetaflightPX4 (native) / ArduPilot
UARTs / PWM6 / 108 / 117 / 8
Mounting30.5 × 30.5 mm30.5 × 30.5 mm20 × 20 mm
Best forBudget long-range ArduPilot/INAVDo-it-all flagshipSmall PX4 research drones

Specifications

ItemSpecification
MCUSTM32F405RGT6, 168 MHz, 1 MB flash
IMUBMI088 (Bosch, 6-axis)
BarometerSPL06
OSD chipAT7456E (analog OSD)
LoggingMicroSD card slot
Interfaces6× UART, 10× PWM, 1× I2C, 1× SWD, 2× ADC (voltage / current)
USBType-C
HD VTX connectorSH1.0-6P for DJI O3 Air Unit
BEC5 V 3 A (receiver, GPS, optical flow…) + 9 V 3 A (VTX, camera)
Battery inputUp to 6S LiPo, on-board voltage sensing
CompassNone built-in — connect external via I2C (SDA/SCL)
Mounting30.5 × 30.5 mm, Φ4 mm holes
Dimensions / weight36 × 36 × 8 mm / 9 g

Pinout

Top and bottom pad layout:

MicoAir F405 V2 top view — pads and connectors labeled

MicoAir F405 V2 bottom view — pads and connectors labeled

UART mapping

PortArduPilotDefault function
USBSERIAL0GCS connection
UART1SERIAL1Spare (DMA) — good for CRSF/ELRS
UART2SERIAL2DJI HD VTX (DisplayPort, DMA)
UART3SERIAL3GPS
UART4SERIAL4Spare (DMA)
UART5SERIAL5ESC telemetry
UART6SERIAL6SBUS input (RX6 inverted from SBUS pin; TX6 has no DMA)

RC input

  • SBUS receivers — use the dedicated SBUS pin (internally inverted into RX6); works out of the box
  • CRSF / ELRS and other bidirectional protocols — use a full UART such as UART1 or UART4: wire RX/TX, set that port's SERIALn_PROTOCOL = 23, and change SERIAL6_PROTOCOL to anything other than 23
  • PPM is not supported
ELRS on this board, concretely

Typical setup: ELRS receiver TX → R1 pad, receiver RX → T1 pad, then SERIAL1_PROTOCOL = 23, SERIAL6_PROTOCOL = 0. Done — full telemetry included.

OSD and HD VTX

  • Analog OSD — onboard AT7456E (OSD_TYPE = 1), pairs with analog VTX modules like the VT5804 / VT5805
  • DJI O3 — SH1.0-6P connector with DisplayPort OSD on UART2
HD VTX connector — pin 1 is 9 V

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

PWM outputs and DShot

10 PWM outputs; channels 1–8 support DShot, channels 1–4 additionally support bi-directional DShot (RPM telemetry for gyro filtering). Outputs are grouped — every output in a group must run the same protocol:

GroupOutputs
11, 2, 5, 6
23, 4
37, 8
49, 10

Battery monitoring

Voltage sensing is built in (up to 6S); current sensing comes from the 4-in-1 ESC via the ESC connector. Default ArduPilot parameters:

ParameterValue
BATT_VOLT_PIN10
BATT_CURR_PIN11
BATT_VOLT_MULT21.2
BATT_AMP_PERVLT116.5

The current scale (BATT_AMP_PERVLT) is ESC-dependent — verify against a charger's mAh count after a few flights and adjust.

Compass

No compass on the board. For GPS missions add an external compass — the usual route is a GPS+compass combo module (e.g. an M10 GPS with QMC5883L) wired to the SDA/SCL pads. Mount it on a mast away from power wiring.

Firmware

FirmwareSupportTarget / notes
ArduPilotOfficial since 4.5.0Target MicoAir405v2 — builds on firmware.ardupilot.org, or the custom firmware builder
INAVOfficial since 8.0Target MICOAIR405V2; older builds on micoair GitHub

Betaflight and PX4 are not supported on this board — if you need them, use the H743 V2.

First-time flashing (DFU)

  1. Hold the bootloader button, plug in USB — the board enumerates in DFU mode
  2. Flash the arduXXXX_with_bl.hex file with a DFU tool (or Mission Planner → Load custom firmware, or MicoConfigurator)
  3. Afterwards, update over USB with .apj files from any ground station

FAQ

Is an F405 still worth buying in the H7 era?

For ArduPilot/INAV cruising builds — yes. The F405 runs standard GPS missions, OSD, and DShot without breaking a sweat. You give up spare UARTs, heavy logging headroom, and Lua scripting. If the price difference doesn't matter to you, buy the H743 V2; if it does, this board flies just as straight.

Can it run DJI O3 and analog video at the same time?

The board has both paths (AT7456E analog OSD + DJI connector on UART2), so yes — a common setup is O3 for the pilot feed and an analog VTX as a cheap long-range backup.

Why does my SBUS receiver work but my ELRS receiver doesn't on the SBUS pin?

The SBUS pin runs through a hardware inverter and is receive-only — bidirectional protocols like CRSF/ELRS need a real UART pair. Use UART1 or UART4 as described in RC input.


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