Skip to content

System Overview

SmartPot consists of three communicating units connected by a wired tether (submerged unit to buoy) and LoRa radio (buoy to base station).

A waterproofed ESP32-P4 module (Waveshare P4-NANO) inside the crab pot. It runs a YOLO-class object detection model (ESP-DL, quantized INT8) trained to detect species and measure size via bounding box analysis.

Key capabilities:

  • IR-illuminated camera for zero-visibility bottom imaging
  • On-device species detection and direct size measurement via pinhole camera model
  • Servo-driven door latch — lock to retain keepers, unlock to release bycatch
  • Hardwired tether to the surface buoy for data and power

When a catch event is detected, the camera classifies it and signals up the tether to the smart buoy. Bycatch and undersized animals can be released autonomously, in real time, at depth. On-demand images can be requested via the CAPTURE command and delivered progressively over LoRa — see Image Transfer Protocol.

A Heltec Wireless Tracker (ESP32-S3 + SX1262 LoRa + dual-frequency L1/L5 GNSS) in a sealed buoy enclosure. It serves as the communications relay between the submerged unit and the base station.

Key capabilities:

  • Receives status from the submerged unit via wired tether
  • Logs GPS position (dual-frequency for sub-meter accuracy)
  • Transmits telemetry over LoRa at several miles of range
  • Solar panel and wave-energy harvesting for indefinite power
  • Sleep current of 15uA — idles for days between events on a small battery

A matching Heltec Tracker on the boat or at the dock. It receives telemetry and sends commands back to individual traps.

Key capabilities:

  • Live map of every pot in the string with real-time status
  • Per-pot display: keeper count, bycatch count, door state, battery level, water temperature, GPS coordinates, drift alerts
  • Bidirectional encrypted command protocol (see Command Protocol)
  • Harvest intelligence — tidal phase alerts, soak time awareness, and pull priority ranking — is provided via the deck tablet app, with tidal data from the mcnoaa-tides companion MCP server
flowchart TD
    subgraph base["Base Station (Heltec Tracker)"]
        B_DISP["OLED Display"]
        B_CMD["Command Interface"]
        B_LORA["SX1262 LoRa Radio"]
    end

    subgraph buoy["Smart Buoy (Heltec Tracker)"]
        BY_LORA["SX1262 LoRa Radio"]
        BY_GPS["L76K GNSS"]
        BY_PWR["Solar + Battery"]
        BY_UART["Tether UART"]
    end

    subgraph trap["Submerged Trap Unit (ESP32-P4)"]
        T_CAM["OV5647 NoIR Camera + IR"]
        T_ML["ESP-DL Detection"]
        T_SERVO["Door Servo"]
        T_UART["Tether UART"]
    end

    B_LORA <-->|"LoRa 915MHz\n3-8 miles"| BY_LORA
    BY_UART <-->|"SLIP over UART\n24V PoE tether\n10-20m"| T_UART
    T_CAM --> T_ML
    T_ML --> T_SERVO

    style base fill:#e6f3f0,stroke:#2d7d6f
    style buoy fill:#e8f0f5,stroke:#3a6d8c
    style trap fill:#f0f4f8,stroke:#4a6785

The submerged unit handles all vision and mechanical operations. The smart buoy handles positioning and long-range comms. The base station is the operator’s interface. Each layer does one job well.