Phoenix has hydraulic steering, specifically an older Wagner system. It has a large volume ram (33 cu. in; ~ 540 cc), which we rebuilt and installed new seals a few years back. We had all of the components of a rebuilt Wood-Freeman autopilot that matched what was originally on Phoenix ready to install, but decided we wanted to go in a different direction.
The Wood-Freeman systems are certainly powerful (they're still used on many commercial fishing boats in the Pacific Northwest, shrimp boats in Texas, etc.), but they are clunky, take up a ton of space (think bowling ball-sized compass versus quarter-sized 9-axis IMU chip in modern systems), and are power hungry. Fine for a fishing boat that's motoring all the time, but not ideal for a sailboat watching electrical power consumption. To top things off, we learned that they no longer made the seals for the specific Wood-Freeman hydraulic pump that came with Phoenix, and our decision was made for us!
Our friend Sean D'Epagnier developed an autopilot system that he tested on several ocean crossings -- pypilot -- and we began talking to him about how to scale up his design to work with our hydraulic system.
Pypilot is an open-source, RPi-based marine autopilot for tiller- and wheel-driven boats up to 40 feet. The software is included in OpenPlotter, and was designed to work specifically with OpenCPN. The system is modular, has extremely low power consumption, and can be built and customized by the end user. Alternatively, you can purchase a tested system directly from the pypilot store if you don't want to do it yourself.
Like most autopilots, pypilot consists of an autopilot computer (brain) and a motor controller.
- The tinypilot computer is a WiFi enabled mini computer (RPi Zero) programmed with Sean's open-source pypilot software and with a 9-axis IMU chip or hat (3 axes of accelerometer data, 3 axes gyroscopic, and 3 axes magnetic (compass)).
- The motor controller is an arduino-based unit that connects to the pilot and controls the tiller, wheel, etc. It has over-temperature, over-current (stall) detection, fuse and reverse polarity protection, voltage, current, temperature and optional rudder feedback, and optional port/starboard end of travel input switches (rudder sensor) to prevent the tiller or wheel from going hard over.
The tinypilot would be at the core of our design; however his current motor controller design can only work with rudder drive units drawing 2-3 amps and stall up to 15 amp. We knew our system would draw more juice than that, so we needed a more powerful motor controller for our system. Before Sean could develop the new motor controller, we had to pick a hydraulic autopilot pump and figure out what our power draw would be.
Our 33 cu. in. Wagner ram is on the larger end for recreational boats, and we were surprised to learn that we had only two hydraulic reversing autopilot pumps to choose from -- the Simrad RPU300 and the Accu-Steer (Kobelt) HRP35 (sold under the Accu-Steer brand or private labeled by Furuno). From what we've read, the Simrad pump is quite loud, and some people said it sounded like copulating cats! The pump was going to be under the floorboards in the aft cabin and I'm a light sleeper so that was a deal breaker! The Accu-Steer, on the other hand, was touted as being "whisper quiet" and over-sized for our ram, so it was the clear winner. [Note: we found that searching online for Furuno HRP-35 proved significantly cheaper than searching for Accu-Steer HRP-35 even though they are the same part. The site we ordered from listed it as a Furuno pump and it was drop-shipped directly from Kobelt USA.]
Once the hydraulic pump arrived, Bill made a custom aluminum bracket to mount it under the floor boards in the aft cabin. I was thrilled with the new location since the old Wood-Freeman pump took out an entire large cabinet in the aft vanity -- more storage space freed up!
The pump is through-bolted through the bracket using four neoprene compression mounts (pillow blocks) to help dampen any vibration and make the "whisper quiet" pump even quieter. We went to a local hydraulic store for custom length hydraulic hoses with Aeroquip fittings to plumb the pump into our Wagner steering system and self-bleeding expansion/reservoir tank that Bill previously designed and installed. It was a messy job cracking open the hydraulic fluid-filled copper tubing and removing the old, clunky Wood-Freeman pump that was also full. We had to take be very careful since we didn't want to get hydraulic oil on our beloved cabin sole or screw up our tung oil finish! Once everything was apart, we took the opportunity to install a few more ball valves to help isolate the pump for any future maintenance or repairs.
Accu-Steer HRP-35 reversing hydraulic autopilot pump connected to pypilot aboard Phoenix |
Pypilot motor controller for larger boats like Phoenix |
30 amp waterproof inline fuse |
Pypilot uses electric currents to determine the rudder angle, so in many cases a rudder angle indicator is optional. This is fine for a tiller or possibly cable-driven steering, but with hydraulic steering we felt the rudder angle indicator was required -- both to set appropriate end stops to prevent the ram from going hard over (possibly damaging the seals) and to offer rudder feedback information. We purchased a 12/24v rudder angle indicator sensor, which is essentially a stainless steel arm attached to a potentiometer. We also needed a pair of 6-32 ball links to attach the indicator to the rudder post.
Rudder angle sensor |
The rudder angle indicator attaches to the rudder post parallel to the ram. Since our ram is particularly long, Bill had to thread a long aluminum rod to go between the indicator and rudder post. The indicator is then wired from the indicator to the pypilot computer.
With all of the hardware in place, it was time to fire up the pypilot along with our navigational computer running OpenPlotter and OpenCPN. We'll call it the NavPi. As I mentioned in our previous post, we wanted to be able to see and control the autopilot and view all of our data at the nav station as well as in the cockpit using a Windows-based touchscreen tablet.
Pypilot functions as a WiFi access point (AP), and OpenPlotter can function as either an AP or as a client. In order to accomplish our goals, we have the pypilot set up as the AP and OpenPlotter set up as the client. When both are powered on, NavPi connects to the pypilot over the wireless connection. It receives rudder feedback information and controls the autopilot. The pypilot receives the wind, GPS, and other NMEA sentences transmitted from the NavPi. We can engage or disengage the autopilot, steer via compass, GPS, or wind (true or apparent) by clicking buttons in an OpenCPN plugin or app from the nav station.
When we boot up the tablet, it also connects to the pypilot over the wireless connection. Once we open OpenCPN on the tablet, it receives depth, speed, wind, GPS, AIS, rudder angle, pitch, heel, barometric pressure, temperatures, etc. from the two RPi computers down below and can also control the autopilot.
Once fired up, we had to calibrate the IMU and the rudder indicator. When the boat is level, go to the calibration page and set the pitch/heel angle by telling the software the boat is level.
Pypilot -- calibrating pitch and heel |
Pypilot compass calibration needs to be done |
Pypilot compass calibration is complete and data points are located on the sphere |
We also had to calibrate the rudder indicator and set the end stops. We centered the rudder and established 0 degrees, and also the end stops to prevent the rudder from going hard over. You can also establish fail safes to turn the autopilot off if the motor gets to a certain temperature, max current, etc.
Sample screenshot of pypilot plugin in OpenCPN -- from OpenPlotter Manual. |
We went on a few test sails with Sean while he was visiting to test the system and work out any bugs. Sean made a video of one of our test sails.
Sean D'Epagnier remotely steering Phoenix using his pypilot marine autopilot |
In our first trip out, we ran the pypilot for nearly 3 hours and used a miserly 1.2 amp hours! By comparison, most commercial autopilots will use 6+ amps per hour.
Pypilot uses remarkably little power when sailing upwind or on a beam reach, and we can run it for 10-12 hours in GPS mode and use 6 amp hours or less.
As expected, the power consumption varies with different sailing conditions, as well as with how well your sails are trimmed. We found we used the most power to date sailing on a deep broad reach (120-150 degrees), jib and jigger with a 4' following sea. Over an 8 hour run it used 9 amp hours. As soon as the waves subsided the power consumption decreased, and neither the motor controller nor the pump showed signs of overheating.
On a similar broad reach using the main and genoa, we used 6 amp hours over a 10 hour period.
Thus far, pypilot holds course very well in GPS and compass modes. Steering to wind is not the systems strong suit, though playing with the gains and sail trim does help somewhat. Sean is continually updating the software and is very responsive to questions people may have about his system. He is also continually updating information in his his online wiki "manual".
The biggest challenge in using the pypilot to date is getting used to the variety of gain settings to maximize efficiency, which we are still learning. There are almost too many parameters to play with! But the more we play with the pypilot the more we love having our new 3rd crew member on board!
Bill kicking back and letting the pypilot autopilot do all the work! |
The pypilot was particularly helpful when we were trolling while sailing on a beam reach at 7 knots and had two fish on at once! The autopilot definitely did its part in filling the fridge (and our bellies) that day!
Catching Spanish Mackerel aboard Phoenix |
Sean is very passionate about creating open source software that people can use and customize to their specifications. We had the opportunity to see Sean build, program, and make improvements to the pypilot system while he was working on ours and were impressed with the amount of time, attention to detail, and quality control he puts into each one. Although you could certainly build a pypilot from source yourself, purchasing a system built and tested by the creator at a low cost is a bargain and made a lot of sense to us. Plus, you get to help a fellow sailor continue to make cutting edge technology for all of us to use!
The article is much informative which i was searching for .Nice intro good explanation thanks for sharing.
ReplyDeleteEnrgtech LTD
Congratulation for the great post. Those who come to read your Information will find lots of helpful and informative tips. Boating Navigation App
ReplyDeleteNice article! I am thinking to renew my 20years old raymarine autopilot and will consider the pypylot open solution!
ReplyDeleteVery nice article. I'm looking to upgrade my 25yo Robertson AP200 so I (at least) have a tack function, and may be remote control ability. Very interested in this solution.
ReplyDeleteThank you for the article. I would like you to tell more on how to connect all the electrical ends of the pypilot together, I mean the computer, the "hat", the motor controller, and finally a motor, plus all the end-stop sensors.
ReplyDeleteVery informative and useful information. Will be using PyPilot soon on a customers vessel, where we also installed our Wallis&Gill wind sensor. Cheers!
ReplyDeleteWill definitely be using PyPilot on a customer's boat soon. Cheers!
ReplyDelete