Trolling motor control - Spot Lock with arduino GPS

New guy here. I've played with Arduino a little bit in the past, but it has been a while.

So I'm considering a "little" project where I use an arduino board along with some accessories to add a "spot lock" function to the trolling motor on my boat. There are systems out there now but they are expensive and have a lot more functionality then I'm looking at.

Think of it as a digital anchor for the boat. If I'm out fishing and I either see a school of fish on the fish finder or catch a fish, then I can hit a button and the trolling motor will start holding the boat in place without any input. I'd essentially capture my GPS location and then use an inline, or switch over link that ties into and replicates the output of the foot controller for the motor.

I'll need to test the foot controller and find out what the outputs from it to the motor are so that I can replicate those to drive the motor where I want it to go. I'm thinking a couple of potentiometers on the controller to set sensitivity and positional accuracy, an on/off switch, and a push button to activate, maybe another button to hold the actual position.

I think that 2 GPS antennas would be best so that I can keep track of heading even in low wind/current situations with differential GPS.

Any thoughts/recommendations?

It sounds like an interesting project but I suspect it will involve a lot of experiment.

The first thing I suggest that you try is to see if you (the human) can hold the boat in one position without any other input than the numbers on your GPS.

...R

I suspect it is easier on a day with some wind or in current as the boat will nose into the wind. I know there are systems out there that do this, but they are fairly expensive. I have access to some decent gps antennas and can play around with them a bit. I'm not sure if I'll actually do it, but I might tinker with it for a while over the winter.

Two trolling motors that can steer the boat might be a good idea. And pulling into the wind or a current might be better than pushing although pulling would be unusual for boat propulsion.

...R

My trolling motor is mounted on the front of the boat

If you stop thinking about this a actual “spot lock” mechanism and more appropriately a “return to home” project it becomes easier.

Set a “home point position ”, every X period of time compare current position to home point and navigate .

Lots of discussions about self navigating between two points using Arduino, I especially liked this suggestion to do all calculations in radians Self Navigated robot (using GPS+compass) - Troubleshooting - Arduino Forum

If you can tie into the existing controller, that would be a bonus as you would not need to rig up the mechanical means to rotate the trolling motor.

Directional navigation is pretty easy to do for a boat with two motors.

Calculate the bearing from the current GPS location to the goal location, then navigate along that line using an electronic compass, using proportional steering: if (heading - bearing) is positive, i.e. veering to the right, increase power to right motor and reduce power to left.

For "spot lock", the bearing becomes indeterminate when you are at the goal and the boat tends to wander around in a spot a few meters wide. The size of that spot would be easy to adjust.

Example twin screw, autonomous toy boat, using BNO055 IMU and GPS module for navigation, commanded by an Arduino compatible Orangutan processor from Pololu:


The module hanging off the far side is a 2.4GHz radio that logs all the action.

In action, navigating an equilateral triangle 20 meters on a side, in light wind:
MP4 video (1.5 minutes)

Source code here, written for Atmel AVR Studio IV.

Slumpert:
If you stop thinking about this a actual “spot lock” mechanism and more appropriately a “return to home” project it becomes easier.

I wonder ...

I suspect the OP's objective is for his boat to hold position with an error of not more than one or two boat-lengths. That doesn't really allow room for a turn-around to get back to HOME. Of course I may be wrong.

Full scale dynamic positioning is very accurate - used for oil and gas drilling and marine surveying. No doubt it is expensive.

...R

jremington:
For "spot lock", the bearing becomes indeterminate when you are at the goal and the boat tends to wander around in a spot a few meters wide. The size of that spot would be easy to adjust.

With a boat powered from the front (i.e. being pulled) I think it could sort-of "hang" in position very accurately if there is a breeze or, even better, a gentle current trying to push it backwards.

...R

I'm thinking for the logic I'd allow a pretty good sized dead zone where the motor will not make a large adjustment. Then I'd use the dual GPS to calculate a heading and if I'm moving away from the spot backwards then the controller would crank the motor all of the way over to the side that makes the most sense and make the boat do full turn with power proportional to the directional error, then slowly pull the boat into position. Once it is aligned correctly then it should be able to hold position fairly well.

It's something I'm mulling over. I need to take a look at the connections on the existing controller and see if I can basically replicate the output of that.