Ardupilot Flight Controller with on-chip OSD

The first signs of life of the flight controller I have been working on for a while now.

5 Likes

Great work Andy! Looking forward to seeing how it goes.

Some specs

  • PCB Length 78 mm PCB width 35 mm. Mass 17 g
  • STM32F4 processor at 168 MHz
  • Can be powered from 3S to 5S lipo. Provides ample 5v output to power the Raspberry Pi nominally 2A.
  • Video camera input and Vtx output with On Screen Display from the FC. The Input voltage is also fed out to the Vtx and cam so they dont need separate power lines
  • Telemetry out via the video signal for use with antenna trackers and GCS
  • Same hole spacing as a Raspberry Pi Zero, designed for a Raspberry Pi Zero companion to fit neatly.
  • Dedicated audio DAC for audible feedback
  • 4 uarts, 2 at 3v and 2 at 5v with optional signal invert
  • I2C interface
  • 2 port CAN interface
  • PPM sum input, Analog RSSI input
  • Bi-directional S.Bus as well as 6 independent optically isolated Servo/ESC outputs Ground is isolated between the flight controller and the RC outputs. The RC outputs can be powered from a UBEC or the ESC on small models.
  • Several analog inputs for airspeed, Battery current and others. Dedicated battery voltage
  • Onboard compass (LIS3MDL) and Baro (BMP280) and IMU ( BMI160)
  • 1 Mbit EEprom
  • uSD-Card slot

From the top of the board

The FC is designed for aeroplanes with slim fuselages so the connectors are orientated upwards or fore and aft. Typical installation would be under the main wing.

From underneath

From underneath with the Raspberry Pi Zero sitting about where it should be.

2 Likes

Looks good. Keep it up.
Any interest in running a small series for testing?
We’re currently looking for a barebones, lightweight raspizero with FC for a high altitude balloon lander aircraft.

@JeffBloggs

Thanks for the interest in the FC. It is nice to know there are some potential applications for it.
I hope to get this flying within the next few weeks and at that point, assuming everything goes well, I am certainly looking to get some more boards made and for testers.

1 Like

As always - love your work Andy. I’m in for one too!
I have a little wing ready to go, and I know a guy who can help with any de-bugging that might be required :slight_smile:

That is great. My debugging skills are pretty primitive to say the least!

Nice work! It will be awesome to get the support in ardupilot

@lucasdemarchi Thanks for the encouragement. Some way to go yet though !

To the list of features I am now happy to add the ability to send telemetry via the video signal, mainly to use to send the aircraft location to an antenna tracker. This functionality has been working well on my older hack board and just today got it running on the aerflite FC. This makes the FC plug and play with my old antenna tracker. Since video transmitters are limited to 25 mW in UK some form of tracker is essential to get any range. A gps tracker is especially suited to thermal soaring which is my main interest, since the plane is often high overhead.

Now just waiting for my wing to arrive and hope to build it and get the FC flying. The EEPROM seems to be working well and this shaves a fair bit off the price compared to FRAM . The equivalent FRAM are about the same price as the Microcontroller used. There is a wait as the eeprom params are loaded but I think it is acceptable at start up. The BMI160 imu seems very smooth and responsive. All the other budget sensors seem to be working well, so it look like the cheaper components havent compromised performance unacceptably, and this board is designed to be cheap and fun and at the moment I am quite happy with the outcome
I am probably now going to ditch the CAN on this board. I can use one mcu pin saved to add another RCOUT for a total of 7. The other pin will come in useful too. I am going to investigate differential I2C which looks like an interesting alternative to CAN.

1 Like

2nd test flight This time the tracker is working so tracking via the video signal
Also I tracked down the system freeze every minute to saving the compass offsets and switched that off for now.
Video is uncut so below are some points of interest


1:04 Manual launch
1:37 Switch to RTL to circle home and verify RTL is working.
3:45 Switch to manual. It was quite windy. You can see the plane being buffeted around.
5:00 Decide to try to push out a little up wind, but it is quite windy, so slow progress
7:32 Get out to 500 m. Though there is interference on the video, it isnt noticeably worse than closer in. The junk is actually due to noise inside the tracker. The tracker really needs a redesign too!

7:33 Test out RTL from 500 m
11:30 landing.

I also hope to flesh out the “osd maker” app at some stage, which will enable easy creation of new osd layouts on a PC, which can also be tested out by attaching your FC to get at its runtime data via mavlink. Here is a screenshot

It runs by using the same code used in the OSD to create a dynamic link library

EDIT: The project has now been forked from ArduPilot at https://github.com/Aerflite/aerflite.

Be sure to put the word out when you can get a batch made or need pre-orders to do so… I def. want this. Ardupilot needs this. I had the pleasure of putting together a Pitlab system. Can’t beat hardware designed for the task at hand.

Will this be running of an Ardupilot fork long term? Is it going to be a stripped down Ardupilot or will it support all the same features?

Hi Marc,

Thanks for the positive posts about the flight controller. It is much appreciated. Bear in mind though I am one small guy and dont get paid at all. I just do it for fun.
I dont have plans to stay in sync with ArduPilot. I found the PR’s I did pretty painful and dont want to do any more. If it looks worthwhile to do a batch of boards I will let you know but at the moment I am just having fun doing what I want with it and am much happier that way, working on features I want and removing those I dont.

“Avoid success at all costs”

I hope to get something useful eventually ( There are a few things on the horizon) but meanwhile Maybe the devs could look at getting ArduPilot working on the BrainFPV RE1 board. That is quite a similar concept but they have the “right” attitude :slight_smile:

I totally understand this. It is supposed to be fun.

The truth is iNav and Dronin are offering targets that are better suited to FPV and Ardupilot is a little light on FPV options now – maybe a Pix2 can get an OSD option built in. Still using Minim OSD!

Anyhow, best of luck.

Decide to publish the schematics for this. It is my original work and I was asked to share it with someone on the ArduPilot team which I did, but now not too sure that was a good idea since communication seems to have gone dead
Kicad version
https://github.com/kwikius/ardupilot/tree/master/Hardware/aerflite_fc_osd_v1.0
pdf of the schematic
https://github.com/kwikius/ardupilot/raw/master/Hardware/aerflite_fc_osd_v1.0/osd.pdf

Also a pcb available on OSHPark
https://www.oshpark.com/shared_projects/y3W1hwwK
(I would advise though that you will seriously struggle to make this board by hand)

I hope that if anyone on the ArduPilot team does decide to make use of this work that they will provide due acknowledgement of my authorship, and of the informal info I have provided in “chats” etc.

Andy Little