Jay Greco

OpenAIO Multirotor Flight Controller

All-in-one Flight Controller, Power Distribution, and On Screen Display

MAX7456 OSD Driver (MWOSD Compatible)

Quadcopter (X) & Hexacopter (X) support out of the box

12V/2A & 5V/3A switchmode regulators built-in

Selectable VTX & CAM voltages: VBat, 12V, & 5V

Wide input: 3s & 4s LiPo compatible

STM32F303 MCU (CleanFlight/BaseFlight Compatible), MPU6500 MPU, and BMP280 Barometer

Integrated 90A current sensor

SmartSerial - No DIP switch configuration, single programming and config port

100% Open source HW & SW

6-layer design for superior thermals & noise immunity

Top Layers
Bottom Layers with description

About the Design

I started on OpenAIO in early 2016, after a few years of building multirotors in different shapes and sizes. As consumer and hobbyist multirotor tech became more advanced, so did the build complexity. Every new build I started left me dreading system integration and cable management. After building my first "miniquad", which crammed a flight controller, video/OSD system, power distribution, and ESCs and radio RX into a 250mm frame, I'd had enough and decided to integrate all of the key components into a single package. Thus, OpenAIO was born.

From the start, I wanted the system to be open-source in both hardware and software but had hesitations. I didn't want to be doing free design work for other companies with questionable ethics, but it didn't end up mattering. Right around the time I was finishing the rev 1.0 design, bigger players were beginning to release their own AIOs. I hadn't spent much of my own time or money, so I called it good and mostly forgot about the project.

In mid 2018, I dug up the design while looking for some files on my old laptop, and decided that when I had free time I'd release everything as originally intended.

Design Highlights

At the time, the only widely available current sensor suitable for any decent multirotor was an Attopilot module, which commanded a $20 premium for a 5 milliohm current shunt and a current sense amp. At one point, I (somewhat begrudgingly) joked that I could make a 5 milliohm resistor with a trace of copper and sell it for $19, $1 cheaper than the Attopilot. After thinking about it for a few minutes, I decided that the joke wasn't that far out. The next day I had a test design using a ZXCT1009 CS amp out to OSHPark. When the board came in...it worked, and well enough to keep around for the subsequent prototypes. I tested it side by side with a physical 2512 shunt resistor, and while the PCB sense resistor exhibited self-heating effects, it was still consistent enough to work within the system.

One other idea I had was a serial switch, which would allow the OSD module and the Flight Controller to be programmed and configured from the same USB connection. I'd seen a flight controller which integrated an OSD chip, which was cool, but the user had to set a clunky DIP switch depending on if the board was to be programmed, configured, or flown. If the DIP switch was wrong, nothing would talk. The serial switch (I lamely dubbed it "SmartSerial") would pipe the USB UART to the device chosen by the switch positon when the USB was plugged in. When there was no USB signal present, the switch automatically connected the UART lines from each device. It was an elegant solution to what I found to be a frustrating design choice.

The last block I was exceptionally excited about was the 12V supply. Since the AIO was designed for three or four cell operation, the possible input voltage ranges from 9.6V (discharged 3s battery) to 16.8V (fully charged 4s battery). Most PDBs at the time just threw in a buck converter and called it a day, ignoring the 3V of dropout and awful performance below 12V. I saw a huge opening for a PDB with rock-steady 12V output, regardless of input voltage. I settled on a SEPIC topology; I liked the flying cap isolation and the similarities to the more common flyback converter. The control loop was also easy to tune, since LTSpice included a model for the LT1243. The LT1243 is pin-compatible and quite similar to the TL3843, which was selected for the final design. In all, it was a fun semi-custom converter design that strongly improved on what was available at the time.

Design Files & Downloads

The design files have been updated for EAGLE version 9.1. All design files are released under the CC share-alike license: do what you want with them as long as any modifications and further contributions are also released as open-source.
Schematic (PDF)
EAGLE design files & BOM (zip)
Link to OpenNaze on Github, which was the start of this project.