Switching from iNav to Ardupilot for Flight Controller


 We had been using iNav software for the flight controller but have decided to switch to Ardupilot the following reasons:

   1) Ardupilot can have a "companion processor" like the Jetson Nano that does vision/AI and decides things like which way to go.   We really want to explore what can be done with AI on a solar powered airplane.   Like can it avoid clouds and stay in the sun more, can it scan the horizon with a telephoto camera looking for boats, can it head for a boat automatically, etc.   This seems fun.

   2) Ardupilot can use a companion processor to communicate over cell data network (4G) to a ground station.  With this we could fly all around Anguilla and still have communication between the ground station and the airplane.  So from the ground we can change the mission plan during the flight.    We could decide to go to a particular boat, or decide to come home because the change of rain has gone up.   Or if we don't have AI avoiding clouds we could do it manually.  While iNav can have waypoint missions, you can not modify them while the plane is in the air. 

   3) Ardupilot handles VTOL Tailsitters.   With VTOL we can have the plane take off and land from our house and fly out over the ocean.  This makes testing much easier.   Packing up an airplane, putting it in the car, going to the RC airport, unpacking, putting together, etc takes a lot of time and work.   If we just have to take a plane off the wall and walk outside, there is much less overhead per flight experiment.    So the development iterations should go much faster.

   4) We want to be able to have a computer decide what throttle to use to keep the voltage on the solar panels optimal.   This saves the weight of MPPT hardware.  We could do a bit of this in iNav but with a companion processor running Python we can have a more general and powerful algorithm for this.   

  5) We think a solar airplane can be a great fit for mapping missions.   It can go back and forth taking pictures as long as the sun is enough and with a small battery always have enough to get to a landing point.  Ardupilot Mission Planner supports mapping missions.

It seems iNav is great for FPV but for a ground station controlled smart airplane, we really need to use Ardupilot.   So going forward we expect to use Ardupilot.

Ardupilot useful links

 Difficult instructions for getting the F-35 in DFU mode so we can load Ardupilot onto it.     That picture is just not clear enough.  There are two square pads on the lower circuit board under the upper one.  It is hard to reach, but you have to make a contact across those and then plug in the USB cord so it boots into DFU mode.  For our second F-35 we found a much easier way.   In CLI in iNav type DFU and FC goes to DFU Mode - and you can then load Ardupilot firmware.

    So we are going try wiring our DJI Air Unit to a Matek F405-Wing with Ardupilot.    Also this F405-wing ardupilot video.   There are Ardupilot instructions for DJI also.  

     First, be sure to get arduplane_with_bl.hex file.  The "with_bl" means "with boot loader", which you want.

   The Ardupilot tailsitter setup is here. and wiki here

    Overview of Ardupilot Quadplane - how Ardupilot categorizes things

    The QRTH mode - Quadplane Return To Home - hover to land


New QuadPlane Features for ArduPilot Plane 4.1  - make nice landings

 QuadPlane first flight

 Arupilot on F-35  

 Video showing how to use joystick to control gimbaled camera in Ardupilot.

  We have not found Ardupilot/F-35/DJI instructions.   It seems we don't have the right serial port setup yet as moving remote sticks does not show up in Mission Planner yet.


We got F-35 DJI OSD to work with:

Serial0  = USB

Serial1  = speed 115 and protocol 23  = RCIN

Serial2  =  speed 115 and protocol 33  = DJI OSD

For tailsitter:

 Q_ENABLE=1 (have to refresh after this to see other Q settings)

Q_Frame_Class= 10

Q_frame_TYPE 15

We used full parameter tree to set: 

SERVO1_FUNCTION 73 Throttle Left

SERVO2_FUNCTION 74 Throttle Right

SERVO3_FUNCTION 77 Left Elevons

SERVO4_FUNCTION 78 Right Elevons

There is an easier way. Go to  "Setup", then "Mandatory Hardware", then "Servo Output".

Can use friendly menus to map servos to functions.


Our switch on RC8 has 3 positions so we can set 3 flight modes. Maiden flight will


QRTL - would love to see computer fly back to home

If a pure VTOL QRTL is desired, then you must disable the fixed wing RTL 

and approach feature by setting Q_OPTIONS bit 16.

QHover Mode - autopilot helping with hover - middle area of throttle stays same altitude 

Probably stay in this the whole first flight. 

FBWA - Fly by wire A - wing mode  or pre-flight checking 


If we could have more than 3 flight modes it would be nice to also have: 

Manual  - for pre-flight check that servos are right and motors work


We have two DJI air units (at home/work) so how to bind DJI is useful.



Popular posts from this blog

Stabilized Camera / Pan-Tilt

SN1 - First custom plane