Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Network export

Send live IQ or decoded events to other programs.

NodeModeFor
Network IQUDP or TCPGNU Radio and other raw IQ tools
Network IQrtl_tcp serverrtl_433 and other rtl_tcp clients
Event outputFeed (ADS-B Beast)Flight tracking feeders
Event outputWebhook, Matrix, MQTTChat, automation and alerts
Event outputNotificationAlerts in the desktop app
Event outputPostgreSQL, InfluxDBDatabases
Event outputCSV fileSpreadsheets and logs
Event outputNetwork interfaceIP packets from DAB and DVB-S2

Network IQ and feed ports skip the server's token and TLS. Keep them on trusted networks. A listener address belongs to the server: use its LAN address or 0.0.0.0 to accept other machines.

Raw IQ over UDP or TCP

  1. Add Network IQ and wire one Device iq lane or one channel baseband.
  2. Pick Transport, Samples, and the destination host:port in To.
  3. Start the receiving program, then press Start export.
  4. Set the receiver to the rate and centre frequency shown on the node.

Channel baseband sends only that channel, at its lower rate. The sample rate is locked during export. A radio restart pauses the export instead of ending it. Retuning works, but you must update the receiver yourself. The node counts bytes sent, datagrams or writes, and drops.

Samples are interleaved I, Q, I, Q, with no header or timestamps:

SamplesEncodingBytes per I/Q pairGNU Radio type
Complex float 32 LEcf32_le, 32-bit float8Complex
Complex int 16 LEci16_le, signed 16-bit4Short, then Interleaved Short to Complex
Complex unsigned 8cu8, unsigned 8-bit, zero at 127.52RTL-SDR byte IQ

Names follow SigMF. VITA 49 and DIFI are not supported.

UDP datagrams sends whole samples in datagrams of up to 1,400 bytes. In GNU Radio's UDP Source, set header to None and payload size to 1,400. There are no sequence numbers, so lost packets cannot be detected.

TCP stream connects to your listening program. If it reads too slowly, the export stops with an error.

rtl_433

  1. Tune the Device to 433.92 MHz.
  2. Wire Device iq into Network IQ and pick rtl_tcp server (rtl_433). It listens on 127.0.0.1:1234.
  3. Press Start export and run rtl_433 with the rate and frequency shown:
rtl_433 -d rtl_tcp:127.0.0.1:1234 -s 1024000 -f 433920000 -F json

A channel's baseband works too if it covers the sensor. Commands from the client cannot retune the radio; set that on the canvas. Up to eight clients can connect. A slow one is dropped without affecting the others.

Feeds

A feed streams events in a format other software reads. Decoders bring their own formats; ADS-B brings Beast.

  1. Wire the ADS-B channel's events into Event output.
  2. Pick Feed, format Beast, keep Listen at 127.0.0.1:30005, and press Open server.
  3. Point your feeder at that address.

The server sends Beast binary frames with 12 MHz timestamps and signal levels. Timestamps count samples, not GPS time, and restart after gaps. Use one ADS-B channel per output. Up to 16 clients can connect.

Webhooks, Matrix and MQTT

Wire events to an Event output and pick a Service. Each event is sent as it arrives.

ServiceSends
Webhook, JSONAn HTTP POST with output, kind, text, and the full record
Webhook, DiscordThe text as a message, with any audio attached
MatrixThe text to a room, with any audio uploaded
MQTTThe JSON payload to a topic, at least once. Use mqtt:// or mqtts://.
NotificationThe text as a system notification. Desktop app only.

Long messages are cut at 1,900 characters. A rate-limited send is retried up to four times. Failures go to the server log.

Databases and files

Wire events to an Event output and choose PostgreSQL, InfluxDB or CSV file.

PostgreSQL creates the table (default sdrmm_events) on first write: one row per event with time, kind, frequency, station, summary, and the full record as jsonb. A server on another host must speak TLS unless the URL sets sslmode, such as ?sslmode=disable.

CSV file appends one row per event to Recordings/events/<file>.csv: time, kind, output, device set, channel, frequency, station, summary, and the event data as JSON. Text that starts like a formula gets a leading '.

InfluxDB 2 and 3 take one point per event. The measurement is the event kind, and numbers, flags, and short text from the event become fields.

Credentials

Webhook URLs, the Matrix token, MQTT and PostgreSQL passwords and the InfluxDB token stay in the server's database. The workspace and its export name them by id only. On another server the node shows, for example, Matrix token is not set on this server until you enter it again.

IP data

DAB IP services and DVB-S2 GSE carry IP packets. Wire the channel's events to an Event output, choose Network interface, and set Interface, IPv4, and Prefix. SDRmm creates a TUN interface and writes the packets to it.

SystemNeeds
LinuxCAP_NET_ADMIN for the server
macOSPermission to create a utun interface; name it like utun8
WindowsAdministrator rights and wintun.dll beside the executable

Routing and multicast are up to your operating system.