@captnoliv/signalk-autopolar
v1.2.0
Published
Learns your boat's polar by watching how she is actually sailed — never under engine, never at anchor. Web app, SOG/STW and true/apparent comparison, speed-sensor diagnostic, .pol / Jieter / CSV export, direct hand-off to signalk-polar-management.
Maintainers
Readme
signalk-autopolar
Learns your boat's polar on its own, by watching the way she is actually sailed. The more miles you put in, the better it gets — and you never have to sail a single test run.

Features
- 🔥 Collects while you sail, no test runs. A point is kept only when the boat is in one steady regime — which is not the same as demanding constant numbers. → Why this one
- 🔥 Nothing is frozen at collection. Every point carries SOG and STW, true and apparent wind, so all four polars are recomputed on demand from the same raw measurements. → Why this one
- 🔥 The raw log is kept, not just the verdict. Get the thresholds wrong for the day's sea state and you replay the file instead of sailing the passage again. → Why this one
- 🔥 Never under engine, never at anchor. Blunt on purpose: no evidence the engine is off, no collection — with a bounded manual declaration for boats with no engine data at all. And because engine data can be present, fresh and yet constant, one check that needs no sensor at all: a keelboat does not outrun the true wind upwind. → Never under engine, never at anchor
- 🔥 Tells you whether your speed sensor lies. Current vs. a genuine calibration error, with a ready-to-use correction table for the Airmar DST810 and similar instruments. → Is your speed sensor telling the truth?
- 🔥 Leeway measured, and taken off the VMG. Pointing 35° while sliding 8° sideways makes 43° over the ground. The gap between heading and course over ground is split into leeway (flips sign when you tack) and current plus compass error (does not), so the polar can be read against the track the boat actually makes. → Leeway
- 🔥 VMG targets with the cost of leaving them. The neighbouring angles either side of the optimum, in knots and in percent, so you know whether holding the angle is worth it. → VMG targets
- 🔥 A live "where am I now" reading. Your current angle and speed plotted on the polar, interpolated between measured wind bands, never extrapolated past them. → Where you are right now
- 🔥 "Is it worth changing sail?" — what the other sail plans actually did at this wind and this angle, with the evidence behind every row. → Sail comparison
- 🔥 Sail plan taggable after the fact. Type the times you remember, or let the plugin suggest boundaries from steps in performance — corrections never touch the raw measurements. → Fixing the sail plan after the fact
- 🔥 Test rigs stay out of the way. Sailing with the main down on purpose is a measurement, not a mistake: those points are kept and studied, and left out of the polar you route with and of everything shared. → Sailing without a sail, on purpose
- 🔥 Pausable. A delivery, a tow, an afternoon of trim tests: one click and nothing is written — points or raw log, so a replay cannot bring it back. → Pausing Autopolar
- 🔥 Sea state measured, not typed in. Peak-to-peak pitch over the window, stored raw. → Sea state
- 🔥 Drafts a polar from your server's history, months before the plugin was even installed, through the same admission filter as a live point. → Drafting a polar from the server history
- 🔥 Exports and a direct hand-off.
.pol, Jieter text, CSV, JSON, raw.jsonl, and one click to push into Polar Management. → Web app tour, Polar Management hand-off - 🔥 Free, and the polar goes back into a shared pool — automatically, every 500 points, no position ever collected, both speed readings and what is needed to tell them apart. → Sharing your polar
- 🔥 Tells you when it is stuck. A ntfy alert if sailing goes on for 20 min with nothing kept, with the dominant rejection reasons. → Idle alert
Web app
http://<server>:3000/@captnoliv/signalk-autopolar/ — live state, polar
diagram, VMG analysis, sail-plan filter, speed-sensor diagnostic, exports.
Full tour of every card: docs/webapp.md.
Install
From the SignalK app store, or:
cd ~/.signalk
npm install @captnoliv/signalk-autopolar
sudo systemctl restart signalkNo dependencies: nothing to install on board, so no data used offshore.
Then open the plugin configuration and fill in the boat model and the name to publish under. The plugin waits for them before collecting anything — see Sharing your polar.
Reference
- Settings — the plugin configuration, tier by tier
- Data files — what lives in the plugin data directory
- Is the polar any good yet? — what makes a polar usable
- Letting me know this install exists — the daily ping
- Telling you a new version is out — the update check
- Tests —
npm test, and a no-boat preview
Supporting the plugin
Free, MIT, no account, no telemetry, no nag screen on startup. The web app asks once the polar it built for you has actually become usable, at most twice ever, never offline, as a banner and never a modal. Details: docs/support.md.
★ Star the repository · ☕ Buy me a coffee
Licence
MIT. Sharing is the deal, not a legal condition: no licence can compel you to send data, and one that pretended to would just be ignored. The plugin asks once, defaults to yes, and makes it effortless — that is the whole enforcement mechanism.
