01 / A FAIRLY RADICAL CAREER CHANGE
A motor with
new responsibilities.
The experiment pairs a drill-motor steering rig with a Raspberry Pi and a BTS7960 motor controller. The Pi works out corrections; the motor controller supplies the drive; the drill motor does the turning.
The aim is to follow a waypoint route using GPS course over ground. There’s no compass, no IMU and no rudder-position sensor. That makes the question less “can a drill turn?” and more “what does the software actually know?”
02 / WHO IS TELLING WHOM WHAT TO DO?
The app has the route.
The Pi has the motor.
OpenHelm is the interface: it sends a route and engage, disengage or manual steering commands, and displays status. A separate controller on the Raspberry Pi calculates course corrections and drives the motor through the BTS7960.
OpenHelm
Route and commands → Pi
Status ← Pi
Position input
Network NMEA GPS → Pi
Phone position as fallback
Raspberry Pi controller
Corrections → BTS7960 → drill motor
The controller starts disengaged. Receiving a route is not an invitation to start turning the boat. When inputs required for automatic steering go stale, automatic steering stops. Manual commands have different input checks; the automatic checks are not a blanket promise about every way of moving the motor.
03 / POINTING IS NOT GOING
Your bow can
disagree with your GPS.
Heading is where the bow points. Course over ground is the direction the boat is actually moving across the Earth. Wind and current can make those different directions. Picture walking sideways: where your nose points and where you’re going are now two separate departments.
This controller follows the GPS movement direction. It cannot read bow heading from a sensor it doesn’t have. At low speed, GPS course becomes unreliable. A position dot on a chart does not settle the argument.
04 / COUNTING IS NOT SEEING
No little camera
inside the rudder.
Without rudder-position feedback, the software estimates motor travel from the duty ramp actually delivered to the motor, rather than just the requested command. That gives it a better account of its own output. It still does not measure where the rudder ended up.
Mechanical slip, a jam or an incorrect calibration cannot be wished away by keeping a tidy tally. Motor-travel estimates are estimates. The drill has been promoted; it has not become all-knowing.
The current software requires an explicit hard_over_seconds calibration value. It must come from measuring the real rig; the software cannot verify that you measured it. An earlier 60-second value was a mock, not a boat measurement and not an installation default. A number that looks reassuringly specific can still be made up.
05 / LIFT THE COVER
Read the workings.
Keep a hand on reality.
The experimental source is public. Start with the README: it separates tests using fake hardware from setup for real equipment and points to the design limitations. Reading the code and running its software tests are not sea acceptance.
This preview is not cleared for hardware deployment. Running a real rig requires measured calibration, competent supervision and an accessible physical cutoff. This launch releases software and a story, not permission to leave the helm.
Original software: GPL-3.0-or-later, with preserved pypilot driver attribution and third-party terms.
No private configuration, calibration, trial logs or passwords are included in the public source export. Bring curiosity. Leave the imaginary sea-trial certificate at home.
