TL;DR β What "Convoy Mode" Really Is
A software-defined formation: every seastead continuously holds a precise 3D slot on a shared, moving grid. The system needs four cooperating loops β positioning (centimeter-accurate relative fix), communication (low-latency mesh), control (thrusters + stabilizers), and situational awareness (AIS + parallax cameras). The good news: per-unit hardware cost can stay under ~$800 while delivering a multi-Gbps mesh that also quiets the sea downwind of the convoy.
1. Convoy Mode β System Architecture
1.1 High-level components
On each seastead
- RTK GNSS receiver (moving-base capable) + inertial measurement unit.
- Mesh radios: 4Γ directional 5 GHz + 1Γ omni + 1Γ LoRa backup.
- AIS transponder (already planned) + at least one forward-facing camera.
- Formation controller: thruster mix keeping relative position < 0.5 m.
- Convoy agent software (slot bookkeeping, gossip state, heartbeat, parallax tracker).
Shared services (peer-to-peer)
- Convoy coordinator (elected via Raft) β slot allocator, velocity vector broadcaster.
- Distributed object track database (CRDT-backed so splits heal cleanly).
- PTP / NTP time sync (sub-ms for camera parallax).
- Watch roster ledger with cryptographic heartbeats.
- Convoy-wide velocity target and heading voted by active pilots.
1.2 Coordinate convention
The convoy grid is defined in a convoy-body frame with origin at the elected coordinator.
The X axis points along the convoy velocity vector; Y is starboard; Z is up.
Each slot is (i, j) where the physical position is p = (iΒ·D, jΒ·D, 0) in convoy-body
and D is the grid spacing (suggested default: 50 m).
The convoy-body frame itself is anchored in an ECEF / WGS-84 point that drifts with the desired course & speed.
This keeps the "slot" notion independent of ocean current, wind drift, or turns.
Moving-base RTK, concretely
- One seastead (the coordinator) publishes RTCM 3.x correction messages at 5 Hz on the mesh.
- Every other unit solves an RTK baseline to the coordinator → relative fix, typically 1β2 cm.
- When the coordinator changes, the baseline is re-anchored in one epoch using the last known ECEF offset (no "cold start" glitch). Software packages that support this out of the box: RTKLIB (moving-base mode), Septentrio mosaic-X5, u-blox F9P with moving-base firmware.
1.3 Join / leave protocol
// Pseudo-state-machine for joining seastead state = DISCOVERED // saw convoy broadcast send JOIN_REQ {id, size, capabilities} on SLOT_ASSIGN(i,j,D): state = APPROACHING navigate_to( convoy_position(i,j) - 2Β·DΒ·heading ) // approach from astern state = APPROACHING when |pos - approach_point| < D/2 AND |vel - convoy_vel| < 0.1 m/s: state = LOCKING publish CONVOY_MODE_ACTIVE engage formation_controller(slot=(i,j)) state = IN_FORMATION on LEAVE_REQ: publish INTENT_TO_LEAVE(slot=(i,j), eta=60s) disengage, exit astern state = DEPARTING
2. Communications Mesh β What, How Much, How Far
2.1 The physical-layer recipe
Salt-water is a near-perfect reflector at 5 GHz; at modest antenna heights the Fresnel zone is clear and multipath actually helps (constructive ground-bounce). Line-of-sight between convoy members is effectively unlimited; the limiting factor is free-space path loss and antenna gain.
Layer A β Directional backbone
Four ~25 dBi panel/parabolic radios per seastead, one aimed at each grid neighbor (N/S/E/W). Carries the RTK corrections, formation control, parallax imagery, and bulk data.
Layer B β Local omni mesh
One outdoor omni AP per seastead. Lets phones/laptops/dinghies connect within ~500 m. Uses 802.11s or B.A.T.M.A.N.-adv routing.
Layer C β LoRa backup
915 MHz LoRa Meshtastic node. Tiny bandwidth (few kbps) but 5β15 km range on open water. Carries slot position, heartbeat, emergency β works when WiFi is jammed, rained out, or powered down.
2.2 Recommended hardware (5 GHz backhaul)
| Item (example) | Unit $ | Qty | Ant. Gain | Rated P2P range (LOS) | Real throughput |
|---|---|---|---|---|---|
| Ubiquiti LiteBeam 5AC Gen2 (23 dBi) | ~$55 | 4 | 23 dBi | 20+ km | 350β450 Mbps |
| Ubiquiti PowerBeam 5AC 500 (25 dBi ISO) | ~$95 | 4 | 25 dBi | 30+ km | 450+ Mbps |
| MikroTik LHG XL 5 ac (27 dBi) | ~$100 | 4 | 27 dBi | 30+ km | ~400 Mbps |
| Ubiquiti UniFi Mesh UAP-AC-M (omni) | ~$100 | 1 | 4 dBi | ~180 m (client), 1 km (link) | ~120 Mbps |
| Meshtastic LoRa node (LilyGO T-Echo or similar) | ~$35 | 2 | ~2 dBi | 5β15 km @sea | ~2 kbps |
| Managed PoE switch 8-port outdoor (e.g. MikroTik CSS610-8P) | ~$85 | 1 | β | β | β |
| Cables/weatherproofing per seastead | ~$80 | 1 | β | β | β |
Per-seastead cost (using LiteBeams): 4Γ$55 + $100 + 2Γ$35 + $85 + $80 β $520
Per-seastead cost (using PowerBeams, more headroom): β $680
2.3 Range math (sanity check)
With 5 GHz, 25 dBi antenna each end, 23 dBm EIRP, 5 MHz noise floor at β β93 dBm:
@ d = 5 km, f = 5500 MHz → FSPL β 121 dB
Link budget: 23 + 25 + 25 β 121 = β48 dBm → SNR β 45 dB → 64-QAM 5/6 easily locked.
For the convoy at 50 m spacing (0.05 km), FSPL β 79 dB; receive β β6 dBm. Radios will happily run at the maximum MCS and deliver aggregate multi-Gbps across the four links. This is vastly more bandwidth than is needed for convoy telemetry, so you can stream all camera feeds in parallel for parallax fusion and still have capacity for community file sharing.
2.4 Layer-3 / routing software
- 802.11s mesh with B.A.T.M.A.N.-adv (Linux) for the omni layer β automatic route repair, no IP reconfiguration as seasteads join/leave.
- Static /48 subnet per seastead, with a simple OSPF or Babel daemon learning the four directional neighbors β predictable and debuggable.
- MQTT broker (Mosquitto) per seastead, federated β great for slot state, heartbeats, watch status.
- PTP (IEEE 1588) over the wired side of the mesh for <100 Β΅s camera sync. Needed for parallax.
- Tailscale / ZeroTier on top for operator/developer remote access over Starlink.
2.5 Why add the LoRa layer?
A convoy is a safety-of-life system. 5 GHz is great until there is heavy rain, a blown radio, or an attacker transmitting in-band. LoRa gives you a second, disjoint physical channel for the four things that matter most: "where am I, am I alive, I see a ship, I have an emergency." $35 per unit is cheap insurance.
3. Wave Attenuation by the Convoy β Does the Fleet Quiet the Sea?
3.1 Physical picture
Each leg is a half-submerged NACA 0030 foil (β 4.4 m chord, β 0.73 m max thickness, 4.4 m submerged length). An incoming ocean wave sees a row of these foils every D β 50 m. Each foil scatters part of the wave energy (reflection + diffraction) and dissipates part (vortex shedding, wave-making from the small waterplane, thruster counter-flow). For a head-on wave the convoy looks, to first order, like a porous, multi-row breakwater.
3.2 Transmission per row
The geometric blockage of one row, for a wave coming perpendicular to the rows, is roughly the ratio of the frontal wetted width to the row spacing. With 3 foils per seastead, each presenting the chord c β 2.44 m when waves are broadside to the seastead:
Not all of the blocked energy is stopped; let Ξ· β [0.6, 1.0] be the fraction actually removed by scattering+dissipation. Then the energy transmission coefficient per row is
After N rows the remaining wave energy is E = Eβ Β· T_rowN and wave height
scales as the square root of energy.
3.3 Example convoy β 10 Γ 10 grid (100 seasteads)
| Rows crossed | E/Eβ | H/Hβ (wave height) |
|---|---|---|
| 1 | 0.88 | 0.94 |
| 3 | 0.68 | 0.83 |
| 5 | 0.53 | 0.73 |
| 7 | 0.41 | 0.64 |
| 10 | 0.28 | 0.53 |
So in a 10-row-deep convoy, the windward seasteads see 1.0ΓHβ and the leeward-most seasteads see β 0.53ΓHβ β nearly half the wave height. People in the interior see something in between. This is a real comfort-of-life effect and is also the reason the thrusters/stabilizers on central units can run cooler.
3.4 Bragg resonance β the bonus effect
When the wavelength satisfies Ξ» β 2Β·D, back-scattered waves from successive rows add coherently (Bragg reflection). For D = 50 m this puts the resonance around Ξ» β 100 m β a typical ocean swell period of ~8 s. At resonance the effective transmission per row can drop to T_row β 0.75, yielding:
(exponent is N/2 because Bragg reflects every round-trip pair). This means for a typical swell, the interior of a 100-unit convoy can feel waves roughly one-quarter as tall as open sea. Literature on arrays of submerged cylinders (e.g., submerged breakwaters, wave-energy farms, Linton & Evans 1990; Peter et al. 2005) corroborates this band-gap phenomenon and the approximate magnitudes.
3.5 Limitations / open questions
- Waves arriving obliquely cross fewer rows β attenuation is cos(ΞΈ)-weighted. A square grid attenuates best on two axes; a hex grid equalizes it.
- Very long swell (Ξ» β₯ 300 m) sees the whole convoy as a small perturbation β negligible attenuation.
- Wind sea (short, steep chop, Ξ» < 20 m) is mostly dissipated by the foils rather than Bragg-reflected. Attenuation per row is actually stronger there; the interior can become quite flat.
- Leeward seasteads experience a slower-moving wake field that can excite the foils; the stabilizer "little airplane" fins become more important on those units.
4. Situational Awareness & Night Watch
4.1 Distributed obstacle tracker
Each seastead fuses its own AIS + radar + camera detections into a local track list. Tracks are published on
MQTT topic convoy/track/{id} with a PTP timestamp. Neighbour seasteads receive the
same object with a different bearing and a known baseline between the observers → triangulate.
Parallax ranging, closed form
Given two seasteads at p1 and p2 each reporting a bearing unit-vector u1, u2 to the same object, the best least-squares intersection is:
With the convoy knowing positions to β 2 cm, the parallax baseline is the error floor. Two units 50 m apart viewing an object on the horizon (bearing separation 0.5Β°) gives a range precision on the order of several hundred metres β plenty to tell "container ship 6 nm out on course 270" from "fishing boat at 1.5 nm."
4.2 Night-watch roster
- Each slot has a watch schedule published as CRDT calendar.
- The on-duty watchstander presses a physical "I'm here" button on an interior panel every 15 min; this generates a signed heartbeat on the mesh.
- Missing two consecutive heartbeats triggers an audible alarm in that cabin, then an audible alarm in neighbouring units, then a broadcast to the whole convoy.
- The shared dashboard also shows which units have a watchstander and which direction that person is looking (via the camera mount encoder). This gives every boat a visual sector-coverage picture.
4.3 AI augmentation
- YOLO-class model (Tiny YOLO v8 runs on a Jetson) on each camera feed, publishing proposed contacts.
- A small CNN on the horizon to flag any breaking silhouette, ship mast, or light, even at night (IR camera).
- Contacts are never used to steer without human approval, but they are pushed to the watchstander's HUD and into the shared track DB.
5. Formation Control & Walkway Stabilization
5.1 Controller
Each seastead runs a leader-follower controller: target slot position pslot(t)
is supplied by the coordinator; the local autopilot drives the position and velocity errors to zero using the
six rim-thrusters. A simple cascaded PID is adequate; an MPC helps when the convoy is turning
(slots move in body-frame arcs).
5.2 Walkway stabilization between two linked seasteads
The paired computers share their phase-resolved heave/pitch prediction (β 5 s horizon) from
forward-looking wave radar or accelerometers. Both boats then apply a feed-forward thruster trim that
minimizes the relative 6-DOF motion at the walkway pivot point. The result is an order-of-magnitude
reduction in walkway angular rate β easily enough that somebody walking across feels nothing worse than a gentle
elevator bounce. The software flags pedestrian_on_walkway = true for a few seconds before crossing,
during which the pair tightens the relative-error budget from Β±50 cm to Β±5 cm.
6. Safety, Security, Failure Modes
| Failure | Detection | Mitigation |
|---|---|---|
| Coordinator seastead fails | Missed RTK broadcasts > 2 s | Raft election of new coordinator; RTK baseline re-anchors in one epoch. |
| Mesh partition | Lost neighbor heartbeat | Each component maintains local slot hold via own GPS; rejoins gracefully. |
| RTK GNSS outage | Fix covariance blow-up | Degraded to PPP-Starlink + LoRa peer ranging (β 0.5 m). |
| Thruster failure on one leg | Motor ESC feedback / current | Triple-redundant power architecture (per-leg inverter) already gives 2-of-3 remaining. |
| GPS spoof / AIS spoof | Consensus β neighbors disagree | Reject any fix that moves > 2 m/epoch relative to neighbors; raise alarm. |
| Jamming of 5 GHz | RSSI vs. BER anomaly | LoRa layer continues to carry position + heartbeat + emergency. |
| Watchstander asleep | Missing heartbeat | Cascading audible alarms; convoy-wide alert after 2nd miss. |
7. Budget Summary Per Seastead (Convoy-only additions)
| Subsystem | Items | $ |
|---|---|---|
| RTK GNSS + IMU | 2Γ u-blox F9P + STM32 IMU + antenna | ~$280 |
| Directional 5 GHz backhaul | 4Γ LiteBeam 5AC Gen2 (or PowerBeam) | $220 β $380 |
| Local omni mesh AP | UniFi Mesh UAP-AC-M | $100 |
| LoRa backup | 2Γ Meshtastic node | $70 |
| Ethernet switch + cabling | Outdoor 8-port PoE, pigtails, enclosures | $150 |
| Camera for parallax | 1Γ PTZ + 1Γ forward fixed IR | $260 |
| Compute (Jetson / RPi5 class) | Already in your navigation stack | β |
| Walkway-pivot servo add-on | Optional β only if hard-linked pair | $β |
| Total per seastead | β $1,080 β $1,240 | |
Across a 100-unit convoy that is ~$110k of networking hardware total β less than the cost of one marine-grade radar.
8. Recommendations & Next Steps
- Pick the grid spacing first. 50 m is the sweet spot: tight enough for strong Bragg wave attenuation and comfortable walkways, loose enough that parallax baselines give good target ranges, wakes don't cross-interfere, and each seastead has its own "clear water" view of the four neighbors.
- Standardize on 4Γ LiteBeam 5AC + 1Γ UniFi Mesh + 2Γ LoRa per unit as the baseline communications bill of materials. Build the directional links into the roof-edge track so the kite-flying carriage doesn't occlude them.
- Software stack: RTKLIB (moving-base) + MQTT + B.A.T.M.A.N.-adv + PTP + a small CRDT library (e.g. Automerge) for shared state. Keep the formation controller as an isolated service with a clean gRPC boundary so you can A/B PID vs. MPC.
- Simulate before sailing. Use a potential-flow / panel-method model of an NΓN foil array (WAMIT, or an open-source BEM for water waves) to confirm the Bragg dip at Ξ» β 2D for your exact foil geometry. This will also tell you the ideal D per sea state β the convoy can dynamically re-space if it expects a long swell tomorrow.
- Start with 4 units in a 2Γ2 on a sheltered bay: validate RTK, mesh, and walkway stabilization before the larger convoy. You get the most valuable test data for the cost of four boats.
- Hex grid (optional upgrade): if ocean-swell is mostly from one quadrant, a hex-packed convoy gives more uniform attenuation in all directions and slightly less total drag β worth investigating once you have real wave data from the first convoy.