MARSAD-1 مرصد

Team Kanban · SatForge UAE 2026 · Harmful Algal Bloom Watch

UTC --:--:--
Time warp

Live status

Nominal Warning Critical Stale / no data Invalid value

Alarms

    Alarm history

      Fault injection — test the alarms

      Faults act on the simulated spacecraft, not on the display: the ground segment only sees the packets that result, exactly as it would in orbit.

      Latest readings

      —

      Live orbit & ground track

      SIMULATED
      Satellite Ground station mask (10°) Imaging target (UAE waters) Next orbit

      Spacecraft state

      Latitude
      —
      Longitude
      —
      Altitude
      550 km
      Velocity
      7.59 km/s
      Illumination
      —
      GS elevation
      —
      Orbit #
      —
      Next UAE pass
      —

      Subsystems

        Event log

          Battery state of charge

          %

          Power: generated vs consumed

          W

          Temperatures

          °C

          Onboard storage used

          MB

          Bloom watch — chlorophyll-a (NDCI) map

          DEMO DATA

          Coastal asset alerts

          Alerts trigger when mapped chl-a within 15 km of an asset exceeds 10 mg/m³ (watch) or 20 mg/m³ (warning). Values shown are a seeded demo field until MARSAD-1 prototype imagery is processed.

          AssetPeak chl-aStatus

          How detection works

          1. AS7341 samples water-leaving light at 445–680 nm + NIR during the 10-min nadir window.
          2. ESP32-S3 computes NDCI = (R708 − R665) / (R708 + R665) onboard.
          3. Pixels above threshold are tagged; a compact alert packet goes down over LoRa at the next UAE pass.
          4. Full OV5640 images are stored and downlinked selectively for confirmation.

          Concept of operations — one 95-minute orbit

          Power by subsystem

          mW

          Energy per orbit by mode

          mWh

          Mass by subsystem

          g

          Cost by subsystem

          AED

          Margins

          Bill of materials

          Telemetry data contract

          v1 · JSON lines · 1 Hz · 115200 baud

          Every packet is one JSON object per line. The same format comes from the simulator, the Tinkercad sketch and the ESP32-S3 flight firmware, so the dashboard never needs to know which one it is talking to. Fields marked required must be in every packet; optional fields show No data until they arrive.

          Example packet

          
                  

          Ground rules

          • A field is stale 3 s after its last update; its tile turns grey and its chart line breaks.
          • No packet for 3 s → link STALE; for 10 s → link LOST (critical alarm).
          • Values outside the sensor's physical range, or of the wrong type, are shown as INVALID and never plotted.
          • Lines that are not valid JSON are counted as rejected and logged.
          • Alarms latch with a UTC timestamp, stay in the history when they clear, and can be acknowledged.

          Mission statement

          Team Kanban

            Tinkercad circuit

            Arduino stand-in of the flight computer: TMP36 (A0), sun sensor (A1), battery-voltage pot (A3), heater/imaging/downlink LEDs (D13/D7/D4) and antenna-deployment servo (D9). Open the circuit in Tinkercad →

            Prototype link

            Flash firmware/marsad_telemetry/marsad_telemetry.ino to the ESP32-S3 prototype, plug it in over USB and press Connect prototype. The dashboard switches from simulated to live telemetry (Web Serial, Chrome/Edge).