UDP Reporting and Requests

The WSJT-X ham radio digital signaling application will report decoding status and accept requests by UDP datagrams. Here we explore how to avail ourselves of that service. wikipedia

Settings ⇒ Reporting ⇒ UDP Server: This group of options controls the network name or address and port number used by a program that will receive status updates from WSJT-X. It is expected that cooperating applications like JTAlert-X use this feature to obtain information about a running WSJT-X instance. doc

# Specification

We find a lengthy thread about the design and implementation of WSJT reporting.

Wonder if anyone has any C# code for monitoring the UDP messages they are willing to share? sourceforge

I'm working on Java implementation that should be close enough for you to look at. github

Here is the code that writes the bytes. sourceforge

# Code

We hope to code a server-side plugin that will participate in the signaling with WSJT-X written in Qt.

How to write datagram through a specific network interface in QT? stackoverflow

Here is a quick tutorial on setting up a UDP server and client in Node.js. post nodejs

# Data

We follow the tutorial and start receiving data which we print in hex and hand decode. ascii decimal

Heartbeat ad bc cb da 0 0 0 2 0 0 0 0 0 0 0 6 57 53 4a 54 2d 58 0 0 0 3 0 0 0 5 32 2e 30 2e 31 = 2.0.1 0 0 0 6 37 64 64 63 62 37

Status

ad bc cb da magic 0 0 0 2 version = 2 0 0 0 1 type = 1 = status 0 0 0 6 57 53 4a 54 2d 58 id = WSJT-X 0 0 0 0 0 d6 c0 90 dialFrequency 0 0 0 3 46 54 38 mode 0 0 0 5 4b 34 48 56 46 dxCall 0 0 0 3 2d 31 30 report 0 0 0 3 46 54 38 txMode 0 txEnabled = false 0 transmitting = false 1 decoding = true 0 0 4 c0 rxDF 0 0 7 33 txDF 0 0 0 4 4b 39 4f 58 deCall 0 0 0 6 43 4e 38 35 70 6c deGrid 0 0 0 4 45 4d 36 33 dxGrid 0 txWatchdog ff ff ff ff subMode 0 fastMode 0

Decode

ad bc cb da magic = -1380135974 0 0 0 2 version = 2 0 0 0 2 type = 2 = decode 0 0 0 6 57 53 4a 54 2d 58 id = WSJT-X 1 new decode = true 3 d6 5c 60 time = 64380000 ms = 17:53 utc ff ff ff f3 snr = -13 80 0 0 0 0 0 0 0 delta time = double = 0? 0 0 2 c0 delta freq = 704 0 0 0 1 7e mode = ~ 0 0 0 e 4e 36 4e 47 20 4b 55 30 44 20 52 2d 31 32 message = N6NG KU0D R-12 0 low confidence = false 0

# Deployed

We've installed the plugin in Singapore and directed udp traffic there. github

We experiment by collecting FT8 mode payloads as decoded by WSJT-X software and reported to us via UDP.

Early experience showed 40k memory allocated per datagram recorded. This is crazy. Rewrote module to decode UDP datagrams from WSJT-X. npm

We're not yet sure how this should be shared collaboratively. Current client looks to origin for data.

See Radio's Social Network for data application.