# ilopezaguirre/m.o.l.e.s-multi-observation-link-for-entrapped-survivors- architecture

> Architecture diagram of the GitHub repository ilopezaguirre/m.o.l.e.s-multi-observation-link-for-entrapped-survivors-, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ilopezaguirre/m.o.l.e.s-multi-observation-link-for-entrapped-survivors-
- Repository: https://github.com/ilopezaguirre/m.o.l.e.s-multi-observation-link-for-entrapped-survivors-

## Overview

UWB Rubble Mesh is a prototype for sensing breathing motion through rubble using bistatic UWB channel-impulse-response (CIR) measurements. Its documented workflow is: radio pods collect CIR data, a scheduled host emits reports over serial, a laptop reader parses them, and signal processing selects taps and looks for breathing-rate peaks with FFTs; plots support evaluation. The README also describes captured runs and a puck-enclosure generator. Paths and relationships below follow the README layout and documented behavior; implementation source was not included in the supplied tree, so call-level wiring is not inferred.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_radio["Radio sensing"]
  node_pods["UWB pods"]
end

subgraph group_acquisition["Host acquisition"]
  node_host["Slot scheduler"]
  node_serial_stream["CSV serial stream"]
  node_reader["Serial reader"]
end

subgraph group_analysis["Signal analysis"]
  node_tap_selection["Tap selection"]
  node_mean_removal["Mean removal"]
  node_fft["Breathing FFT"]
end

subgraph group_evaluation["Evaluation tools"]
  node_plots["Evaluation charts"]
  node_captured_runs[("Captured runs")]
  node_puck_generator["Puck generator"]
end

node_trapped_person(("Breathing motion"))

node_trapped_person -->|"modulates CIR"| node_pods
node_pods -->|"reports CIR"| node_host
node_host -->|"emits CSV"| node_serial_stream
node_serial_stream -->|"reads serial"| node_reader
node_reader -->|"parsed reports"| node_tap_selection
node_tap_selection -->|"selects taps"| node_mean_removal
node_mean_removal -->|"removes mean"| node_fft
node_fft -->|"plots spectrum"| node_plots
node_captured_runs -.->|"supports comparison"| node_plots

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_pods toneBlue
class node_host,node_serial_stream,node_reader toneAmber
class node_tap_selection,node_mean_removal,node_fft toneMint
class node_plots,node_captured_runs,node_puck_generator toneRose
class node_trapped_person toneIndigo
```

## Components

### Radio sensing

- **UWB pods**

### Host acquisition

- **Slot scheduler**
- **CSV serial stream**
- **Serial reader**

### Signal analysis

- **Tap selection**
- **Mean removal**
- **Breathing FFT**

### Evaluation tools

- **Evaluation charts**
- **Captured runs**
- **Puck generator**

### Other components

- **Breathing motion**

## Connections

- Breathing motion → UWB pods: modulates CIR
- UWB pods → Slot scheduler: reports CIR
- Slot scheduler → CSV serial stream: emits CSV
- CSV serial stream → Serial reader: reads serial
- Serial reader → Tap selection: parsed reports
- Tap selection → Mean removal: selects taps
- Mean removal → Breathing FFT: removes mean
- Breathing FFT → Evaluation charts: plots spectrum
- Captured runs → Evaluation charts: supports comparison
