{"product_id":"micoair-micovio-visual-inertial-odometry-sensor","title":"MicoAir MicoVIO Visual-Inertial Odometry (VIO) Sensor — GPS-Free Position, Velocity \u0026 Attitude for ArduPilot \/ PX4","description":"\u003cp\u003e\u003cstrong\u003e📘 Documentation \u0026amp; Guides\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/docs.robofusion.net\/vio\/micovio-user-manual\" target=\"_blank\" rel=\"noopener\"\u003eMicoVIO — Full User Manual\u003c\/a\u003e — specifications, pinout, wiring, EKF-origin setup and the complete ArduPilot \u0026amp; PX4 parameter set\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/docs.robofusion.net\/vio\/vio-vs-optical-flow\" target=\"_blank\" rel=\"noopener\"\u003eVIO vs Optical Flow — what's the difference?\u003c\/a\u003e — what each sensor measures and which one your build actually needs\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv style=\"border: 2px solid #0a6cff; border-radius: 8px; padding: 14px 18px; margin: 14px 0;\"\u003e\n\u003cp style=\"margin: 0;\"\u003e\u003cstrong\u003e🗓 Coming soon — first batch expected to reach our warehouse late October to mid-November 2026.\u003c\/strong\u003e This page is live for reference and the cart stays closed until stock arrives. \u003cstrong\u003eTo reserve a MicoVIO, email \u003ca href=\"mailto:info@robofusion.net?subject=MicoVIO%20pre-order\"\u003einfo@robofusion.net\u003c\/a\u003e\u003c\/strong\u003e with the quantity you need. We reply with availability, the expected ship date and ordering details; nothing is charged until your order ships. Business and volume buyers: mention your quantity in the same message.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch3\u003eOverview\u003c\/h3\u003e\n\u003cp\u003eThe \u003cstrong\u003eMicoAir MicoVIO\u003c\/strong\u003e is a \u003cstrong\u003evisual-inertial odometry (VIO) sensor\u003c\/strong\u003e: a global-shutter camera, an IMU and a ToF rangefinder in one \u003cstrong\u003e16-gram\u003c\/strong\u003e aluminium module, with all the processing done on board. It streams the aircraft's \u003cstrong\u003erelative position, 3-axis velocity and attitude\u003c\/strong\u003e to the flight controller as standard \u003cstrong\u003eMAVLink 2 ODOMETRY\u003c\/strong\u003e messages, so an \u003cstrong\u003eArduPilot\u003c\/strong\u003e (4.5.2 or newer) or \u003cstrong\u003ePX4\u003c\/strong\u003e drone can \u003cstrong\u003ehover and hold position with no GPS at all\u003c\/strong\u003e — indoors, under bridges, in tunnels and warehouses — and, on firmware that supports external-navigation missions, fly waypoints and return to launch.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eNo companion computer.\u003c\/strong\u003e Until now, VIO on an open-source drone meant either a stereo camera (Intel RealSense D435) plus a Raspberry Pi or Jetson running ROS, or the discontinued RealSense T265 plus a computer to bridge its pose into MAVLink — several hundred dollars, well over 100 g of hardware and cabling, and days of integration either way. MicoVIO does the whole job inside one 16 g module and talks to the flight controller like a GPS does: one 4-pin UART cable, standard MAVLink 2, a handful of parameters. A 3-inch quad can carry it.\u003c\/p\u003e\n\u003cp\u003eMicoAir quotes a typical trajectory error of \u003cstrong\u003e1 % of distance flown\u003c\/strong\u003e. In its outdoor tests against RTK ground truth, the RMS trajectory error over 136 m and 141 m flights was \u003cstrong\u003e0.73 m and 0.70 m\u003c\/strong\u003e — about 0.5 % of distance. That is a track-level statistic, not an end-point or landing guarantee; results depend on texture, light and flight profile.\u003c\/p\u003e\n\u003ch3\u003eWhy VIO is not \"a better optical flow sensor\"\u003c\/h3\u003e\n\u003cp\u003eAn optical flow sensor watches the ground slide across a tiny camera and gives the flight controller a \u003cem\u003ehorizontal velocity\u003c\/em\u003e. Position is then integrated from that velocity, so it drifts over time, and flow quality collapses when the aircraft yaws fast or climbs too high. Visual-inertial odometry tracks hundreds of visual features from frame to frame, predicts the motion between frames with the IMU, and solves for the full \u003cstrong\u003e6-degree-of-freedom pose\u003c\/strong\u003e — position, velocity and heading. MicoVIO adds \u003cstrong\u003elocal loop closure\u003c\/strong\u003e: it re-matches the current view against recent frames so a hover stays on its tile instead of slowly touring the room. Optical flow remains the right choice for the lightest indoor hover; choose VIO when you need a \u003cem\u003eposition\u003c\/em\u003e.\u003c\/p\u003e\n\u003ch3\u003eKey features\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eStandalone — the entire VIO pipeline in 16 g, no companion computer\u003c\/strong\u003e — replaces the camera-plus-computer stack (RealSense D435 + Raspberry Pi\/Jetson + ROS, or a T265 plus its MAVLink bridge) with one module and one UART cable; nothing to install, calibrate or power separately\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTrue position output\u003c\/strong\u003e — relative position, velocity and attitude over MAVLink 2 (ODOMETRY #331), plus height above ground (DISTANCE_SENSOR #132)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e1 % typical trajectory error\u003c\/strong\u003e (manufacturer figure); 40 Hz update (38–60 Hz); rated to 10 m\/s at 2 m height\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSpecified for hard lighting\u003c\/strong\u003e — large-format global-shutter HDR sensor and fast lens, rated from \u0026gt; 1 lux, in bright sun, on low-texture and reflective floors and through hard light changes (MicoAir specification; see operating limits in the manual)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eStays locked through spins\u003c\/strong\u003e — IMU-aided tracking rated to 300°\/s and 60° tilt\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLocal loop closure\u003c\/strong\u003e on by default — suppresses drift for a steady hover without affecting dynamic flight\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eIntegrated ToF rangefinder\u003c\/strong\u003e — 0.02–12 m (about 8 m in full sun) at 43 Hz; initialises from 1 cm above ground; visual tracking rated to 30 m\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTiny\u003c\/strong\u003e — 29.5 × 29.5 × 15 mm, 16 g, 5 V at about 1 W; boots in about 12 s\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBrowser setup\u003c\/strong\u003e — live data, parameters and firmware updates over USB-C with MicoAssistant, no driver needed\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eSpecifications\u003c\/h3\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eMethod\u003c\/td\u003e\n\u003ctd\u003eVisual-inertial fusion of camera + IMU, ToF rangefinder for height and scale\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eOutput\u003c\/td\u003e\n\u003ctd\u003eRelative position, 3-axis velocity, attitude, height above ground, positioning quality\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTrajectory error\u003c\/td\u003e\n\u003ctd\u003e1 % typical (3D ATE RMSE ÷ path length; a trajectory-level figure that varies with environment and motion)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eVIO update rate\u003c\/td\u003e\n\u003ctd\u003e40 Hz typical (38–60 Hz, scene dependent)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTracking speed\u003c\/td\u003e\n\u003ctd\u003e10 m\/s typical at 2 m above ground\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMax VIO working height\u003c\/td\u003e\n\u003ctd\u003e30 m (depends on texture, light and surface)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMin. initialisation height\u003c\/td\u003e\n\u003ctd\u003e1 cm (the height from which initialisation is allowed — not a ranging-accuracy figure)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMax working tilt \/ angular rate\u003c\/td\u003e\n\u003ctd\u003e60° \/ 300°\/s\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLocal loop closure\u003c\/td\u003e\n\u003ctd\u003eOn by default\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eBoot time\u003c\/td\u003e\n\u003ctd\u003e≈ 12 s to first data\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLens FOV\u003c\/td\u003e\n\u003ctd\u003e120° diagonal\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eIllumination\u003c\/td\u003e\n\u003ctd\u003e\u0026gt; 1 lux\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eToF range \/ rate\u003c\/td\u003e\n\u003ctd\u003e0.02–12 m (12 m indoors or overcast, ≈ 8 m in bright sun) \/ 43 Hz\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eProtocol\u003c\/td\u003e\n\u003ctd\u003eMAVLink 2 — ODOMETRY (#331), DISTANCE_SENSOR (#132)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSerial\u003c\/td\u003e\n\u003ctd\u003e3.3 V LVTTL UART, 921600 baud, 8N1\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eConnectors\u003c\/td\u003e\n\u003ctd\u003eGH1.25-4P (GND · VCC · RX · TX) + USB Type-C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePower\u003c\/td\u003e\n\u003ctd\u003e5 V, ≈ 200 mA average, ≈ 1 W\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSize \/ weight\u003c\/td\u003e\n\u003ctd\u003e29.5 × 29.5 × 15 mm \/ 16 g\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMounting\u003c\/td\u003e\n\u003ctd\u003eFacing down, arrow toward the nose\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFirmware\u003c\/td\u003e\n\u003ctd\u003eArduPilot ≥ 4.5.2 · PX4\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eNot yet published by MicoAir\u003c\/td\u003e\n\u003ctd\u003eOperating temperature, ingress protection, input-voltage tolerance \/ peak current, output latency, lock-loss behaviour, mounting-hole pattern — we will add them when the datasheet is updated\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003ch3\u003eCompatibility\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eArduPilot 4.5.2 or newer\u003c\/strong\u003e and \u003cstrong\u003ePX4\u003c\/strong\u003e, on flight controllers whose firmware includes external-vision support. H7 boards such as the \u003ca href=\"https:\/\/robofusion.ca\/products\/micoair-h743-v2-flight-controller-supports-ardupilot-px4-inav-betaflight\"\u003eMicoAir H743 V2\u003c\/a\u003e, the H743 AIO and the NxtPX4 V2 qualify. MicoAir's own screenshots show ArduCopter 4.7.0 and PX4 v1.17.0 on MicoAir 743-series boards.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMost F405 boards are not supported\u003c\/strong\u003e: ArduPilot builds for boards with less than 2 MB of flash normally leave the visual-odometry library out.\u003c\/li\u003e\n\u003cli\u003eNot for INAV or Betaflight — they have no external-navigation input. For those, use an \u003ca href=\"https:\/\/robofusion.ca\/collections\/optical-range-sensor\"\u003eoptical flow sensor\u003c\/a\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eIn the box\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMicoVIO module × 1\u003c\/li\u003e\n\u003cli\u003eGH1.25-4P → SH1.0-4P cable, 20 cm × 1 — MicoAir 743-series flight controllers\u003c\/li\u003e\n\u003cli\u003eGH1.25-4P → MX1.25-6P cable, 20 cm × 1 — Pixhawk 1 \/ Pixhawk 2 (Cube)\u003c\/li\u003e\n\u003cli\u003eGH1.25-4P → GH1.25-6P cable, 20 cm × 1 — Pixhawk 4 \/ 5 \/ 6\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eSetup in brief\u003c\/h3\u003e\n\u003col\u003e\n\u003cli\u003eMount the module facing straight down, arrow toward the nose, as rigidly as the flight controller.\u003c\/li\u003e\n\u003cli\u003eWire GND, 5 V, and cross RX\/TX to any free UART.\u003c\/li\u003e\n\u003cli\u003eArduPilot: set the port to MAVLink 2 at 921600, \u003ccode\u003eVISO_TYPE 3\u003c\/code\u003e, \u003ccode\u003eRNGFND1_TYPE 10\u003c\/code\u003e, EKF3 sources to ExternalNav (position\/velocity\/yaw) and RangeFinder (height). PX4: MAVLink port in Onboard mode at 921600, \u003ccode\u003eEKF2_EV_CTRL 9\u003c\/code\u003e, \u003ccode\u003eEKF2_HGT_REF 2\u003c\/code\u003e.\u003c\/li\u003e\n\u003cli\u003eWith no GPS the EKF has no origin: on ArduPilot set it after every boot (Mission Planner → right-click the map → \u003cem\u003eSet EKF Origin Here\u003c\/em\u003e) before arming.\u003c\/li\u003e\n\u003cli\u003eConfirm the flight controller is using the external navigation data (the sensor's messages are not forwarded to your ground station, so check the EKF status, not the MAVLink inspector), then hover in Loiter \/ Position mode over a textured floor.\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eEvery parameter, with notes for ArduPilot 4.6 vs 4.7 and the serial-port vs MAVLink-channel numbering, is in the \u003ca href=\"https:\/\/docs.robofusion.net\/vio\/micovio-user-manual\" target=\"_blank\" rel=\"noopener\"\u003eMicoVIO user manual\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch3\u003eFAQ\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eDoes it need a companion computer or ROS?\u003c\/strong\u003e No — everything runs inside the 16 g module, which is the whole point. Traditional VIO on an open-source drone means a RealSense D435 plus a Raspberry Pi or Jetson running ROS, or a T265 plus a computer bridging its pose into MAVLink. MicoVIO is a UART device speaking MAVLink 2; the flight controller treats it as an external navigation source, exactly like a motion-capture system or a VOXL.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eIs it an obstacle-avoidance or mapping system?\u003c\/strong\u003e No. It outputs the aircraft's own position, velocity and attitude plus the height below it. It does not detect obstacles, export a map, stream images or relocalise across power cycles, and MicoAir has not published an SDK or ROS driver for it. Obstacle avoidance needs separate sensors.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eDoes it work outdoors?\u003c\/strong\u003e Yes, with visual tracking rated to 30 m depending on texture and light; the ToF reaches about 8 m in full sun. Keep GPS-free flights within the ToF's working range until a tested procedure for higher flight is published. It is relative positioning, so for absolute centimetre accuracy outdoors pair it with \u003ca href=\"https:\/\/robofusion.ca\/collections\/rtk-gnss\"\u003eRTK\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eDoes it work in the dark?\u003c\/strong\u003e Rated from about 1 lux. For total darkness add a downward light.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eCan it replace my MTF-01?\u003c\/strong\u003e If you only need a steadier indoor hover on a small aircraft, the MTF-01 is lighter and cheaper. If you need a position — repeatable paths, indoor waypoints, GPS-free return-to-launch on supporting firmware — MicoVIO is the sensor for the job.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhen does it ship, and how do I order?\u003c\/strong\u003e The first North American batch is expected to reach our warehouse between late October and mid-November 2026; orders ship after it arrives. Reserve by emailing \u003ca href=\"mailto:info@robofusion.net?subject=MicoVIO%20pre-order\"\u003einfo@robofusion.net\u003c\/a\u003e with your quantity — we confirm by return email, and nothing is charged until it ships. Volume and business purchasing is handled the same way.\u003c\/p\u003e\n\u003ch3\u003eSupport\u003c\/h3\u003e\n\u003cp\u003eQuestions before or after purchase: \u003ca href=\"mailto:support@robofusion.net\"\u003esupport@robofusion.net\u003c\/a\u003e — we reply within 24 hours on business days (excluding public holidays). 3-month hardware warranty; 30-day returns for unused items in original packaging, with dead-on-arrival units replaced or refunded at our cost — see the \u003ca href=\"https:\/\/robofusion.ca\/policies\/refund-policy\"\u003erefund policy\u003c\/a\u003e.\u003c\/p\u003e","brand":"MicoAir","offers":[{"title":"Default Title","offer_id":67787549704511,"sku":null,"price":99.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0808\/5241\/8879\/files\/micovio-hero-coming-soon-v2.webp?v=1792164258","url":"https:\/\/robofusion.net\/products\/micoair-micovio-visual-inertial-odometry-sensor","provider":"RoboFusion","version":"1.0","type":"link"}