OCEANPULSE

Observation Center

Port of Sagres, Portugal

Transport: LoRa
MAIN LINK last · avg
HEALTH LINK (H + P) last · avg
SYSTEM A: MISSION STATUS
ID: MAIN-01
Conductivity (EC)

--.-

μS/cm
Dissolved O₂

--.-

mg/L
Water Temp

--.-

°C (DO probe)
UV Lighting (Relay)
OFF
EC History
DO History
Water Temp History
SYSTEM B: HEALTH
  • Sensor 1 --.-°C / --%
  • Sensor 2 --.-°C / --%
  • Sensor 3 --.-°C / --%
  • Sensor 4 --.-°C / --%
  • Sensor 5 --.-°C / --%
  • Uptime --
  • CPU Load N/A
POWER (Solar + Battery) --
  • Battery --.-- V  ·  --.-%
  • SmartShunt SOC drifted from voltage estimate by -- pts — needs re-sync (full-charge or manual sync in VictronConnect)
  • Battery Net --.-- A  ·  -- W
  • Solar --.- V  ·  -- W
  • → Battery --.-- A
  • → LOAD output --.-- A
  • → Direct loads -- W
  • MPPT error
  • Last update: never
EVENT LOG
> System Initialized...
> Connecting to Telemetry Stream...
Transport: LoRa
RADIO SIGNAL ANALYSIS
LQI: 100%
RSSI

--- dBm

SNR

--- dB

Latency (RTT)

--- ms

IDLE
MODEM CONFIGURATION
LINK TESTS
Stress Test Progress 0/10
---
Transport: LoRa

Community OceanPulse Panel

Open ocean monitoring for Sagres and the Algarve coast

Water Temp

--

Salinity

--

PSU
Dissolved O2

--

mg/L
Oil Status

CLEAR

Buoy Status

WATER TEMPERATURE
Awaiting data...
SALINITY
Awaiting data...
DISSOLVED OXYGEN
Sensor deploying soon (Atlas EZO-DO)
OIL PRESENCE
No detection data yet
OIL SPILL DETECTION
UV Contour

No Oil Detected

Last UV scan data will appear here
Spill Regions 0
Frame Coverage 0%
Fluorescent Pixels 0
Detection Score 0 / 100
Last Capture --
ABOUT THIS PROJECT

OceanPulse is an open ocean monitoring platform being built for deployment at the Port of Sagres, Portugal. The system will monitor water quality, detect environmental anomalies including oil spills, and provide real-time data to the community.

You're seeing live data from a lab prototype — sensors and UV oil detection running on the bench, connected to a water reservoir. Governed by the ADT Framework for full transparency and accountability.

Phase 1: Water quality sensors + LoRa telemetry + vision camera + UV oil detection. Target: Port deployment 2026.

PANEL ACTIVITY LOG
0 entries
TIMESTAMP IP USER ROLE ACTION DETAIL
Click refresh or switch to this tab to load
Transport: 4G
ANALYSIS FEED (SYSTEM A)
OFFLINE

AWAITING SNAPSHOT

Updates every 10s from System A analysis pipeline

SAFETY MONITOR CLEAR
AWAITING SAFETY FEED
DISTANCE

--

cm
PIR MOTION

--

HC-SR501
Min Safe Distance 150 cm
Clear Hysteresis 30 cm
PIR Clear Delay 5 s
DETECTION TUNING
Brightness Threshold 80
Lower = more sensitive (catches dim fluorescence). Higher = stricter (only bright spots).
Saturation Threshold 50
Filters white reflections vs colored fluorescence. Lower = more false positives.
Min Region Size (px) 50
Ignores blobs smaller than this. Higher = less noise, may miss small spills.
Score Sensitivity 2000
Multiplier: higher = more sensitive scoring. 2000 means 5% coverage = score 100.
UV Warmup (seconds) 8.0
Seconds to wait after UV ON before capturing. Longer = brighter, steadier lamp.
Morph Kernel
Capture Samples
OIL DETECTION ALERTS 0 ALERTS
LATEST DETECTION FRAME
NO ALERTS DETECTED
DETECTION SCORE: 0.0
DETECTION LOG (LAST 10)
No historical detection data
Transport: LoRa
POWER HISTORY
Loading…
Battery Voltage
State of Charge
Solar Panel — Volts & Watts
Battery Current (signed)
Battery Power (signed)
MPPT Currents — Charge & LOAD
Charge State (timeline)
Errors & Direct Loads
Transport: 4G
EC / Salinity — Atlas EZO-EC CAL: ?

Conductivity probe calibration. Follow the steps in order — Dry first, then Low, then High. The probe should sit in each standard solution for 1–2 minutes before issuing the command. Rinse with deionised water between Low and High standards.

Live EC: -- µS/cm
Live SAL: -- PSU
Step 1 — Dry calibration

Probe must be completely dry, out of any liquid. Required first; sets the open-circuit baseline.

Step 2 — Low point

Submerge probe in 12,880 µS/cm calibration standard. Wait ~1 min for the live reading to stabilise.

µS/cm
Step 3 — High point

Rinse probe with deionised water first. Then submerge in 80,000 µS/cm standard. Wait ~1 min.

µS/cm
Step 4 — Enable salinity output

Adds the S field (PSU 0–42) to the probe's reading. EZO output stays the same otherwise.

Step 5 — Verify & tools
EC console
> Ready. Pick a step above.
Dissolved Oxygen — DFRobot optical (Modbus RTU) DO: ?

Two-point fluorescence-quenching probe. Calibration writes to register 0x1010 (NVM-persistent). The protocol exposes salinity (0x1020) and atmospheric pressure (0x1022) so the sensor can compensate its mg/L output. Always remove the black rubber protective cover before measuring.

DO saturation: -- %
DO concentration: -- mg/L
Water temp: -- °C
Step 1 — 100 % saturation

Pick whichever of the three is easiest. All three produce the same saturated-air environment the optical probe needs. Writes 0x0002 → 0x1010.

  • Field method (deployed buoy): lift the probe out of the ocean until the optical face is 1–5 cm above the water surface. Shake off droplets. The air above the sea is naturally water-saturated and at exact sea-level atmospheric pressure — these are the canonical conditions.
  • Bucket method (lab quick): half-fill a jar with tap water, hold probe ~1 cm above the surface inside the jar with a loose lid. Wait ~5 min for the headspace to equilibrate.
  • Datasheet method (lab strict): aerate distilled water for 1 hour with an air pump, sit 30 min, hold probe ~1 cm above. Most accurate but slow.

Wait for the live DO saturation reading above to stabilise (1–2 min) at a value near 100 %, then press the button.

Step 2 — Zero point

Prepare zero-oxygen solution: 5 g anhydrous Na₂SO₃ + 95 g distilled water, let sit 1 hour. Submerge probe, stir gently, wait for reading to drop and stabilise (1–2 min). Writes 0x0001 → 0x1010.

Salinity compensation (register 0x1020)

Set the salinity the probe should assume when converting sat % → mg/L. Default 30 ‰ for seawater; set to 0 for fresh-water lab work.

Atmospheric pressure (register 0x1022)

Stored as kPa × 100. Sea-level default = 10133 (101.33 kPa). Adjust for altitude or local barometric reading.

kPa×100
Diagnostics

Baud index: 0=2400, 1=4800 (default), 2=9600, 3=19200, 4=38400, 5=57600, 6=115200.

DO console
> Ready. Remove rubber cover before measuring.
Transport: 4G
DEBUG / PIN TOGGLE — bench testing only (no safety guards)
UV Relay (Main Mega · Pin 4)
Last reply:
(none)
LORA REMOTE SHELL (SPEC-026)
Command History & Output:
(none)
Whitelist: nmcli, ip addr, ip route, ping -c, systemctl * oceanpulse, reboot, uptime, free -m, df -h, lsusb, tail -n 5 *.log
SYSTEM OPERATIONS & DEBUG MANUAL