Submerged Unit
The submerged unit lives inside the crab pot, handling all vision, classification, and door control operations.
Core Hardware
Section titled “Core Hardware”Microcontroller: ESP32-CAM (Ai-Thinker module)
- Espressif ESP32-S (dual-core 240MHz, 520KB SRAM)
- OV2640 camera (2MP, 1600×1200 max)
- MicroSD card slot (used for model storage and image logging)
- 4MB flash + 4MB PSRAM
Vision Pipeline
Section titled “Vision Pipeline”- Trigger: Motion detected via frame differencing (camera captures at 1 fps idle)
- Capture: Full-resolution frame with IR illumination
- Classify: TFLite Micro inference (quantized MobileNet v2, INT8)
- Input: 96×96 RGB (downscaled from capture)
- Output: species class + confidence score
- Inference time: ~300ms on ESP32
- Measure: Size estimation from known camera-to-subject distance
- Decide: Compare species + size against keeper thresholds
- Act: Lock door (keeper) or unlock door (release bycatch)
- Report: Send
CATCH_EVENTup the tether to the smart buoy
IR Illumination
Section titled “IR Illumination”- Wavelength: 850nm (invisible to crabs, effective underwater)
- Array: 3–5 IR LEDs, forward-facing
- Power: Pulsed only during capture (100ms pulse, ~500mA peak draw)
- Range: Effective at 30–50cm (typical pot interior dimensions)
Door Mechanism
Section titled “Door Mechanism”- Actuator: MG90S metal gear micro servo (stall torque 1.8kg·cm)
- Mechanism: Cam-locked sliding bolt
- States: Locked (retain catch), Unlocked (release)
- Feedback: Position sensor confirms door state
- Failsafe: Door defaults to unlocked on power loss (releases all catch rather than trapping indefinitely)
Tether Interface
Section titled “Tether Interface”The submerged unit connects to the smart buoy via a 4-conductor shielded cable:
| Wire | Function |
|---|---|
| Red | V+ (24V from buoy boost converter) |
| Black | GND (power return) |
| Yellow | UART TX (submerged -> buoy) |
| White | UART RX (buoy -> submerged) |
The submerged unit includes an MP1584 buck converter stepping 24V tether power down to 5V, plus a 3.3V LDO for the ESP32. This PoE approach reduces voltage drop over 10-20m cable lengths from ~0.85V (at 5V/500mA) to ~0.18V (at 24V/104mA), providing clean power at any practical tether length.
- Baud rate: 115200
- Protocol: SLIP-framed packets (same format as LoRa packets, minus encryption)
- Cable length: 10–20m depending on deployment depth
Power Budget
Section titled “Power Budget”| State | Current Draw | Duration |
|---|---|---|
| Deep sleep | 10µA | Most of the time |
| Idle monitoring (1 fps) | 80mA | ~200ms per second |
| IR capture + inference | 350mA | ~500ms per event |
| Servo actuation | 500mA | ~1s per event |
All power is supplied as 24V PoE via tether, stepped down locally. The submerged unit has no local battery.