Base Station
The base station is the operator’s interface to the SmartPot fleet. It receives telemetry from all deployed smart buoys and sends commands back to individual traps.
Core Hardware
Section titled “Core Hardware”Same as the smart buoy: Heltec Wireless Tracker v1.1 (ESP32-S3 + SX1262 + GNSS).
The base station firmware differs — it runs the fleet management interface rather than the buoy relay firmware.
Display Options
Section titled “Display Options”Built-in OLED (0.96”)
Section titled “Built-in OLED (0.96”)”- Single-pot status view (cycle through pots with buttons)
- Summary stats: total pots, keepers, alerts
- Compact for handheld/pocket use
External TFT (2.4” ILI9341, optional)
Section titled “External TFT (2.4” ILI9341, optional)”- Fleet map view with pot positions
- Color-coded status indicators
- Touch input for command selection
Deck Tablet (Future Phase)
Section titled “Deck Tablet (Future Phase)”- BLE connection from base station to ruggedized waterproof tablet
- Full fleet dashboard with maps, sunlight-readable
- Command interface with confirmation dialogs (glove-compatible touch)
- Harvest intelligence alerts: tidal window + soak time + pull priority
Fleet Management
Section titled “Fleet Management”The base station maintains a local database (NVS) of all registered pots:
| Field | Type | Description |
|---|---|---|
pot_id | uint16 | Unique identifier |
aes_key | 16 bytes | Per-pot encryption key |
deploy_lat | int32 | Deployment latitude (1e-7 deg) |
deploy_lon | int32 | Deployment longitude (1e-7 deg) |
last_seen | uint32 | Unix timestamp of last telemetry |
keeper_total | uint16 | Cumulative keeper count |
status | uint8 | Current pot status flags |
Command Interface
Section titled “Command Interface”The operator can send any command from the Command Protocol to any pot in the fleet. Critical commands (SURFACE, LOCK_DOOR, UNLOCK_DOOR) require confirmation:
- Operator selects pot and command
- Base station displays confirmation prompt
- Operator confirms
- Command is sent with AES-CMAC authentication
- Base station waits for ACK (up to 10s, 3 retries)
- Result displayed to operator
Tidal Awareness
Section titled “Tidal Awareness”Crabbing in river mouths and estuaries is tide-driven — crabs are most active during incoming (flood) tide, with catch rates dropping roughly an hour after high tide. SmartPot provides tide-aware alerts so the operator can time pulls to the productive window instead of guessing.
Architecture
Section titled “Architecture”Tide and soak logic runs entirely on the deck tablet app, not on the ESP32 firmware. The base station’s role is limited to relaying telemetry via BLE to the tablet — the base station hardware has no harvest intelligence of its own.
The data flow:
- Tablet GPS fix — the app reads the operator’s current position (or the centroid of deployed pot positions)
- Station lookup — the app queries the NOAA CO-OPS Tides & Currents API for the nearest active reference station
- Prediction fetch — the app requests tide predictions (high/low times and heights) for the next 48 hours from that station
- Window computation — flood and ebb windows are derived from the prediction data, adjusted for any known time offset between the reference station and the actual fishing area
- Alert generation — the app compares the current time and incoming telemetry against the computed tidal windows and fires alerts
NOAA CO-OPS API Integration
Section titled “NOAA CO-OPS API Integration”The tablet app uses two primary NOAA CO-OPS endpoints:
Station discovery — find the nearest reference station to the operator’s GPS position:
GET https://api.tidesandcurrents.noaa.gov/mdapi/prod/webapi/stations.json ?type=tidepredictions &units=englishThe app filters the returned station list by distance from the tablet’s GPS coordinates and selects the closest active station.
Tide predictions — fetch high/low predictions for a given station:
GET https://api.tidesandcurrents.noaa.gov/api/prod/datagetter ?station=8638863 &product=predictions &datum=MLLW &units=english &time_zone=lst_lke &interval=hilo &begin_date=20250601 &end_date=20250602 &format=json &application=SmartPotCompanion Tool: mcnoaa-tides MCP Server
Section titled “Companion Tool: mcnoaa-tides MCP Server”The mcnoaa-tides MCP server is a standalone companion tool for working with NOAA CO-OPS tide data outside the SmartPot deck tablet app. It wraps the same NOAA API endpoints and is built for desktop-side analysis, fleet planning, and development workflows. It is not a runtime dependency of the SmartPot system — the tablet app handles all tide queries at runtime — but it provides the tooling for tidal analysis during development and post-hoc catch correlation.
SmartPot-specific tools:
| Tool | Description |
|---|---|
tidal_phase | Classify current tidal phase (flood, ebb, slack high, slack low) at a station |
deployment_briefing | Generate a full tidal briefing for a deployment window — optimal set/pull times, productive windows, risk factors |
catch_tidal_context | Correlate catch event timestamps with tidal phase for post-hoc analysis |
water_level_anomaly | Detect anomalous water levels (storm surge, wind-driven deviation) vs. predicted tide |
Installation:
claude mcp add mcnoaa-tides -- uvx mcnoaa-tidesThe server also provides SmartPot-specific prompts — smartpot_deployment for deployment planning and crab_pot_analysis for catch-tidal correlation analysis.
See the full Tools Reference for all 13 tools, 4 prompts, and 3 resources.
Alert Table
Section titled “Alert Table”| Alert | Trigger | Action |
|---|---|---|
| Flood starting | Incoming tide detected at deployment location | Notify: productive window opening |
| Window closing | ~1 hour after local high tide | Notify: catch rates declining, consider pulling |
| Pot full | Keeper count hits operator-defined threshold | Notify: pot ready for recovery |
| Idle pot | No catch events for configurable duration | Notify: consider repositioning |
| Safe to soak | Pot GPS stable, no drift, good battery | Confirm: safe to leave for next tidal cycle |
Because SmartPot pots are GPS-tracked and ropeless, leaving them across tidal cycles is low-risk — the system knows where every pot is and can surface any of them on demand. The operator pulls when the pot is full, not when they’re afraid of losing it.
Post-Hoc Tidal Correlation
Section titled “Post-Hoc Tidal Correlation”Every catch event in the telemetry log carries a Unix timestamp. After a fishing session (or over a full season), these timestamps can be correlated with historical tidal phase data from NOAA to build a picture of catch rates relative to the tidal cycle at each deployment location. This is where the real operational value accumulates — over time, the operator learns which spots produce during which phase of the tide, turning anecdotal knowledge into verifiable data.
Soak Time Awareness
Section titled “Soak Time Awareness”Beyond tidal timing, SmartPot tracks soak-related metrics to prevent catch quality degradation. These metrics are computed on the deck tablet from telemetry data and the CATCH_EVENT log — they are not transmitted over LoRa or computed on the ESP32 firmware.
For the biological basis behind these metrics, see Soak Time Biology.
Metrics
Section titled “Metrics”| Metric | Source | Description |
|---|---|---|
| Guest duration | CATCH_EVENT timestamps | Time since oldest crab entered the pot. Computed from the earliest uncleared catch event. |
| Catch rate | CATCH_EVENT frequency | Events per hour, rolling window. Proxy for bait effectiveness. |
| Idle time | CATCH_EVENT gap | Time since last catch event while pot contains catch. Indicates bait exhaustion. |
| Soak age | Deployment timestamp | Total time since pot was deployed or last reset. |
| Water temperature | Telemetry water_temp field | Modulates all degradation rates — warmer water accelerates bait decay, stress, and cannibalism. |
Alerts
Section titled “Alerts”| Alert | Default Threshold | Trigger |
|---|---|---|
| Long guest | 6 hours (configurable) | Oldest crab has been in the pot longer than threshold |
| Bait exhausted | 2 hours idle with catch (configurable) | No new catch events while pot contains keepers |
| Max soak | 24 hours (configurable per jurisdiction) | Total soak time exceeds regulatory or operator-set limit |
| Temperature stress | 28C for blue crab (species-configurable) | Water temperature exceeds species-specific stress threshold |
| Priority pull | Computed | Pot ranks in bottom quartile of soak quality across fleet |
Soak Quality Score
Section titled “Soak Quality Score”A composite 0–100 metric computed per pot that decays from 100 based on:
- Guest duration — the longer the oldest guest, the faster the decay
- Water temperature — warm water accelerates the decay rate
- Catch rate trend — zero catch rate with crabs present accelerates decay (bait exhausted)
The score gives the operator a single number: is this pot still producing value? Combined with keeper count, the tablet can rank every pot in the fleet by pull priority — answering “which pot should I pull next?” with data instead of habit.
- USB-C powered when on the boat (12V→5V adapter from boat electrical)
- 3.7V 3000mAh LiPo for portable use (~12 hours active, days in standby)
Antenna
Section titled “Antenna”- External 915/868 MHz antenna (SMA, 3dBi whip or 6dBi directional)
- Higher-gain directional antenna recommended for extended range to offshore pots
- Magnetic mount for boat-top installation