Open Helmsman

An open source marine autopilot

Similar projects worth following
In the marine world there are many jewels of open source such as OpenCPN, Kplex, and many more. On the other hand OSHW is a little thinner on the ground. To fill this void a bit I want to make an open source marine autopilot.

Existing autopilots you can buy are don't allow you to access sensor data, are very expensive, come with terrible drive motors, and don't allow you to have fun with control algorithms. There's many other reasons you might want to make your own autopilot but to be honest I didn't really need a reason in the first place.

I want to be able to support NMEA0183, NMEA2000, provide NMEA over USB and bluetooth (just some HC06 type thing), and drive up to 10A continuous drive motor loads. Ultimately I want to do some experimentation on control algorithms like some online learning algorithms, differentiate between sail and power. Ultimately, I want the autopilot to be able to properly surf a 40ft cat down a wave under sail.

I'm choosing to license everything in this project under the open source hardware license (OSHW).

This project is actually a complete revision of another marine autopilot I was making. That brought my confidence in my soldering skills back to earth. It had a pretty high part count, a few of those terrible MEMs sensors packages, and a large fine pitch micro. It took a long time for me to get it working but when I did I found there were plenty of things I wanted to change, heaps of ways to simplify the design, and I found out that I hated Microchip's 32 bit software ecosystem.

Playing around with the STM32 ecosystem on the other hand has been a huge amount of fun so the new version's going to be using that. I'm also going to be trying to reduce the part number and board size as much as I can, use some better sensors, and see if I can get a couple of the boards built at Macrofab so I don't need to deal with the more annoying packages.

For me this project is more of a platform. I want to get the electronics out of the way with a board that's reasonably versatile so I can play with it. Programming a quad is fun, and I'm looking forward to having just as much fun with a boat. For example, do you need a wind vane to do effective upwind sailing or can you do it with an anemometer and GPS? Can you limp on without an anemometer? The possibilities are endless. Given a wind direction how well can you replicate a human in steering over waves or surfing down them? Can you steer for 5 minutes and have that be enough to get the autopilot to hold your course and have adapted to the conditions?

I guess I probably need DFU as well.

  • Rev 1 post mortem

    kirrent04/20/2016 at 12:08 0 comments

    Board revision 1

    Any complete redesign of a project needs a good understanding of what went right and wrong the first time. The board is above so I'll be working across the thing from left to right in the absence of any better ordering that comes to mind.

    While designing I imagined the board being used to power other devices but it turns out there's not a lot of situations you need to supply another device with 3.3V or 5V. As a result it turned out the regulators were super over specced. If you're only powering a small amount of logic then there's also little need to use switching regulators which are more expensive and require more components exterior to the regulator. There's plenty of money, space, and hassle to save by switching to less powerful linear voltage regulators. There's also only a few of components that needed the 5V power supply. The motor driver I was using and any HD44780 lcd I could find. As it turns out, there's 3.3V replacements for both that are pretty easy to find (love that 5110 lcd) so if I can find a couple of more alternatives I could do away with the 5V rail.

    The screw terminals? Love the screw terminals. They're an excellent compromise between a permanent setup and switching out different components. Considering they're used on a lot of autopilots I won't fix what ain't broke.

    The all in one H bridge is a brilliant piece of tech. For simplicity's sake I certainly think it's worth the money especially seeing as alternatives wouldn't be that much cheaper. I'll be substituting the 3.3V version and expanding the driver's thermal pours. The datasheet claims a 30A max continuous current but the rating is entirely dependent on heatsinking. I want to be able to have the autopilot capable of 10A but I guess if you want more a heatsink might work depending on the thermal conductivity to the top of the package.

    The RS422 drivers worked well, unfortunately all the other marine electronics in the world doesn't necessarily adhere to the standard properly. An NMEA0183 fact sheet warns that non-comformant devices with differential voltages up to 15V are common enough. I'm sure there's some silicon out there which can help.

    CAN works just fine. All the difficulties here are on the software side.

    I hated the microcontroller. I appreciate most things about the hardware itself. It's got great peripherals, must be pretty hardy considering how dodgy my soldering was, and I'm used to PICs. Unfortunately, the lack of good software from Microchip is even more noticeable now I'm using a 32 bit processor with so many peripherals I want to use. Harmony looked promising but it turned out to be quite painful and the C toolchain is still terrible.

    I've been playing around with some STM32 stuff using the GCC compiler and been enjoying the cube stuff so I'll be leaving my old love Microchip behind and moving to ST. I just can't follow them into 32 bit.

    Finally, I used a separate accelerometer and gyro for slightly higher accuracy and precision originally. Turns out that I really didn't need that so I'll be using a sensor where the two are integrated. On the compass side, things are great and work well once you've swung the lead.

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates