Kakute F7 and with Raspberry Pi as companion computer

I’m thinking about using Kakute F7 for my next project. My idea is to install Ardupilot on it, connect a RPzero as companion computer and control the drone from a ground control station using DroneKit-Python to define via code some kind of missions to be executed by the Drone. Despite I’ve been reading here and there, I’m not really sure if all that is possible. My questions are:

  • First of all, is that possible and how difficult would it be?

  • Can you suggest some guidelines to follow?

I think Kakute has already everything needed for the autonomous flight. If I understood correctly, what I additionally need/want to do/add is the following:

  • Add a GPS (like the bn 880 gps) and connect using the SCL/SDA/etc pins on the KF7
  • Add a wifi module to the Raspberry Pi via UART - this will my access point to the drone from the ground control station (that is simply a Python script with flight instructions)
  • Add a 4-in-1 ESC to drive the motors

Is there any wrong / non-sense assumption above? Any feedback is very welcome :roll_eyes: :roll_eyes:
Thanks a lot
Emanuel

The GPS will need power, ground, rx and tx connected to one of the UARTS of the Kakute. The compass uses I2C and will need to be connected via the SDA and SCL lines.

It would be easier to buy a RPi Zero W with the built-in WiFi.

You will need to use the RPi’s UART port to connect to the UART on the Kakute. Then the software on the Rpi (APSync, mavlink-router, rpanion-server, etc) can forward the telemetry between the UART and the WiFi.

Thanks, Stephen for your help!

You are absolutely right, this is something I haven’t noticed … RPi Zero W only has one UART right? And I need it for the connection with the Autopilot. But my intention was to use that UART to connect an external Wifi Module (like ESP8266) with an external antenna in order to increase the Wifi Range (for my application 200/300 meters are already enough). Do you think I might have a different solution to connect an additional / more powerful wifi?

That means that I can also run on my laptop a DroneKit-Python script with takeoff / landing / navigation instructions, that will reach the RP via Wifi and then being executed by the autopilot?

Yes, that’s correct

Use a USB Wifi dongle. You’ll probably have to run some tests to check that you get the range you want.

Correct. And you need that UART to connect to the Kakute’s telemetry.

Would it make sense to connect the Wifi module ESP8266 via UART to the Kakute F7?

The problem of the USB dongle is that they are normally very bulky and they have fixed antenna … while instead with the ESP8266 I connect the antenna using a wire … it’s much lighter and can position it everywhere basically

I have only superficial experience with Navio2+RP3 … here on the website they suggest to add a telemetry module via UART or via USB. In case of USB, the dongle is connected to the USB of the RPi. But in case of UART, it is connected to a UART port on the Navio2 (using config string /dev/ttyAMA0). Might be something similar with the Kakute F7?

Thank you very much!
Emanuel

Sure, you can do that. Then you don’t need the Raspberry Pi.

Could you suggest me something on line to understand more when actually a companion computer is needed? From your reply I understand that this is not completely clear for me …

One possible use I have in mind is the following: the UAV is going through a specific mission, a series of points. Standard auto mode will make the UAV flying from one to next until the mission is completed. In my case I might need to fly to one point, check something (maybe with a camera) and if a certain condition is matched, fly to the next one. For that reason I though a companion computer is needed. I don’t know how it will work in practise … maybe a DroneKit-Python script is located on the Pi with such mission and the conditions to verify … then from the GCS I can run this script. So I still have control of the UAV from the GCS (I can stop it and RTL in any moment), I can receive the telemetry and the UAV status … but the code on the Pi is managing all … What do you think about this scenario? Am I assuming everything correctly? Is this a case where the Pi is needed?

Thanks for you help and patience!
Emanuel

It really depends on your scenario. You’re correct that the UAV could be controlled from the Pi or and GCS. It really depends on the communications links between the GCS and the Pi - how reliable is it? Is the datarate high enough to support your requirements?

If the UAV ↔ GCS link is not reliable or fast enough, then you use a companion computer.

1 Like

Can the GCS download and check this “something”? If it’s a photo from a camera, or other large file you’ll need a Pi.

1 Like

Regarding the Wifi connection … my plan is to use the D1Mini Pro module which has an external antenna. It supports UART but also has a micro USB connection. So I will use the UART of RPzero for the connection to the Flight Controller and connect the D1 Mini Pro to the RPzero with a micro-usb to micro-usb cable. I hope it will work …

I think you would be over-complicating things. There’s plenty of USB wifi dongles with external antennas: https://www.amazon.com/TOMTOP-300Mbps-Wireless-Adapter-External/dp/B00PXYH8LW

It’s just because I have limitations on weight that I can’t use the standard USB wifi dongles … they are normally bulky and I am unfortunately already at the limit with the weight of the UAV. That’s the only reason … but I agree with you that a standard USB dongle will make everything much easier