Arduino and Pixhawk communication for Autonomous Sailing Boat

For the project i have been working on i have a 1m Rc sailing boat that is fully constructed,
i have a magnetic shaft encoder that has been coded so that it sences 360 direction that will be used for the wind vane.

My plan was to have the boat follow the Mission planner guided mode thanks to information provided by @rmackay9 and then have an arduino sense the wind direction, and if the boat were to be facing into the no sail zone i want to be able to have the arduino override the pixhawk and tell the boat to travel for example 30° starboard for a predetermined time/distance then have the pixhawk take back over so that the boat never tries to sail into the wind.

is this possible to do? i was checking through the MAVlink library as i thought this would be the correct thing to look into however i was unable to find any commands that seemed appropriate for the application im trying to use it for.

any help would be much appreciated.



An arduino is OK but then it would need to send mavlink messages. That’s possible but there are easier companion computer to work with. For example if an RPI3 was used then the APSync image could be installed on it and that includes Dronekit which is a simple SDK that could be used by python scripts you write to control the vehicle.

Coincidentally though I started assembling my Thunder Tiger Challenger 800 sailboat last weekend. I think the first step of supporting sailboats is to get them working first in Manual mode where the user directly controls the rudder and mainsail. Then we’d move onto Acro mode (where the pilot controls the turn rate and desired speed). After these are done we can do the autonomous modes.

I have a lot on my plate but maybe I could put together the manual mode support soon-ish.

By the way, how does the arduino read in the wind vane info?

1 Like

I’ve taken an Ma3 Absolute magnet shaft encoder from USdigital as they are tiny and have little resistance and currently have that connected to my Arduino which can sense 360° rotation.

1 Like

I am a noob on drone development .
the object of my question is to know how to set up the pixhwkt for indoor positioning system
my system is composed of a Rpi, a pixhawk and the pozyx’s tag
I want to know if for sending the fake gps data to the pixhwak i just need to send the data collected by the pozyx and send it through mavlink to the pixhawk . That means only send the mocap message .
I read in one of your blog ic which you used arduino and i would like to know better about the beacon message and if it is necessary to use it also in my project or if the mocap message is enough .
i want to use python for programming language . any example or any help would be welcome


I guess you’re using this on a Rover? It’s probably best to open a new topic because it’s probably not very similar to this topic on sailboats.

I guess you’ve seen this wiki page re setting up the Pozyx system? Using the exact method described would be the easiest way to get it working I think. If you want to instead send in external position estimate messages via mavlink (i.e. mocap, vision-position-estimate) then you’ll find people doing something similar in this discussion but you can also join us in the Vision Projects gitter channel.

… I also guess we need to create a wiki page to help people figure out how to setup ardupilot to accept external position estimates.

Mr rmackay
all the component are on a quadcopter .
I read your wiki page about the setting and i did exactly as you mentionned there.
I have a little problem about how to use the BCN_ORIENT_YAW ?
another question is which mode can i use in the programm: i mean stabilize, loiter , etc… ,
which is the more suitable for mocap message .
Once i can send the mocap message , do i need to set up the GPS_GLOBAL _ORIGIN or another parameter , or can i simply use all the function that are using GPS without any problem
Create a wiki page about how to set up different kind of compapion computer will be very helpfull
since i am new in the forum . the message i can post are limited
i apologize for my english