Skip to main content

MicoAir F405 Mini Flight Controller — User Manual

The MicoAir F405 Mini (board name: MicoAir405Mini) is the 20 × 20 mm version of MicoAir's F405 line: the same STM32F405 processor and the same feature set as the F405 V2, at 6 g on a footprint that fits 3-inch and small 5-inch frames where a 30.5 × 30.5 stack will not go.

It keeps the things people actually use — analog OSD, a DJI O3 connector, a microSD slot and six UARTs — rather than stripping them out to save space.

MicoAir F405 Mini flight controller, 20 x 20 mm

Where to buy

Ships from Canada with free Canada-wide shipping:

  • MicoAir F405 Mini — flight controller alone, or as a stack with a Bluejay 30A 4-in-1 ESC

Specifications

ItemSpecification
MCUSTM32F405RGT6, 168 MHz, 1 MB flash
IMUBMI270
BarometerDPS310
OSD chipAT7456E (analog)
CompassNone built-in — external via I2C
LoggingmicroSD card slot
Interfaces6× UART, 9× PWM, 1× I2C, 1× SWD, 2× ADC (voltage / current)
USBType-C
HD VTX connectorSH1.0-6P for DJI O3 Air Unit — pin 1 is 9 V
BEC5 V 2.5 A (receiver, GPS, optical flow) + 9 V 2.5 A (VTX, camera)
Battery sensingon board, up to 6S
Mounting20 × 20 mm, Φ3.5 mm holes
Dimensions / weight30 × 30 × 8 mm / 6 g

F405 Mini or F405 V2?

F405 MiniF405 V2
Mounting20 × 20 mm (Φ3.5)30.5 × 30.5 mm (Φ4)
Size / weight30 × 30 × 8 mm / 6 g36 × 36 × 8 mm / 9 g
IMUBMI270BMI088
BarometerDPS310SPL06
PWM outputs910
BEC5 V 2.5 A + 9 V 2.5 A5 V 3 A + 9 V 3 A
ArduPilot targetMicoAir405MiniMicoAir405v2

The real choice is size against IMU. The Mini is smaller and lighter; the V2 carries the BMI088, the industrial-grade Bosch IMU that shrugs off motor vibration better than the BMI270. On a clean, well-balanced small quad the Mini is fine; on a bigger or rougher airframe the V2's IMU earns its extra 3 g.

The targets are not interchangeable

MicoAir405Mini and MicoAir405v2 are different boards. Firmware for one will flash and boot on the other, and then put motors, GPS and battery sensing on the wrong pins. Read the target name before you flash — see the Firmware Flashing Guide.

Pinout

MicoAir F405 Mini top view with connectors and components labelled

MicoAir F405 Mini bottom view

Pin 1 of the video connector is 9 V

The SH1.0-6P connector carries the 9 V BEC rail for a DJI O3 Air Unit. A 5 V camera or receiver connected to that pin will be destroyed.

Worth noting if you own more than one MicoAir board: this position is 9 V here and on the F405 V2, but 12 V on the H743 V2 and the H743 AIO. The connector looks identical on all of them.

UART mapping

PortArduPilotDefault function
USBSERIAL0ground station
UART1SERIAL1spare (DMA) — the usual home for CRSF/ELRS
UART2SERIAL2DJI VTX (DMA)
UART3SERIAL3GPS
UART4SERIAL4spare (DMA)
UART5SERIAL5ESC telemetry
UART6SERIAL6RC input — RX6 inverted from the SBUS pad; no DMA on TX6

RC input

  • SBUS — use the dedicated SBUS pad, which is hardware-inverted into RX6. Works out of the box.
  • CRSF / ELRS — these are bidirectional and need a full UART: use UART1 or UART4, crossing TX and RX, set that port's SERIALn_PROTOCOL = 23, and change SERIAL6_PROTOCOL to something other than 23.
  • PPM — not supported.
Why ELRS will not work on the SBUS pad

That pad runs through a hardware inverter and is receive-only. SBUS is a one-way inverted signal, which is exactly what it is built for. CRSF and ELRS need to talk back, and there is no path for that — no parameter change makes it work.

PWM outputs and DShot

Nine outputs. 1–8 support DShot; 1–4 additionally support bi-directional DShot (RPM telemetry for gyro filtering).

Outputs are grouped by timer, and every output in a group must run a compatible protocol:

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

The grouping does not follow the numbering: outputs 1, 2, 5 and 6 share a timer while 3 and 4 share another, so a four-motor quad spans two groups.

Frame type: this board does not default to plain "X"

ArduPilot's hardware definition for the MicoAir405Mini sets the default frame type to BetaFlightX, not standard X — and the two put every output on a different corner:

OutputStandard XBetaFlightX
M1front right, CCWrear right, CW
M2rear left, CCWfront right, CCW
M3front left, CWrear left, CCW
M4rear right, CWfront left, CW

Choose whichever matches how you actually wired the motors, then confirm it with the motor test before fitting propellers.

Set the ESC protocol to DShot300 before anything else — a Bluejay or AM32 ESC will not respond at all to the default PWM output, silently and without an error.

OSD

The board carries an AT7456E analog OSD chip. On ArduPilot, OSD_TYPE = 1 (MAX7456 driver) — which is already the default on this board.

Pair it with an analog video transmitter such as the VT5804 or VT5805, or use the SH1.0-6P connector for a DJI O3.

Battery monitoring

On-board voltage sensing up to 6S; current comes from the 4-in-1 ESC through the ESC connector.

ParameterValue
BATT_VOLT_PIN10
BATT_CURR_PIN11
BATT_VOLT_MULT21.2
BATT_AMP_PERVLT40.2
The current default is a placeholder, not a match

BATT_AMP_PERVLT = 40.2 implies a sensor of about 24.9 mV/A, which does not correspond to the Bluejay ESC (12.75 mV/A, about 78 A/V) that ships in the stack bundle — nor to the AM32 boards. Whichever ESC you fit, calibrate: compare the mAh the flight controller reports with what your charger puts back in, and scale the parameter by that ratio.

Compass

There is no compass on the board. For GPS flight, add an external one on the SDA / SCL pads — usually the magnetometer inside a GPS module, mounted on a mast away from the power wiring.

Set its orientation by hand: with no internal compass to compare against, ArduPilot's automatic detection cannot work. See External Compass Orientation.

Firmware

FirmwareTarget
ArduPilotMicoAir405Mini
INAVMicoAir405Mini builds
BetaflightMicoAir405Mini builds

PX4 is not supported on F405 hardware — use the H743 V2 or NxtPX4 V2 for that.

Flashing, DFU mode and file formats: Firmware Flashing Guide.

Easily confused points

MicoAir405Mini is not MicoAir405v2. Different boards, different pin maps, one character apart in a list.

Pin 1 of the video connector is 9 V here, 12 V on the H743 boards. Same connector, different rail.

The SBUS pad is not a UART. Inverted and receive-only.

Timer groups do not follow output numbers. 1, 2, 5, 6 together; 3 and 4 together.

DShot is outputs 1–8; bi-directional DShot is only 1–4.

"X" and "BetaFlightX" are different frame types, and this board defaults to the second.

No compass on board — and therefore no compass orientation auto-detection either.

Troubleshooting

SymptomWhere to look
Motors do nothingESC protocol not DShot300; flight battery not connected.
Motors on the wrong cornersFrame type — standard X vs BetaFlightX. Confirm with the motor test.
ELRS receiver not detectedWired to the SBUS pad instead of a full UART, or the port protocol is not 23.
Compass not detectedI2C wiring on SDA/SCL.
Heading off by a constant angleCompass orientation — set it manually on this board.
Current reading far too lowBATT_AMP_PERVLT left at the board default.
Video transmitter destroyed on first power-upPin 1 is 9 V, not 5 V.

Written and maintained by the Robofusion engineering team.