⬡ HORNETSENTINEL

Sovereign RF Direction Finding & Triangulation

RF C2-System zur Echtzeit-Ortung von Signalquellen mit KrakenSDR-Hardware.
Betrieb auf eigener Infrastruktur — oder als gehostetes Portal. Vollständig autark.

KrakenSDRDOA / TDOALeaflet.js PostgreSQLDockerVPN-agnostic
Hornet Sentinel — Simulation Mode

Simulationsmodus — DOA-Linien, oranges Fehlerpolygon (Einzelbild), grünes Prognosepolygon (kumuliert)

Hornet Sentinel v1.5 – Funktionsübersicht

Zentrales Lagezentrum & Kartenverwaltung

🗺️

Geoinformations-System

Einbindung offizieller Schweizer Kartendienste (Swisstopo, SwissImage, Orthofoto) für präzise räumliche Orientierung — ergänzt durch Dark- und Light-Basiskarten.

🌗

Dark- & Light-Modus

Vollständiger Dark- und Light-Modus für optimale Ablesbarkeit bei unterschiedlichen Lichtverhältnissen im Feld.

🌐

Mehrsprachigkeit

Vollständige Unterstützung in Deutsch, Englisch und Französisch (DE / EN / FR). Sprachpräferenz wird lokal gespeichert.

Sensor-Management & Signalerfassung

📡

Fernverwaltung der Stationen

Zentrale Steuerung und Überwachung entfernter Messeinheiten inklusive Betriebszustand, Live-Peildaten und Hardware-Telemetrie.

🎯

Präzisions-Peilverfahren

Implementierung verschiedener mathematischer Verfahren zur genauen Richtungsbestimmung (u.a. MUSIC, Bartlett, Capon). Triangulation aus mehreren Stationen mit Konfidenz-gewichtetem Schätzwert.

📶

Mehrkanal-Überwachung

Gleichzeitige Erfassung mehrerer Frequenzen zur Beobachtung komplexer Signalsituationen. Farbcodierung pro Frequenzquelle für schnelle visuelle Zuordnung.

🧭

Referenz-Kalibrierung

Werkzeuge zum Abgleich von Messpunkten über einen bekannten Referenzsender. Korrekturen werden rückwirkend auf alle historischen Daten angewendet.

Einsatzplanung & Analyse

📊

Telemetrie- & Signalanalyse

Live-Visualisierung von Signalstärken, Pegel und Qualitätskennwerten zur Identifikation und Bewertung der erfassten Sender.

Kampagnen-Planung

Integriertes Modul zur Vorhersage der Funkreichweite, Simulation von Umgebungsverlusten und Optimierung der Stationsplatzierung im Gelände — ohne Datenbankschreibzugriff.

🕐

Verlaufs-Dokumentation

Auswertung vergangener Zeiträume zur Rekonstruktion von Signalbewegungen und Trends. Flexible Zeitfensterauswahl (1/5/15/30 Min. oder benutzerdefinierter Bereich).

🔥

Wahrscheinlichkeits-Karten

Visualisierung von Aufenthaltsbereichen durch die Kombination mehrerer Peilvektoren. Heatmap zeigt Signalquell-Schwerpunkte auch bei verrauschten Einzelmessungen.

Konnektivität & System-Sicherheit

🔐

Gesicherte Datenübertragung

Unterstützung für verschlüsselte Verbindungen (HTTPS/TLS) und geschützte Netzwerk-Overlays. Rollenbasiertes Zugriffsmanagement (Admin / Operator / Viewer).

⚙️

Effiziente Bereitstellung

Schnelle Fern-Installation und Aktualisierung der Sensor-Software auf den Zielgeräten — direkt aus dem Portal per SSH, ohne manuellen Zugriff vor Ort.

📱

Mobile Nutzung

Optimierte Ansicht für den taktischen Zugriff über Smartphones und Tablets direkt vor Ort. Responsive Toolbar, Off-Canvas-Panel, vollbildfähiges Konfigurationsmenü.

Simulationsmodus

Verstecktes Planungswerkzeug — keine Datenbankschreibzugriffe, rein frontend-seitig. Aktivierung: dreifacher Klick auf das Logo (Desktop) oder ⬡-Schaltfläche (mobil).

TX Power 0.1 nW – 50 W Unit selector: nW / µW / mW / W. 0 = unknown (no range constraint). When set, stations beyond FSPL range drop out automatically.
Environment 0 – 40 dB Additional propagation loss: Freifeld / Offenes Gelände / Suburban / Urban+Wald / Dicht bebaut
Noise 0 – 30° DOA angular error. 5–10° = realistic field, 15–25° = heavy multipath / forest.
Trails 0 – 12 Number of simulated measurement rounds shown as transparent trail lines.
Animate 200 – 2000 ms Continuous re-render with new random noise — lines and polygon wander to visualise measurement uncertainty. Heatmap and GDOP quality badge update live during animation.
Route ≥ 2 waypoints · 1 – 500 km/h Define a multi-point route: move the target marker to each position and click +Pkt. The marker follows the route at the given speed when animation runs. Undo removes the last waypoint. Total route length is shown on the map.

Physics Model

FSPL = 32.44 + 20·log₁₀(d_km) + 20·log₁₀(f_MHz) [dB, free space] P_rx = TX_dBm − FSPL − env_loss_dB RX threshold: −110 dBm (detection) / −100 dBm (DOA-quality, SNR ≥ 10 dB) Example — 100 mW (+20 dBm) TX at 148.537 MHz: Free field (+0 dB loss) → ~40 km range Suburban (+20 dB loss) → ~4 km range Urban/Forest (+30 dB loss) → ~1.3 km range

Link Budget — 148.537 MHz, KrakenSDR, free-space (FSPL only)

TX PowerdBmMax. range (detect −110 dBm)DOA-quality (−100 dBm)
0.1 nW−70 dBm~9 mno
1 nW−60 dBm~50 mno
10 nW−50 dBm~90 mno
100 nW−40 dBm~160 mmarginal
1 µW−30 dBm~280 myes (~90 m)
10 µW−20 dBm~500 myes (~160 m)
100 µW−10 dBm~900 myes (~280 m)
1 mW0 dBm~2.5 kmyes (~800 m)
10 mW+10 dBm~4.5 kmyes (~1.5 km)
100 mW+20 dBm~8 kmyes (~2.5 km)

Environment loss (suburban +20 dB, urban/forest +30 dB) divides range by ~10–30×. Full table: docs/link-budget-148mhz.md in the rfmap repo.

Route Simulation — Moving Target

Plan transmitter movement before a field deployment — especially useful with only 2 stations to find paths with acceptable GDOP throughout.

Workflow: 1. Place target marker at start position → click +Pkt 2. Move marker to next point (bend, road junction) → click +Pkt 3. Repeat for every waypoint — any number supported 4. Set speed (km/h) and enable Animate → marker travels along the route, predict polygon accumulates On the map: Green circle = waypoint 1 (start) Yellow circles = intermediate waypoints (numbered) Red circle = last waypoint (end) White dashed line + ∑ distance label connects all points ↩ removes last waypoint · ✕ clears entire route

GDOP Geometry

GDOP (Geometric Dilution of Precision): lower value = better geometry. Score 100% = ideal angular spread between stations.

Ideal cut angle = 180° / N stations N=2 → 90° N=3 → 120° N=4 → 45° (semicircle) Position error ≈ distance × tan(noise_angle) 500 m @ 5° noise → ~44 m error 2 km @ 5° noise → ~175 m error 5 km @ 10° noise → ~882 m error

Funktionsreferenz

Vollständige Referenz aller Steuerelemente, Ebenen, Modi und Interaktionen.

Map Layers
LayerWhat it shows
DOA LinesDirection-of-arrival rays from each station. Dashed, colour-coded per station. Length auto-scales 30% past the farthest intersection.
IntersectionsCrossing points of DOA line pairs — each is a position estimate. Confidence-weighted centroid + orange error polygon shown when ≥ 3 crossings.
HeatmapKernel-density map of intersection points. Reveals dwell areas even when individual crossings are noisy.
TrailFaint historical DOA lines for the current time window — shows how bearings evolved.
DistancesLabelled lines between all station pairs (m / km). Useful for tactical spacing and baseline planning.
Toolbar Controls
ControlValues / RangeEffect
Max Distance10 – 1,000,000 mMaximum DOA line length drawn on map.
ModeLive / HistoryLive: auto-refresh every 4 s. History: manual date/time range query.
Time Window (Live)10 s – 120 minHow far back live data is fetched.
Frequency FilterAll / 148.537 / 446.094 / CustomShow only reports on the selected frequency.
Map StyleDark · Light · Ortho · Swisstopo · SwissImageBackground tile layer. All cached locally for offline use.
LanguageDE / EN / FRUI language. Applied immediately via i18n attribute system.
⚙ Alle StationenOpen global config modal — pushes settings to all stations at once.
⊕ KalibrierenEnter calibration mode (see Calibration section).
✥ VerschiebenMake station markers draggable to correct GPS position.
⬡ (mobile)Toggle simulation mode — alternative to triple-click logo.
Simulation Controls (complete)

Activate: triple-click the logo (desktop) or tap ⬡ (mobile). No database writes — purely frontend.

ControlRange / ValuesEffect
TX Power0.1 nW – 50 W (nW / µW / mW / W)Transmitter output. 0 = unknown — no range circle, stations always visible.
Environment LossFreifeld 0 dB · Offenes Gelände +10 dB · Suburban +20 dB · Urban/Wald +30 dB · Dicht bebaut +40 dBExtra propagation loss added to FSPL. Stations beyond resulting range drop out.
Noise0 – 30°Angular DOA error per measurement. 5–10° = realistic field. 15–25° = heavy multipath.
Trails0 – 12Extra simulated rounds drawn as faint trail lines behind main DOA rays.
Animate200 – 2000 ms / frameContinuous re-render with fresh random noise. Predict polygon accumulates over frames.
+PktAdd current target marker position as next route waypoint.
Remove last waypoint.
Speed1 – 500 km/hTarget speed along route during animation.
✕ (route)Clear entire route.
OptimierungcheckboxShow GDOP quality badge + optimal station position suggestions + range circle.
✕ BeendenExit simulation mode, return to live view.
Simulation VisualDescription
Orange error polygonUncertainty area for the current frame — shrinks with better geometry / lower noise.
Green predict polygonAccumulated centroid history (8–25 frames rolling window). Fades in after 8 frames, persists after animation stops.
GDOP badgeGut ≥ 75% · Mittel ≥ 45% · Schlecht < 45%. Updated every frame during animation.
Orange range circleMaximum detection radius based on TX power + FSPL + environment loss.
Cyan dashed circleOptimal station deployment radius for best GDOP.
Ghost markers (OPT 1…N)Suggested optimal station positions for the current target location.
Route lineWhite dashed polyline through all waypoints with ∑ distance label.
Heatmap (sim)Built once when animation starts — shows intersection density at target position.
Station Management
ActionHowEffect
Add station+ button in station listRegister a new station by ID (and optional display name).
Delete station✕ on station cardRemove station and all its data permanently.
Start / Stop DOA▶ / ■ on station cardSend start/stop command to the KrakenSDR service on the station Pi.
Status⟳ on station cardPoll current DOA service status.
Reboot / Power offButtons on station cardRemote reboot or shutdown of station hardware.
Enable / Disable● / ○ toggle on station cardExclude station from live DOA, triangulation and simulation without deleting it.
Position override✥ Verschieben → drag markerManually correct station GPS coordinates. Map updates immediately. 📍✕ button clears the override.
Click station namePanel → station listCenter map on that station's position.
Station Config Modal
ParameterRange / OptionsDescription
RECEIVER
Frequency1 – 6000 MHzCentre frequency for KrakenSDR. Entered in MHz (e.g. 148.537).
Gain0 – 49.6 dB (29 steps)RF front-end gain. Default 43.9 dB for 200 µW wildlife telemetry tags.
Sample Rate1.024 / 1.536 / 2.048 / 2.4 / 2.88 / 3.2 MHzADC sample rate — determines usable bandwidth.
DOA
MethodMUSIC · Bartlett · Capon · MEM · ROOT-MUSICDOA algorithm. MUSIC default — best resolution.
Array TypeUCA · ULACircular or linear antenna arrangement.
Antenna Spacing0.1 – 2.0 λElement spacing in wavelengths.
Elements2 – 8Number of antenna elements.
Expected Sources1 – 10Expected number of simultaneous RF sources.
Azimuth Correction–180° – +180°Manual bearing offset to correct array orientation.
FILTER & TIMING
Squelch–120 – 0 dBmMinimum signal level to report a bearing.
VFO Bandwidth1 kHz – 2.4 MHzWidth of the virtual receiver window around centre frequency.
Update Interval100 – 10,000 msHow often the station sends new bearing data.
Burst Modeon / offOnly transmit when signal detected — saves bandwidth for pulsed transmitters (e.g. 20 ms VHF telemetry tags). Default on.
TEMPLATE
⭐ Als StandardSave current config as default template for new stations (excluding station IP). New stations auto-load this template when their config modal is first opened.
NETWORK / SSH
Position Overridelat / lonManual GPS coordinates if station has no GPS fix.
ZeroTier / VPN IP172.x.x.xStation network address for API and SSH access.
API KeystringAuthentication token for inbound bearing reports.
SSH User / PasswordstringCredentials for script deployment via SSH.
DOA Service Namedefault: krakensdr_doasystemd service name controlled by start/stop commands.
Frequency Advisor

Built into the station config modal. Visualises the sampling band and detects known interferers.

InterfererFrequency Range
CH Pager (Swisscom)147.3 – 147.7 MHz
TETRA / BOS380 – 400 MHz
FM Broadcast87.5 – 108 MHz
PMR446446.0 – 446.2 MHz

Auto-fix: selects the smallest compatible sample rate that keeps all detected interferers outside the sampling band. For CH 148.537 MHz → sample rate ≤ 1.024 MHz excludes CH pager band.

Azimuth Calibration
Workflow: 1. Place a known transmitter at a fixed position 2. Click ⊕ Kalibrieren → calibration panel appears 3. Drag the calibration marker to the known TX position on the map 4. Panel shows: Station · Expected bearing · Measured bearing · Delta · Proposed correction 5. Review per-station deltas 6. Click "Korrekturen übernehmen" → corrections saved server-side → applied retroactively to all historical data at query time

Correction is a bearing offset (°) applied at query time — no reprocessing of raw data needed. Per-station, survives restarts.

Interactions & Shortcuts
InteractionEffect
Triple-click logoToggle simulation mode
Click intersection markerCenter map on that intersection
Click station name (panel)Center map on that station
Click DOA lineShow bearing report popup (station, bearing, confidence, timestamp)
Click intersection pointShow popup with lat/lon and contributing station pair
Drag station marker(Move mode active) Override station GPS position
Drag sim target markerReposition simulated transmitter, clears predict polygon
☰ (mobile)Open/close side panel
Station Colours & Constants
Station slotColour
1#58a6ff — Blue
2#f78166 — Red-orange
3#3fb950 — Green
4#d2a8ff — Purple
5#ffa657 — Orange-gold
ConstantValueDescription
Live refresh4 sAuto-refresh interval in live mode
Station timeout120 sStation shown as offline after no report for 2 min
Accum min8 framesFrames before predict polygon appears
Accum window25 framesRolling centroid history for predict polygon
RX threshold (detect)−110 dBmMinimum received power to register a bearing
RX threshold (DOA quality)−100 dBmMinimum for SNR ≥ 10 dB (reliable DOA)

Systemarchitektur

Hornet Sentinel folgt einer dezentralen Edge-Computing-Philosophie — die Signalverarbeitung findet auf dem Sensor statt, nur kompakte Peilungsvektoren erreichen das Portal. Der Kanal ist bidirektional: Konfigurationsänderungen und Steuerbefehle werden vom Portal zurück an den Edge-Node gepusht. Das Backend läuft On-Premise oder als gehosteter Dienst — gleiche Codebasis, freie Wahl.

graph LR subgraph FIELD["Edge Node (KrakenSDR + RPi)"] ANT[5-Element Antenna] -->|IQ stream| SDR(KrakenSDR DSP) SDR -->|MUSIC / FFT| VEC[/Bearing Vector/] GPS[GPS + Compass] --> VEC end subgraph VPN["🔒 ZeroTier VPN-Tunnel"] V(( )) end subgraph INET["🌐 Internet — kein VPN"] I(( )) end subgraph PORTAL["Portal — Docker"] WS["WSS :2096\nTLS via Nginx"] HTTP["HTTP :8080\nplain"] API[Node.js API] DB[(PostgreSQL)] G[Web Portal] WS --> API HTTP --> API API <--> DB G <--> API end VEC -->|"ws_mode=zt\nWSS + VPN"| V --> WS VEC -->|"ws_mode=off\nHTTP plain"| V --> HTTP VEC -->|"ws_mode=internet\nWSS only"| I --> WS WS -->|"Config-Push sofort"| V --> SDR HTTP -.->|"SSH/SFTP + Restart"| V -.-> SDR SDR -->|"Health 15 s"| V --> API style SDR fill:#f96,stroke:#333,stroke-width:2px style G fill:#2ecc71,stroke:#333,stroke-width:2px style WS fill:#1a3a5c,stroke:#3498db,stroke-width:2px style HTTP fill:#3a2a1a,stroke:#e07050,stroke-width:1px,stroke-dasharray:4 style V fill:#1e3a1e,stroke:#3fb950,stroke-width:2px style I fill:#2a2a1a,stroke:#ffa657,stroke-width:1px style API fill:#2ecc71,stroke:#333,stroke-width:1px

Kommunikationspfade — Sicherheit je nach Konfiguration

Szenariows_modeNetzwerkUplinkDownlinkVerschlüsselung
VPN + WebSocket zt ZeroTier VPN WSS :2096 Config-Push WS — sofort 🔒🔒 VPN-Tunnel und TLS
Internet + WebSocket internet Öffentliches Internet WSS :2096 Config-Push WS — sofort 🔒 TLS (Nginx terminiert)
VPN + HTTP off (Standard) ZeroTier VPN HTTP :8080 /save.php SSH/SFTP + Neustart 🔒 VPN-Tunnel — kein TLS
KrakenSDR-Firmware akzeptiert kein self-signed Cert
Internet + HTTP off Öffentliches Internet HTTP :8080 SSH/SFTP ❌ unverschlüsselt — nicht empfohlen

Deployment Scenarios

ScenarioInfrastructureAdvantages
On-Premise Local server or VM — your hardware, your network Full data sovereignty · No external dependency · Works air-gapped · No subscription
Cloud-Hosted Any Linux VPS with Docker No hardware to maintain · Accessible from anywhere · Instant setup · Scales with demand
Tactical / Mobile KrakenSDR + RPi, local hotspot only Fully offline · Single operator · Direct field use

The portal is currently available as a hosted service — self-hosting via Docker Compose is supported with the same feature set.

Why Edge Processing?

Raw IQ stream → ~50–200 MB/s (unusable over LTE) Bearing vector → ~0.5 KB/report (trivial over LTE / satellite) KrakenSDR Pi processes locally: 1. FFT — frequency domain conversion 2. MUSIC algorithm — direction-of-arrival estimation 3. GPS timestamp + heading fusion → POST /save.php {station_id, lat, lon, doa_angle, confidence, ...}

Schnellstart

1

Clone & Configure

cp .env.example .env # Set DB_PASSWORD and API_KEYS in .env
2

SSL Certificate

mkdir ssl openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout ssl/key.pem -out ssl/cert.pem -subj "/CN=rfmap"
3

Start Services

docker compose up -d --build # HTTPS: https://<server-ip>:8443 # HTTP: http://<server-ip>:8080
4

KrakenSDR Station

# In portal: Settings → Enter IP, SSH creds, API key → Deploy Script # In KrakenSDR software set Output URL: http://<server-ip>:8080/save.php?api_key=<key>

Architecture

KrakenSDR Pi (mobile) ├── GPS + Compass → absolute bearing ├── POST /save.php → Portal (HTTP, VPN tunnel) └── krakensdrd_config_sync.py (polls for config changes) Portal (Docker) ├── Node.js (Express) — REST API ├── PostgreSQL + PostGIS — data storage ├── Nginx — HTTPS :8443 / HTTP :8080 └── Static frontend — Leaflet.js, dark theme

The system is VPN-agnostic — ZeroTier is used in the reference setup but any overlay network (WireGuard, OpenVPN, IPsec) works equally well.

API-Referenz

Rate limiting: POST /api/auth/login is limited to 10 attempts per IP per 15 minutes. Exceeding the limit returns HTTP 429.

MethodPathAuthDescription
POST/save.php?api_key=KrakenSDR report (form-encoded, RDF Mapper compatible)
POST/api/reportX-Api-KeyKrakenSDR report (JSON)
GET/api/liveRecent DOA reports + computed intersections
GET/api/historyHistorical DOA reports by time range
GET/api/heatmapIntersection heatmap points
GET/api/stationsStation list with last position
POST/api/stationsX-Api-KeyRegister new station
GET/api/station/:id/configStation config (polled by Pi)
PUT/api/station/:id/configX-Api-KeySave station config
PUT/api/stations/configX-Api-KeyPush config to all stations
POST/api/station/:id/deployX-Api-KeySSH-deploy config sync script
POST/api/station/:id/controlX-Api-KeyStart / stop / status / restart DOA process
POST/api/stations/restart-allX-Api-KeyRestart all stations in parallel via SSH
DELETE/api/station/:idX-Api-KeyDelete station + all data
PATCH/api/station/:id/enabledX-Api-Key / SessionEnable or disable a station
POST/api/station/:id/healthX-Api-KeyReport per-channel antenna health (CH0–CH4)
POST/api/auth/loginLogin (username + password → session cookie)
POST/api/auth/logoutSessionInvalidate session
GET/api/auth/meSessionCurrent user info (id, username, role)
GET/api/admin/usersadminList all users
POST/api/admin/usersadminCreate user (username, password, role)
DELETE/api/admin/users/:idadminDelete user

FAQ

Warum ändert das Fehlerpolygon seine Grösse, wenn ich das Ziel verschiebe?

Zwei geometrische Effekte: Schnittwinkel (GDOP) — nahezu parallele Linien erzeugen einen riesigen, instabilen Schnittpunkt. Und Distanz — gleicher Winkelfehler bei 5 km = 5× grösserer Positionsfehler als bei 1 km. Optimal: Stationen umgeben das Ziel mit ~60–90° Schnittwinkeln.

Warum verschwindet eine Station in der Simulation?

Das FSPL-Modell berechnet die empfangene Leistung. Sinkt sie unter −110 dBm (KrakenSDR-Empfindlichkeit), «hört» die Station nichts. TX-Leistung erhöhen, Umgebungsverlust reduzieren oder Station näher ans Ziel setzen.

Was bedeutet TX-Leistung = 0?

TX = 0 bedeutet «unbekannt». Der GDOP-Optimierer läuft ohne Reichweitenbeschränkung (kein oranger Reichweitenkreis). Die Simulation selbst verwendet intern 1000 mW, damit Stationen sichtbar bleiben.

Was macht der Frequenzberater?

Er prüft, ob bekannte Störer (CH Pager 147.3–147.7 MHz, TETRA, BOS, FM) ins Abtastband fallen. Dann empfiehlt er die kleinste KrakenSDR-kompatible Abtastrate, die alle erkannten Störer ausschliesst. Für CH 148.537 MHz: Abtastrate ≤ 1.024 MHz hält CH-Pager ausserhalb des Bandes.

Funktioniert das System offline?

Ja. Alle Kartenkacheln werden lokal zwischengespeichert (/app/tile-cache/). Das System ist für den Betrieb ohne Internetverbindung ausgelegt.

Wie viele Stationen werden empfohlen?

Minimum 2 (1 Schnittpunkt). Optimal 3 (3 Schnittpunkte, Fehlerdreieck sichtbar). Ideal 4+ (6+ Schnittpunkte, robust auch bei Ausfall einer Station).

Wie funktioniert die Azimuth-Kalibrierung?

Einen Testsender an bekannter Position aufstellen, den Kalibrierungsmarker dorthin ziehen und «Korrekturen übernehmen» klicken. Die Korrektur wird serverseitig zur Abfragezeit angewendet — behebt rückwirkend alle historischen Daten ohne Neuverarbeitung.

Wie hilft die Routen-Simulation bei 2-Stationen-Geometrie?

Mit nur 2 Stationen erhält man einen einzigen Peilungsschnittpunkt. Der Schnittwinkel variiert stark je nach Zielposition relativ zur Basislinie. Mit der Routen-Simulation Senderpfade abgehen und das GDOP-Qualitätsabzeichen live beobachten — Grün = gute Geometrie, Rot = tote Zone. Den Pfad wählen, der das Abzeichen am längsten grün hält.

Empfohlene Parameter für 148-MHz-Wildtier-Telemetrie (200 µW, 20 ms Puls)?

Diese Standardwerte sind für VHF-Telemetrie-Tags (Hornissen, Vögel, Kleinsäuger) vorkonfiguriert:

ParameterValueReason
Frequency148.537 MHzStandard CH wildlife telemetry band
Gain43.9 dB200 µW = −37 dBm — maximum gain needed
Squelch−70 dBmTrigger on pulse, reject noise floor
VFO Bandwidth6250 HzNarrow channel — better SNR
Burst ModeonProcess only during 20 ms pulse, not silence
Update Interval500 msPulse rate ~60 BPM = 1 pulse/s, 500 ms margin
Sample Rate1.024 MHzExcludes CH Pager band (147.3–147.5 MHz)

Mit 3 Stationen: Ortungsgenauigkeit < 15 m im offenen Gelände.

Welche Benutzerrollen gibt es?

admin — Vollzugriff inklusive Benutzerverwaltung unter /admin.
operator — alle Stationssteuerungen (Konfiguration, Deploy, Start/Stop, Aktivierung). Keine Benutzerverwaltung.
viewer — Nur-Lese-Zugriff auf das Portal. Alle Schreibvorgänge serverseitig blockiert.
Standardanmeldedaten beim ersten Start: admin / admin — sofort über /admin ändern.

Mobile Sensor-Integration: Android SDR-App

Proprietäre Android-Applikation als mobiler Sensor-Knoten — ergänzt die stationären KrakenSDR-Einheiten im Nahbereich («die letzte Meile») und ermöglicht eine dynamische, kooperative Suche direkt im Gelände.

HornetSentinel Android App

Technische Systemarchitektur (Sensor-Fusion)

📻

Hardware-Interface (SDR)

Über USB-OTG steuert die App ein kompaktes SDR-Frontend an. Der HF-Datenstrom der Ziel-Telemetrie wird in Echtzeit verarbeitet und die aktuelle Signalstärke (RSSI) berechnet.

🛰️

Daten-Korrelation (GNSS + IMU)

Funkparameter werden synchron mit internen Smartphone-Sensoren verknüpft: GNSS (GPS) für hochpräzise Standortbestimmung des Operators und IMU (Magnetometer + Gyro) für den exakten Heading der Richtantenne.

☁️

Zentrales Datenmanagement

Aggregierte Datensätze (Position, Richtung, Signalstärke) werden verschlüsselt via REST-Webservice an das Analyse-Portal übermittelt und in die Echtzeit-Lagedarstellung integriert.

Funktionsweise & Netzwerkintegration

🎧

Interaktive Peilung

Intuitive Visualisierung der Signalstärke grafisch und akustisch (RSSI-Ton mit variabler Tonhöhe). Unterstützt den Anwender bei der manuellen Richtungsbestimmung im Gelände — auch ohne Blick aufs Display.

🔥

Dynamische Heatmap-Fusion

Im zentralen Portal werden die Vektoren der mobilen Einheiten mit den stationären KrakenSDR-Nodes fusioniert. Ergebnis: eine Echtzeit-Lagedarstellung, die den Suchradius für Einsatzkräfte massiv eingrenzt.

🔒

Proprietär & Urheberrechtlich geschützt

Die App ist proprietäres Eigentum von Patrick Hak / hak-digital.ch. Der Quellcode ist privat. Eine Vervielfältigung, Dekompilierung oder Nutzung ohne ausdrückliche schriftliche Genehmigung ist untersagt.

Technische Spezifikationen

KomponenteDetails
Hardware-InterfaceUSB-OTG → RTL-SDR (RTL2832U + R820T)
IQ-Verarbeitung1.024 MHz Abtastrate → 128× Decimation → 8 kHz Audio
DemodulationDSB (Hüllkurve) / CW (BFO 700 Hz + IIR-Bandpass)
SquelchAudio-RSSI, ±1 / ±5 dBFS Schritte, Auto-Set
RSSI-Ton300–1200 Hz proportional zu Signalstärke (hands-free DF)
PositionierungGNSS (GPS) + IMU Sensor-Fusion
DatenübertragungREST-API → Portal (HTTPS)
Copyright© 2026 Patrick Hak / hak-digital.ch — All rights reserved