User Guide · v2.2.0
ETR-NodeScope

Cross-platform Dante and wireless channel monitoring for professional live events. Real-time RF, battery, audio level, and fault intelligence — all in one dark-themed operational interface.

Windows · macOS · Linux WebUI Remote Wireless receiver integration MQTT · OSC · ASIO
Section 01

OVERVIEW

ETR-NodeScope is a professional wireless microphone monitoring application that aggregates Dante network channels, wireless receiver telemetry, and audio meters into a single operational dashboard.

📡

Real-Time Channel Grid

Up to 32 channels displayed as live tiles. Each tile shows RF signal, battery, audio level, mute state, and fault status simultaneously.

🔋

Smart Alerts Engine

Predictive battery depletion, RF trend analysis, audio dropouts, and mute alerts — fires warnings before problems become show-stopping faults.

🎤

Mic Check Workflow

Structured pre-show channel verification with OK / Watch / Fault states, engineer and venue metadata, timestamped log, and exportable PDF report.

🌐

WebUI Remote Access

Built-in HTTP + WebSocket server. Any tablet or phone on the same network can monitor channels and manage talent profiles via a browser.

👤

Talent Profiles

Assign named performers with photos, roles, priority levels, and per-talent alert thresholds to individual channels.

📤

MQTT Telemetry

Publishes channel, device, alert, and system state to any MQTT broker — enabling integration with control surfaces, dashboards, and automation systems.

Supported Hardware

ManufacturerProduct RangeProtocolPort
Wirelesssupported digital wireless receiversTCP text protocol2202
Wirelessdigital wireless receiver seriesHTTPS REST443
Wirelessreceiver series receiversTCP32789
Section 02

INSTALLATION

ETR-NodeScope is built on .NET 8 and Avalonia, making it natively cross-platform. The same codebase runs on Windows, macOS, and Linux.

Prerequisites

Build from Source

# Restore NuGet packages
dotnet restore ETR-NodeScope.sln

# Run tests
dotnet test ETR-NodeScope.sln -c Debug

# Build release binary
dotnet build ETR-NodeScope.sln -c Release

# Run directly (development)
dotnet run --project ETR-NodeScope.Desktop

Windows Packaged Release

powershell -ExecutionPolicy Bypass -File .\build.ps1 `
  -Target Windows -Configuration Release -Clean -Zip

Linux Systemd Service (Appliance)

For rack-mounted or headless appliance deployments, a systemd service unit is included:

sudo cp deploy/appliance/etr-nodescope-appliance.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable etr-nodescope-appliance
sudo systemctl start etr-nodescope-appliance
⚠ Windows WebUI Binding If you enable remote WebUI access on Windows (binding to all interfaces), you may need to register a URL ACL or run the initial setup as Administrator. Local-only access (default) requires no elevation.
Section 03

QUICK START

Get monitoring in under two minutes — even without physical hardware, using Demo Mode.

Demo Mode (No Hardware Required)

1
Launch ETR-NodeScope

The app opens to the main channel grid. Status bar will read "Ready" in grey.

2
Enable Demo Mode

Go to Actions → Toggle Demo Mode. The status bar changes to "DEMO MODE" in amber. Simulated Wireless and Wireless devices populate the Devices panel.

3
Select Demo Audio Device

Open the output device dropdown in the toolbar and choose the Demo audio generator.

4
Start Services

Press Ctrl+S or Actions → Start Services. Channels animate with simulated RF, battery, and audio data.

Real Hardware Mode

1
Configure Your Receivers

Open File → Settings, go to Wireless Devices, and add each receiver's IP address and label. Or enable Auto-Discovery to let ETR-NodeScope scan the network automatically.

2
Select Audio Output

Choose your Dante Virtual Soundcard channel or ASIO interface from the output device picker in the main toolbar.

3
Start Services

Ctrl+S. The app connects to all configured receivers, populates the channel grid, and begins polling telemetry.

4
Validate Hardware

Verify RF levels, battery readings, and audio meters match your receiver front panels before relying on the system live.

Section 04

MAIN WINDOW

The main window is a 1400×850 (minimum 900×600) operational dashboard divided into four zones.

File Actions Mic Check Talent Help Running 12:34:05 Demo Connected Devices ULXD4Q-A 192.168.1.42 4 channels active digital wireless receiver EM 4 192.168.1.55 4 channels active Discovery enabled CHANNEL GRID PRESENTER CH 1 / wireless receiver Wireless RF-A RF-B AUDIO -18 dB BAT 82% OK PANEL A CH 2 / wireless receiver Wireless RF WATCH BAT 24% WATCH PANEL B CH 3 / wireless receiver RF FAULT No usable receiver signal BAT 12% HOST CH 4 / digital wireless receiver MUTED BAT 91% Alerts 3 FAULT CH3 RF lost 12:33:51 WARNING CH2 battery 24% 12:31:22 Running Devices: 2 Channels: 8 Faults: 1 Demo Mode
FIG 1 — Main window layout showing Devices Panel (left), Channel Grid (centre), and Alerts Panel (right)

Menu Bar

MenuKey Items
FileSettings, Import Dante Preset (.xml), Save/Load Show Preset, View Logs, Live Logs, Create Support Bundle, Exit
ActionsStart / Stop Services, Refresh, Clear Alerts, Toggle Demo Mode, Toggle WebUI Server
Mic CheckToggle Mic Check Mode, Reset All Checks, Export Report
TalentManage Profiles
HelpUser Guide, About, Release Readiness Check, Create Support Bundle

Status Bar

The bottom bar always shows: connection state indicator (coloured dot), running status, connected device count, active channel count, fault count, and current time. In Demo Mode, an amber "Demo" badge appears on the right.

Section 05

CHANNEL TILES

Each channel is represented by a compact landscape tile. Tiles form a scrollable grid and update in real time as telemetry arrives from connected receivers.

PRESENTER Ch 1 · wireless receiver SHR RF-A RF-B AUDIO -18 dB BATTERY 80% ✓ OK Tx: SKM9000 Display name + subtitle Connection dot + manufacturer RF-A / RF-B signal bars Audio level meter + peak hold Battery % bar Mic Check state badge
FIG 2 — Channel tile anatomy with all active indicators

Border Colour States

Border ColourMeaning
GreenChannel is active, connected, and operating within all thresholds
AmberWarning condition — low battery, marginal RF, or audio anomaly detected by Smart Alerts
Red (pulsing)Fault — RF loss, critically low battery, audio dropout, or device disconnection
Grey / dimChannel inactive or no signal. Wireless channels in idle state are automatically suppressed.

Right-Click Context Menu

Right-clicking any tile opens a context menu with the following actions:

💡 Talent Photo Background When a talent profile with a photo is assigned, the performer's image appears as a subtle background in the tile, making it easy to identify channels at a glance across a busy monitor screen.
Section 06

DEVICES PANEL

The collapsible left panel lists all discovered and connected wireless receivers with their IP addresses, channel counts, and real-time connection status.

When collapsed, the panel shrinks to a 32 px vertical tab showing "RF DEVICES" and a green badge with the connected device count — preserving maximum screen space for the channel grid during a show.

Click the tab or press the expand button to reveal the full panel. Each device entry shows the device name, IP address, channel info, and a Flash Front button to physically identify the unit on the rack.

Device Status Indicators

StatusIndicatorDescription
Connected●Polling telemetry and receiving live data
Reconnecting●Connection was lost; retry in progress
Disconnected●Cannot reach device. Check IP and network.
Section 07

ALERTS PANEL

The collapsible right panel provides a live, timestamped log of all system alerts. Alerts are raised by the Smart Alerts Engine and cleared automatically when conditions resolve.

Like the Devices Panel, the Alerts Panel can be collapsed to a tab showing the current unread alert count badge. This is useful when a dedicated second monitor is being used for alerts.

The Alerts Panel Window (File → Live Alerts, or from the main toolbar) opens a detachable floating version that can be placed on a second display.

Alert Severity Levels

LevelColourTypical Triggers
FAULT / ERRORRed borderRF signal loss, critically low battery (<15%), device disconnected
WARNINGAmber borderBattery below warning threshold, RF degradation trend, audio dropout detected
INFOBlue borderDevice connected, services started, preset loaded

Each alert card shows: severity label, channel and talent name, a descriptive message, and the timestamp. Smart Alerts are automatically removed when the triggering condition clears (e.g. battery is swapped and rises above threshold).

Use Actions → Clear Alerts or the Clear All button in the Alerts Panel to manually dismiss all current alerts.

Section 08

MIC CHECK MODE

Mic Check Mode is a structured pre-show workflow for verifying every channel before the doors open. It maintains a timestamped pass/fail log and generates a printable report.

MIC MIC CHECK MODE Checked: 6/16 Space=cycle 1=OK 2=Watch 3=Fault F6=exit Exit Mic Check
FIG 3 — Mic Check Mode banner (amber strip below menu bar) showing progress and keyboard shortcuts

Activating Mic Check Mode

Press F6 or go to Mic Check → Toggle Mic Check Mode. The amber banner appears below the menu bar showing real-time progress.

Channel States

StateKeyColourMeaning
Unchecked—GreyNot yet verified for this show
OK1Green badgeChannel passed — good RF, battery, and audio
Watch2Amber badgeMarginal — acceptable but monitor closely
Fault3Red badgeProblem found — do not use without fixing

Keyboard Workflow

During Mic Check Mode, the focus channel advances through the grid. Use these keys to move and mark:

SpaceQuick Check / advance to next channel
1Mark focused channel OK
2Mark focused channel Watch
3Mark focused channel Fault
EscExit Mic Check Mode
F6Toggle Mic Check Mode

Exporting a Report

Go to Mic Check → Export Report…. The report includes show name, venue, engineer name, date/time, and the full per-channel check log with timestamps. Fill in the show metadata (optional) in the report dialog before exporting.

Resetting Checks

Mic Check → Reset All Checks clears all channel states back to Unchecked. Use this at the start of each day or show call.

Section 09

TALENT PROFILES

Talent Profiles attach performer identities to channels, enabling photo display, named alerts, and per-performer threshold customisation.

Talent Manager Talent Profiles + Add New Talent Sarah Johnson Lead Presenter Ch: 1 Marcus Webb Panel Guest Ch: 2 Priya Narayan Moderator Ch: 3 Profile Details Profile Photo: No photo Browse… Name: Sarah Johnson Role: Lead Presenter Priority: Lead ▾ Battery Warn: 30% Save Delete
FIG 4 — Talent Manager window (Talent → Manage Profiles)

Profile Fields

FieldDescription
NamePerformer's display name, shown on the channel tile and in alerts
RoleRole descriptor (e.g. "Host", "Panellist", "RF Pack") — shown as tile subtitle
Profile PhotoJPEG/PNG — cropped to square on import. Displayed as tile background.
PriorityLead · Important · Standard · Support · Background — affects tile border weight and alert escalation
Battery Warning %Per-talent override for the battery low alert threshold (default: 30%)
Battery Critical %Per-talent override for the battery critical alert threshold (default: 15%)
RF Warning dBmPer-talent RF signal threshold (default: -85 dBm)
Predictive AlertsEnable/disable trend-based predictive warnings for this talent

Assigning a Profile to a Channel

Right-click a channel tile and choose Assign Talent…, or use the Talent Selector dialog. You can also assign via the WebUI's Talent panel.

💡 Tip — Lead Priority Channels Set your principal presenter or headline act to Lead priority. Their tile receives a thicker, brighter border and their alerts are escalated to FAULT severity instead of WARNING, ensuring they're never missed in a busy alert list.
Section 10

SHOW PRESETS

Show Presets snapshot the entire current channel layout, talent assignments, and channel names — enabling instant recall between show days or setlists.

Use File → Save Show Preset to write the current state to disk. File → Load Last Show Preset restores the most recently saved snapshot.

Presets are stored in the application data directory (%APPDATA%\ETR-NodeScope\ on Windows, ~/.config/ETR-NodeScope/ on Linux/macOS).

Dante Controller Preset Import

ETR-NodeScope can import channel name mappings from an exported Dante Controller XML preset. Go to File → Import Dante Controller Preset (.xml)… and select your .xml file. Channel names are read from the preset and applied to the corresponding grid positions. Use File → Reapply Dante Preset Mapping to re-run the import without re-selecting the file.

ℹ Note The Dante preset import reads label mappings only — it does not modify routing. Your Dante network routing remains under the control of Dante Controller.
Section 11

WEBUI REMOTE ACCESS

The built-in HTTP/WebSocket server lets you monitor channels and manage talent from any browser on the same network — a tablet at FOH, a phone in the wings, or a monitor backstage.

ETR-NodeScope WebUI v18 Channels Talent Connected Status Running Devices 2 Faults 1 Start Stop Refresh CH 1 · PRESENTER RF-A ████░ RF-B ████░ 🔋 80% · -18dB CH 2 · PANEL A RF-A ██░░░ 🔋 24% — LOW CH 3 · PANEL B ⚡ RF FAULT 🔋 12% — CRIT CH 4 · HOST 🔋 91% · -21dB CH 5 CH 6 Alerts Talent FAULT CH3 RF Lost 12:33:51 WARN CH2 Batt 24% 12:31:22
FIG 5 — WebUI v18 in a browser, accessed at http://localhost:8080

Enabling the WebUI

Go to Actions → Toggle WebUI Server. When running, the WebUI URL appears in the status bar (e.g. http://localhost:8080). The URL is also shown in Settings.

Remote Access from Tablets / Phones

By default the WebUI is bound to localhost only. To allow access from other devices on the network:

  1. Open File → Settings → WebUI Settings.
  2. Change the WebUI Bind Address in appsettings.yaml from localhost to 0.0.0.0 (all interfaces) or a specific IP.
  3. Ensure allowRemoteClients: true in config.
  4. Restart services. Connect from any browser using http://<machine-ip>:8080.
⚠ Security Binding to all interfaces on an open venue network is acceptable for a trusted LAN, but always set a sharedSecret in the security config if remote commands are enabled. Never expose the WebUI port to the public internet.

Audio Streaming in the Browser

The WebUI streams PCM-16LE audio over WebSocket, decoded by the browser's AudioContext. Click a channel in the WebUI to begin monitoring it through the browser's audio output. The /api/audio-transport endpoint reports the active transport mode. WebRTC/Opus is an experimental scaffold — not enabled in the default build.

WebUI Features

Section 12

SETTINGS

Open with File → Settings or Ctrl+,. Changes are applied immediately to the running session and persisted to the config file.

Audio Settings

SettingDefaultDescription
Default Buffer Size512 samplesASIO/BASS buffer depth. Smaller = lower latency, higher CPU.
Audio Update Rate30 FPSHow often audio meters refresh in the UI.
Enable ASIO Direct MonitoringOffWindows only — routes ASIO channels directly to monitor output via NAudio.

Display Settings

SettingDefaultDescription
Default Channel Count8Number of channel tiles shown at startup (4–32).
Start with Devices Panel CollapsedOffHides the left panel on launch for maximum grid space.
Start with Alerts Panel CollapsedOffHides the right panel on launch.
Show Battery Warnings Below 20%OnGlobal enable/disable for low-battery alerts.

WebUI Settings

SettingDefaultDescription
WebUI Port8080TCP port for the HTTP and WebSocket server.
Auto-start WebUI ServerOffStart the WebUI automatically when services start.

Auto-Discovery

SettingDefaultDescription
Enable auto-discovery on StartOnScans the local network for Wireless and Wireless devices on service start.
Subnet scanOffActively probes TCP 2202 (Wireless) and 443 (Wireless) on all hosts in the local /24. Slower but finds devices not responding to mDNS.
mDNS / Bonjour passive queryOnPassive mDNS-style discovery — fast but requires devices to advertise.
Rescan interval (seconds)30How frequently the discovery service rescans for new devices (10–300 s).
Section 13

DEVICE SETUP

Manual device entries always take priority over auto-discovery. Add each receiver once; ETR-NodeScope reconnects automatically on every service start.

Adding a Wireless Device

1
Open Settings → Wireless Devices

Scroll to the "Wireless Devices (TCP port 2202)" section.

2
Enter IP address and Label

Type the receiver's IP (e.g. 192.168.1.42) and a descriptive label (e.g. "Stage Left Rack"). Select channel count (4 or 8).

3
Click Add

The device appears in the list. Click Save. ETR-NodeScope will connect on next service start or immediately if services are already running.

Adding a Wireless Device

Same process — scroll to the "Wireless Devices (HTTPS port 443)" section. Additional fields:

Wireless Devices

Wireless receiver receivers are added the same way but use TCP port 32789. Subnet scan also probes this port when enabled.

⚠ Subnet Scan Warning On networks larger than /24, subnet scanning is capped at 254 hosts. On complex venue networks, prefer explicit device entries to avoid unnecessary probe traffic.
Section 14

MQTT TELEMETRY

ETR-NodeScope publishes real-time channel, device, alert, and system state to any MQTT broker, enabling integration with control surfaces, venue automation, or custom dashboards.

Enabling MQTT

Edit config/appsettings.yaml (or the in-app Settings panel) and set:

mqtt:
  enabled: true
  host: 192.168.1.10   # your broker IP
  port: 1883
  clientId: etr-nodescope
  topicRoot: etr
  username: ""
  password: ""
  retainMessages: true

Topic Structure

Topic PatternPayload TypeDescription
etr/<node>/channel/<id>ChannelStateDtoPer-channel RF, battery, audio, mute, fault state
etr/<node>/device/<id>DeviceStateDtoDevice name, IP, connection status
etr/<node>/alert/<id>AlertStateDtoAlert severity, message, channel reference
etr/<node>/system/statusSystemStateDtoOverall running state, counts
etr/<node>/health/<service>ServiceHealthDtoIndividual service health (discovery, audio, webUI…)

All messages are wrapped in an EnvelopeDto with a type field for easy routing. Messages are published at QoS 1 with retain=true.

Section 15

OSC INTEGRATION

ETR-NodeScope includes an OSC service for integration with lighting consoles, show control systems, and third-party monitoring tools.

The OSC service listens on a configurable UDP port and can send channel state updates as OSC messages. This is useful for triggering light cues on battery or RF alerts, or feeding data to a mixing console's OSC surface.

OSC configuration is set programmatically or via the config file. Refer to ETR-NodeScope.Core/Services/OscService.cs for message address patterns and payload formats.

Section 16

KEYBOARD SHORTCUTS

ETR-NodeScope is designed for fast operation with one hand on the keyboard during a show. All critical actions have direct key bindings.

Global Shortcuts

Ctrl+SStart Services
Ctrl+TStop Services
F5Refresh device list
F6Toggle Mic Check Mode

Mic Check Mode Shortcuts

SpaceQuick Check — cycle to next channel
1Mark focused channel OK
2Mark focused channel Watch
3Mark focused channel Fault
EscExit Mic Check Mode
F6Exit Mic Check Mode
Section 17

SMART ALERTS ENGINE

The Smart Alerts Engine monitors channel telemetry trends and raises predictive warnings before problems become critical. Alerts fire automatically and clear automatically when conditions resolve.

Alert Types

Alert TypeTrigger ConditionDefault Threshold
Battery CriticalBattery % falls below critical threshold15% (per-talent configurable)
Battery WarningBattery % falls below warning threshold30% (per-talent configurable)
Battery Depletion TrendPredictive — battery drain rate suggests <30 min remainingEnabled by default for Lead/Important talent
RF WarningRF signal falls below warning level-85 dBm (per-talent configurable)
RF FaultRF signal lost (no signal / dropout)Immediate on loss
Audio DropoutProgramme audio seen, then level falls below silence threshold for sustained period-40 dBu silence / -30 dBu programme seen
Mute ActiveTransmitter is muted during programme audio periodAlert on mute when programme expected

Inactive Wireless channels (zero RF, zero audio — likely unpaired transmitter slots) are automatically suppressed to prevent false alerts in multi-channel receivers with unused slots.

💡 Per-Talent Thresholds Adjust battery and RF thresholds per performer in the Talent Manager. A "Background" talent with a fresh battery might have a lower warning threshold; your lead presenter with a critical role should have a higher one.
Section 18

DIAGNOSTICS & SUPPORT

ETR-NodeScope includes built-in tools for capturing diagnostic data and generating support bundles.

Live Log Window

Open with File → Live Logs…. Shows real-time log output from all services — useful for watching discovery events, connection attempts, and telemetry ingestion in real time.

Log Files

Persistent log files are written to the logs/ directory in the application data folder, retained for 14 days by default. Log level is set in appsettings.yaml (Information default, Debug or Verbose for troubleshooting).

Support Bundle

Go to File → Create Support Bundle… (also in Help menu). This captures the current configuration (with secrets redacted), recent log files, and a system snapshot into a timestamped ZIP archive suitable for emailing to support@eventtechnologyresources.com.

Release Readiness Check

Help → Release Readiness Check runs a self-assessment checklist covering audio paths, device connections, WebUI status, and service health. Useful before a show to verify all systems are operational.

Crash Reports

On unhandled exceptions, ETR-NodeScope generates a crash report saved to the application data directory. These are included automatically in Support Bundles.

Section 19

CONFIGURATION FILE

All application settings can be edited directly in config/appsettings.yaml. This is the definitive reference for options not exposed in the Settings UI.

schemaVersion: 1

productInfo:
  productName: ETR-NodeScope
  companyName: Event Tech Research Ltd
  edition: Professional

runtime:
  mode: desktop           # desktop | appliance
  environment: production # production | staging | development
  enableDiagnostics: true

audio:
  backend: auto           # auto | asio | bass
  inputDevice: auto       # auto | device name
  channelCount: 32
  bufferSize: 512

discovery:
  enabled: true
  enableMdns: true
  enableSubnetScan: false
  subnetCidr: 192.168.1.0/24
  probeTimeoutMs: 750
  maxConcurrentProbes: 16
  sweepIntervalSeconds: 30
  staleAfterSeconds: 90

mqtt:
  enabled: false
  host: 127.0.0.1
  port: 1883
  clientId: etr-nodescope
  topicRoot: etr
  username: ""
  password: ""
  retainMessages: true

webUi:
  enabled: true
  port: 8080
  enableAudioStreaming: true
  allowRemoteClients: false

logging:
  level: Information      # Verbose | Debug | Information | Warning | Error
  directory: logs
  retentionDays: 14

trial:
  enableTrialMode: true
  trialDays: 14
  enableDemoMode: true

security:
  enableRemoteCommands: false
  sharedSecret: ""
  webUiBindAddress: localhost   # localhost | 0.0.0.0 | specific IP
  allowedRemoteCidrs: []

devices: []               # Populated via Settings UI
ℹ Config Location The config file is loaded from the config/ subdirectory of the application installation folder. On Windows this is typically C:\Program Files\ETR-NodeScope\config\appsettings.yaml. Changes require an application restart (or service stop/start) to take effect.

Support

For technical support, contact Event Technology Resources at support@eventtechnologyresources.com. Include a Support Bundle (Help → Create Support Bundle) with your enquiry for fastest resolution.

ETR-NodeScope v2.2.0 · Copyright Event Technology Resources. All rights reserved.