Network export
Send live IQ or decoded events to other programs.
| Node | Mode | For |
|---|---|---|
| Network IQ | UDP or TCP | GNU Radio and other raw IQ tools |
| Network IQ | rtl_tcp server | rtl_433 and other rtl_tcp clients |
| Event output | Feed (ADS-B Beast) | Flight tracking feeders |
| Event output | Webhook, Matrix, MQTT | Chat, automation and alerts |
| Event output | Notification | Alerts in the desktop app |
| Event output | PostgreSQL, InfluxDB | Databases |
| Event output | CSV file | Spreadsheets and logs |
| Event output | Network interface | IP 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
- Add Network IQ and wire one Device
iqlane or one channelbaseband. - Pick Transport, Samples, and the destination
host:portin To. - Start the receiving program, then press Start export.
- 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:
| Samples | Encoding | Bytes per I/Q pair | GNU Radio type |
|---|---|---|---|
| Complex float 32 LE | cf32_le, 32-bit float | 8 | Complex |
| Complex int 16 LE | ci16_le, signed 16-bit | 4 | Short, then Interleaved Short to Complex |
| Complex unsigned 8 | cu8, unsigned 8-bit, zero at 127.5 | 2 | RTL-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
- Tune the Device to 433.92 MHz.
- Wire Device
iqinto Network IQ and pick rtl_tcp server (rtl_433). It listens on127.0.0.1:1234. - 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.
- Wire the ADS-B channel's
eventsinto Event output. - Pick Feed, format Beast, keep Listen at
127.0.0.1:30005, and press Open server. - 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.
| Service | Sends |
|---|---|
| Webhook, JSON | An HTTP POST with output, kind, text, and the full record |
| Webhook, Discord | The text as a message, with any audio attached |
| Matrix | The text to a room, with any audio uploaded |
| MQTT | The JSON payload to a topic, at least once. Use mqtt:// or mqtts://. |
| Notification | The 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.
| System | Needs |
|---|---|
| Linux | CAP_NET_ADMIN for the server |
| macOS | Permission to create a utun interface; name it like utun8 |
| Windows | Administrator rights and wintun.dll beside the executable |
Routing and multicast are up to your operating system.