SafeAnchor — anchor watch and radar
SafeAnchor is the anchor alarm. It watches your boat while you sleep, and
calls you when something changes.

The tab has a bottom pill bar with three sub-modes:
Anchor Watch — Radar — Remote.
Anchor Watch
The focused monitor:
disarm.
To set the anchor:
The alarm state badge changes to Armed. If you cross the radius a
continuous siren sounds, the screen flashes, and you receive a
notification. While the app is open, the siren plays at full media
volume — ignoring the ring/silent switch and ringer volume — and keeps
looping until you silence, extend, or disarm.
When the app is in the background or the screen is locked, the alarm
reaches you through a Time Sensitive notification that pierces Focus
and Sleep modes; if you leave it unacknowledged it re-posts every
30 seconds for 5 minutes, so a missed first banner is not the last one.
Opening the app from the notification resumes the full-volume siren and
the on-screen controls. For the loudest possible alert with the screen
off, keep Time Sensitive Notifications enabled for AnchorQueen (see
Troubleshooting → My alarm didn't sound).
When the drag alarm fires
A full-screen Anchor Dragging alert takes over the display. It shows
your current distance from the anchor, the safe-zone radius, and how long
the alarm has been active. Two actions:
first shows a confirmation that previews the change: how far you are
past the current zone now, and the new radius the watch will resume at
(your current distance plus a 25 % margin). Confirm to grow the zone
and re-arm; the watch never goes blind.
rings stay on the chart, but no further drag alarms fire until you
re-arm. Use this when you've decided the position is fine or you're
about to re-set the hook.
Grounding alarm
Separate from the drag alarm, AnchorQueen watches the water under your
keel. On every position fix it estimates your under-keel clearance and
warns when it drops below your safety margin (default 0.5 m, adjustable in
Settings). Clearance is resolved from the
best source available — a live NMEA depth sounder first, then charted
soundings, then the offline NavGrid bathymetry — so it still works with no
signal. The alarm message names the source it used (e.g. "navGrid").
When it fires you get a GROUNDING ALARM notification plus a red
banner across the top of the chart. The banner has two actions:
you know you're in a thin-water berth and the warning is expected.
Resume early from Settings → Anchor Watch.
the water gets shallower or you move into a fresh shallow patch, the
alarm surfaces again.
The alert sounds once per grounding event — it won't fire-storm
while you sit in the same spot. It re-arms automatically once clearance
recovers to safe depth.
Force-quit safety net
AnchorQueen watches your boat with two independent mechanisms working
together. The first is the in-app drift engine — the one you can see in
the radar and the Anchor Watch panel — which runs while iOS is happy to
keep the app alive in the background. The second is an OS-level
geofence: the moment you arm the watch, AnchorQueen asks iOS to
register a circular safety zone at your anchor plus a small margin
beyond your alarm radius. That zone lives inside the operating system,
not inside the app.
What that means in practice:
engine keeps running, the geofence sits dormant as a backup. Normal
case.
in-app engine is gone, but iOS still watches the geofence. The
moment the boat crosses it, iOS relaunches AnchorQueen in the
background, raises the alarm, and sends the notification.
switcher ("force-quit") — same story. The geofence survives,
AnchorQueen is relaunched on a crossing, the alarm fires.
preserved across reboot. AnchorQueen is still on watch.
The two layers run together because each catches what the other
misses: the in-app engine reacts in seconds with sub-metre accuracy
while the app is alive, and the geofence guarantees the alarm still
reaches you when the app isn't.
A green BEACON badge appears under the place name at the top of the
chart whenever that background geofence is live — a quick visual
confirmation that the watch keeps guarding even with the app closed.
Closing and reopening the app keeps the watch. If you quit
AnchorQueen (or iOS unloads it) while anchored, reopening it restores
the whole watch — the armed alarm, the swing rings, the recorded swing
track, and the chart zoom all come back exactly as you left them. The
alarm does not false-fire on reopen; it simply resumes watching.
For this to work, AnchorQueen needs Always location permission and
the system notification permission — both prompted the first time you
arm a watch. See [Settings → Anchor Watch
Settings](settings.html#anchor-watch) and
troubleshooting if either
prompt was missed.
> The honest limit: iOS can guarantee the relaunch only while the
> device has power, a GPS or cellular fix, and you have not disabled
> location services for AnchorQueen. Airplane mode, a flat battery, or
> revoked permission defeats both layers — there's no way around
> physics. We surface a persistent "Anchor Watch armed" notification
> while the watch is live so a quick glance at the lock screen
confirms the safety net is in place.
Lock the anchor
Once set, the anchor pin is locked by default (orange padlock button,
bottom-left of the chart) so panning or zooming the chart can never drag
it by accident. To reposition the anchor by hand, tap the padlock to
unlock, drag the pin, then tap it again to re-lock.
Confirmations
Because these actions change a live watch, AnchorQueen asks you to
confirm before:
anchor and rings stay put).
Re-arming (resume) and the very first drop happen immediately — they
only add protection.
Drift forecast
Tap the clock button (bottom-left) to open the forecast scrubber.
Drag the slider — or press play — to sweep a ghost of your boat through
past → now → forecast. The past comes from your recorded swing
track; the forecast projects where the boat will lie under the hourly
wind and current.
The scrubber is laid out in rows so it never runs off a narrow screen:
the status label (NOW / PAST / FORECAST) and the time sit on top, the
slider gets a full row of its own, the tier ladder follows, and the
transport buttons — play, honeycomb, ⓘ, and dismiss — sit on the row
below.
The slider is split in half: the left half is your recorded past, the
right half is the forecast, and the green tick in the middle is now.
That keeps even a short anchorage's history easy to scrub instead of
crushing it into the far edge. To jump straight back to live, tap the
green tick, release the knob near it, or tap the status label (NOW /
PAST / FORECAST). The forecast half gives fine control over
the next few hours and compresses the distant outlook, so a long
forecast stays easy to scrub; the time label shows the lead (e.g. +14h,
+2d3h) as you go.
How far ahead you can look depends on your plan:
The slider spans exactly your plan's reach, and a three-chip tier
ladder under it (Free · 1h / Pro · 12h / Max · 3d) shows the longer
windows the higher plans unlock. Your current plan's chip is ringed; tap
a locked chip to open the Store and upgrade.
sit* at the scrubbed hour — green = less likely, red = most likely
— widening further into the future as uncertainty grows. Toggle the
honeycomb with the hexagon button without leaving the forecast.
teal). Tap the ⓘ button in the scrubber for the full colour key
and the weather's update time.
The forecast needs marine weather loaded — open the Meteo tab once
if the arrows or honeycomb don't appear.
Radar
A live circular radar of your swing:
radius.
The radar updates continuously with GPS. It is the screen most captains
leave on overnight — glance at it, see the boat inside the ring, sleep.
Feedback & Support
Open the menu button on the radar screen and choose Feedback &
Support (also reachable from the sidebar) — everything lives on one calm
screen, so you never lose your place:
to support@anchorqueen.com with your app and device details already
filled in. If your device has no mail set up, it hands off to your default
mail handler instead.
add a short title and your message, and optionally attach a
screenshot. If a screenshot can't be uploaded the app tells you and
keeps your text so you can retry or remove it — it is never silently
dropped.
badge (Open, In progress, Resolved, or Closed). Your most
recent thread is open by default, so the replies and the reply box are
right there — just type and send, no tapping to expand. Replies and status
changes appear live, and you get a notification (and a sidebar
badge) when the team answers.
You must be signed in to start a conversation so we can reply and keep
your history together; you can always email us instead. Sign in from your
Remote
Live Beacon — free for everyone
Whenever your boat is on the water — anchored or under way — AnchorQueen
broadcasts a live beacon with your position so others nearby can see you in
real time. This is free on every plan and turns on automatically; the
Live Beacon card on the Remote screen shows whether it is active.
Your privacy setting controls what is shared:
you live on their chart by turning on Public Beacons in their
Chart Layers (you appear with an amber ring).
details are hidden, and you do not appear on the public chart layer.
Change this any time in your captain profile. Anonymized
beacon data also helps AnchorQueen learn which anchorages get crowded.
When your anchor watch is armed, the beacon switches to auto-monitoring
automatically — your boat broadcasts as a live "server" so it can be watched
remotely, on every plan, even if you're near shore where automatic
on-water detection is unsure. The Remote screen shows "Anchor Watch —
Broadcasting" while this is active. Share a [channel](#remote-watch) to let a
specific person watch.
Channels — watch a boat or a fleet
The Channels section lets you share a private live track or run a fleet:
up to 2 people can watch. You get an invite code to share; tap the
share button to send it. Add an optional password to lock it.
vessels, Max up to 100. Everyone who joins sees every boat on one map.
password if the channel has one) to start watching. Joining never requires a
subscription — only creating a channel does.
Once you're in a channel, the section lists every connected vessel with its
name, captain, and a live / stale indicator. The channel's current invite
code is shown there too — tap the rotate button (⟳) to generate a fresh
code, which immediately stops the old one from working (handy if you over-shared
it); people already in the channel stay connected. Tap Leave Channel to stop.
Watching from your own second device. To leave one device on the boat (say
an iPad) and follow it from another (your iPhone), turn on Monitor only
(watch-only) on the watching device's Remote screen. A monitor never
broadcasts — it just watches — so the two devices don't clash even on the same
account. Set it on the iPhone, then join the boat's channel (or, if the boat
is a Social Captain, just switch on Chart Layers → Public Beacons).
Leave the toggle off on the boat device. You can also simply sign the second
device into a different account — that works without the toggle.
> The free [Live Beacon](#beacon) above is separate — it is always on and needs
no channel or subscription.
On the chart — the fleet strip
While a channel is live, every connected boat also shows on your nautical chart,
and a row of round device buttons floats across the top of the chart — one
for each connected vessel or watcher:
status ring: teal = at anchor, indigo = under way, red = dragging, grey =
offline. A small corner badge marks ⚓ anchored boats apart from people who
are only watching (a phone or computer icon).
the quickest way to find a vessel that's off-screen.
Show who's connected. Tap your own boat (the ringed dot at your current
position) to draw dashed lines from you to every boat in the channel — a quick
picture of the whole fleet you're linked to. Tap it again to hide the lines.
Flotilla — track a whole fleet
A flotilla is a shared channel for a group sailing together — a rally,
charter fleet, club cruise, or regatta. Pro tracks up to 10 vessels, Max up
to 100.
Join by Code (free) — from the app or a link.
board gives you:
card: captain and home port, live status (under way / at anchor /
dragging), speed, course, heading, distance from you, battery, signal age,
vessel specs (type, length, builder, year), and exact position (tap to copy).
The card updates live as new positions arrive.
Organisers can also manage the fleet and build the day-by-day itinerary from
the web portal at anchorqueen.com → Flotillas. (Posting fleet updates to
social media is coming in a later release.)
Setting the right radius
A common starting point is your deployed rode length plus 15–20 m for GPS
drift. Tune after one full tide cycle.
Seabed Type & Community Substrate Reporting
Below the position read-out on the GPS tab, AnchorQueen integrates a live, offline-capable Seabed Readout Card that displays the bottom composition and anchor holding quality at your current position (or at the anchor drop coordinates once set).
On the chart, the anchor-mark placard mirrors this. Once you drop the hook, the floating info card beside the anchor symbol adds two lines: the seabed type and holding at the drop point, and a digital depth read-out. Both resolve in the same order as the readout card:
* Seabed: your own report for the spot first, then the charted SBDARE data, then nothing if the spot is uncharted.
* Depth: the measured depth you logged with your report first; otherwise live water depth from EMODnet Bathymetry (in your units). The line is omitted while offline or where the service has no value.
The card auto-positions itself on the side of the anchor away from your boat, so it never sits on top of the anchor symbol, the tether, or the vessel — it slides to the opposite side as the boat swings, keeping the busy area around the drop point readable. The lookups run off-screen and only refresh when the anchor moves — or the moment you file a report — so the chart never stutters.
If the placard shows no seabed, or the charted type is wrong: flip the bottom command panel to its GPS page (tap the GPS indicator at the top of that panel — it auto-shows the ALARM page while the watch is armed), tap the Seabed Readout Card beneath the position read-out, and set the type / holding (and optionally the measured depth) in the picker. Your report overrides the chart everywhere it's shown, including this placard — it updates as soon as you submit, without re-dropping the anchor.
Off-Main-Thread Spatial Queries
To prevent UI thread layout thrashing and frame drops during map panning, the substrate engine runs entirely in a background isolate:
* Isolate Parsing: The Seabed Query Service performs background-isolate-driven parsing of hazards.geojson (loading S-57 SBDARE seabed area polygons and precomputing bounding boxes) off the main thread.
* Ray-Casting Lookup: Point-in-polygon queries are computed asynchronously via ray-casting.
* Quantized Debouncing: Viewport coordinate lookups are quantized to a ~100 m grid and debounced by 150 ms to avoid query storms during panning.
Reading the Composition & Holding Quality
The readout card shows a waves icon, the official IHO S-57 abbreviation, the plain-language name, and a color-coded Holding Quality Chip:
* 🟢 Good Holding: Sand (S), Mud (M), Clay (Cy), Silt (Si). Perfect for standard anchors (Delta, Rocna).
* 🟡 Fair Holding: Gravel (G), Pebbles (P), Cobbles (Cb). Requires extra scope due to poor penetration.
* 🟠 Poor Holding: Stone (St), Rock (R), Boulder (Bl). High risk of sliding or snagging.
* 🔴 Do Not Anchor: Coral (Co), Weed (Wd), Shells (Sh), Unknown (Unk). Severe dragging risk or ecologically protected zones.
Submitting a Community Observation
If you anchor in an uncharted spot, or if your anchor brings up a substrate that differs from the chart (e.g., weed instead of sand), you can submit a community report:
Caching & Cloud Synchronization
Your observation is managed by the Seabed Report Manager:
* Local Caching: Saved instantly to your local device database so it shows next time you visit the coordinates (matching radius of 120 m).
* Firestore Sync: If online, the report is securely uploaded to the global community database via a Firebase HTTPS Callable Function (submitSeabedReport).
* Offline Support: Reports created while offline are queued locally and synchronized automatically once your cell signal returns and you are signed in.
Try the watch without leaving the dock
To rehearse the anchor watch — arm it, then watch it alarm as the boat
"drags" — turn on Simulator Mode in
Settings → Nav. It feeds the anchor watch a
position you control, so you can drop the anchor, then nudge the throttle
and helm on the chart console to drift the boat past the radius and hear
the alarm fire. Turn Simulator Mode off to return to real GPS.
The console collapses in stages — full helm → autopilot strip → a slim
command rail — and the slim rail now has its own minimize (chevron)
button that tucks it away to just the corner S badge, fully clearing
the chart. Tap the S to bring the controls back.
Instrument data source
By default the anchor watch uses your device's built-in GPS. If your boat has
an NMEA Wi-Fi gateway or a Bluetooth instrument pod, you can drive the watch
from it instead — a masthead GPS is steadier than a phone below decks. Choose
the source in the Settings → NMEA sub-tab
(Beta): Built-in GPS, NMEA over TCP/UDP (enter the gateway host and
port — 10110 is standard), or NMEA over Bluetooth (scan and pick your pod).
The same screen shows live diagnostics so you can confirm position, depth, and
wind are arriving before you rely on them.
While an instrument source is feeding the watch, a small Instruments badge
appears at the top of the radar screen:
re-establishing the link.
If the feed goes silent for 30 seconds the watch automatically falls back to
your device's GPS so you are never left unguarded, and a red banner tells you
it has switched. The badge disappears once the watch is back on phone GPS. Your
configured source is remembered and reconnects automatically the next time the
app launches.
Technical Details: Relocation & Filtering
Direct-It Relocation Math
When you drop your physical anchor, the boat is usually drifting back under wind or current. Dropping the anchor pin at the boat's GPS position after settling is incorrect because the anchor itself is actually located at the bow's position at the moment of release.
To resolve this, AnchorQueen features Direct-It Anchor Relocation:
$$\text{Lat}{\text{anchor}} = \arcsin\left(\sin(\text{Lat}{\text{boat}}) \cos(d/R) + \cos(\text{Lat}_{\text{boat}}) \sin(d/R) \cos(\theta)\right)$$
$$\text{Lon}{\text{anchor}} = \text{Lon}{\text{boat}} + \arctan2\left(\sin(\theta) \sin(d/R) \cos(\text{Lat}{\text{boat}}), \cos(d/R) - \sin(\text{Lat}{\text{boat}}) \sin(\text{Lat}_{\text{anchor}})\right)$$
Where $d$ is the horizontal distance (rode length), $R$ is the Earth's radius, and $\theta$ is the true bearing.
GPS Filtering & SMA(9) Smoothing
GPS receivers on mobile devices are prone to multipath reflections and horizontal dilution of precision (HDOP) spikes, especially in narrow coves or next to cliffs. This can cause "GPS jumps" that trigger false alarms.
In Settings → Advanced, you can choose between:
$$\overline{X} = \frac{1}{9} \sum{i=1}^{9} Xi, \quad \overline{Y} = \frac{1}{9} \sum{i=1}^{9} Yi$$
This suppresses single-frame spikes of up to 25 meters, preventing middle-of-the-night false alarms while maintaining an active response time of under 30 seconds for actual boat dragging.
If something goes wrong
Troubleshooting: false alarms.
Alarm to check the sound; see