SparkSDR meets GridTracker (and more)

200 views
Skip to first unread message

AndyZ K1RA

unread,
Nov 22, 2020, 9:46:20 PM11/22/20
to SparkSDR
On my quest to make SparkSDR more versatile and compatible with apps that already run with the original WSJT-X software, I've written an app to convert websockets to the WSJT-X UDP message protocol.

My main goal was to have a local and more real-time mapping feature for SparkSDR spots.  The built-in map is OK, though small and not interactive.  PSKreporter is great, interactive and filter rich, but is slow and not always available.  Bring in GridTracker


This has MANY features, including many map types, color coded band spots with hover over spot text, band/mode filtering, country, grid, county tracking and more!

To see SparkSDR working in conjunction with my SparkSDR2WSJTX-UDP app and GridTracker, see a short video I ran here


You can download my app here


It is a standalone Windows executable which can be copied and run from any folder.  I've tested this with SparkSDR v 2.0.4.2. 

To run my app, first go to SparkSDR and General Settings > Station and ensure Websockets are Enabled.  Next open a CMD prompt and navigate to the directory/folder of the SparkSDR2WSJTX-UDP.EXE app.  It is run as follows using the following command line options

sparksdr2wsjtx-udp YOURCALL GRID6 SPARKIP UDP_IP UDP_PORT [CACHETIME]

where

YOURCALL = your call sign (ex: W1XYZ)
SPARKIP = IP address of SparkSDR server (ex: 192.168.0.234)
UDP_IP = IP address of client app (ex: 127.0.0.1)
UDP_PORT = UDP listener port of client app (ex : 2237)
CACHETIME = optional # (>=0) minutes to expire calls, default = 5

Technically my app should work with other programs like JTAlert that can ingest the WSJT-X UDP message stream, but I've not used that app before.

Comments, questions, suggestions, successes, or failures please follow up here.

Thanks & 73

andyz - K1RA

Josh Logan

unread,
Nov 22, 2020, 11:15:22 PM11/22/20
to AndyZ K1RA, SparkSDR

Looking good again!

image.png

I did learn if you have WSJT-x running it helps to click the arrows to pick the new source:
image.png
image.png

73, KD7HGL
Josh



--
You received this message because you are subscribed to the Google Groups "SparkSDR" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sparksdr+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sparksdr/777a541a-8e88-4a23-bad4-da2a8997687cn%40googlegroups.com.

f6ehp

unread,
Nov 24, 2020, 4:44:53 PM11/24/20
to SparkSDR
Hi All,
I tried with sparksdr 2.0.3.6 , gridtracker connects to WSJT-X, but doesn't see sparksdr2wsjtx-udp
I couldn't find the link for the 2.0.4.2 release That maybe necessary.
73.

ahop...@googlemail.com

unread,
Nov 24, 2020, 5:04:05 PM11/24/20
to SparkSDR

f6ehp

unread,
Nov 24, 2020, 5:29:20 PM11/24/20
to SparkSDR
Thanks Alan, With this release, gridtracker receives sparksdr ! wonderfull ! Thanks to Andy also.
73 Pascal

AndyZ K1RA

unread,
Dec 28, 2020, 10:55:32 PM12/28/20
to SparkSDR
I've updated my SparkSDR2WSJTX-UDP program that interfaces with GridTracker and other similar programs that accept the WSJT-X UDP stream.  You can download here


I've fixed an UNDEFINED ARRAY error that caused the program to stop after a period of time.  Usage is as follows:

sparksdr2wsjtx-udp MYCALL GRID6 SPARKSDR_IP UDP_IP UDP_PORT [CACHETIME]

where

MYCALL = your callsign
GRID6 = your 6 digit grid square
SPARKSDR_IP = IP address of SparkSDR software (127.0.0.1 if on local PC)
UDP_IP = IP address of GridTracker client (could be 127.0.0.1 if on local PC)
UDP_PORT = IP address of GridTracker client (example: 2239 - see GridTracker settings)
CACHETIME = optional minutes before cache expires (defaults to 5)

73

andyz - K1RA

IV3DXW Claudio

unread,
Dec 29, 2020, 7:06:58 PM12/29/20
to SparkSDR
Hi Andy,
it works! Good
Also together sparksdr2dxc.

Tried also JTalert but no success.

Thanks
73 Claudio iv3dxw

IV3DXW Claudio

unread,
Dec 30, 2020, 6:47:10 AM12/30/20
to SparkSDR
Hi Andy,
in a long run (about 4hours) I see server get stuck.
After close and open GridTracker is again functional.
I don't find interesting log in \m0nnb\SparkSDR2\errorlogs folder to understand if the issue in SparkSDR side.

73 Claudio iv3dxw

server stuck.png

AndyZ K1RA

unread,
Oct 23, 2022, 8:59:48 PM10/23/22
to SparkSDR

For release SparkSDR2WSJTX-UDP v2.00, an application for taking FT8, FT4 and WSPR spots received over  SparkSDR  Websockets and formatting and forwarding them over the UDP network via the WSJT-X protocol to GridTracker (and possibly other similar apps). Download my app from my web site here:

https://k1ra.us/wp-content/uploads/sites/5/download/sparksdr2wsjtx-udp-v2.0.0.zip

Please let me know if you have any issues accessing it.

This new version is written in Python and the downloaded ZIP contains both a standalone executable tested on Windows 10, as well as the Python source code and requirements.txt file. The later could be used with the Python interpreter and should run under Linux or MacOSX.  I've not tried that on my Ubuntu system, so I'm looking for any feedback for those who try using the source code directly.

> sparksdr2wsjtx-udp.exe -h                                    
Usage: sparksdr2wsjtx-udp.py -m MYCALL -g MYGRID6 [-c cache_expire] [-s sparksdr_ip] [-b broadcast_ip] [-p broadcast_port] [-d] [-v] [-h]
-m MYCALL (mandatory, ex: -m K1RA)
-g MYGRID6 (mandatory, ex: -g FM18cr)
-c cache_expire (optional, minutes, ex: -c 5) [default=5]
-s sparksdr_ip (optional, ip address, ex: -s 192.168.1.123) [default=127.0.0.1]
-b broadcast_ip (optional, ip address, ex: -b 192.168.1.234) [default=239.1.1.1]
-p broadcast_port (optional, udp port, ex: -p 2239) [default=2237]
-d (turns on debug messages)
-v (prints version)
-h (prints this help)


The only mandatory command line options are -m followed by your call and -g for your 6 digit grid.  

By default the app looks for the SparkSDR Websocket on same computer, localhost at 127.0.0.1. If your SparkSDR is running somewhere else on the network use the -s command line option to specify its IP address.  Also by default the app is set to use multicast to IP 239.1.1.1 and UDP port # 2237 to broadcast WSJT-X-like spot information over the network.  I've set my GridTracker up to use multicast as follows, see circled in red here:


You could also use the -b option to redirect the spot info broadcast to a specific IP address.  -p can be used to change the broadcast port number.

I've enabled Push Pins within GridTracker to give its look and feel a local and more speedy PSKreporter map style view, see circled in red:


The -d command line option is useful to show SparkSDR Websocket data and decoded messages sent as well as any rejected decodes.  

The app should handle reconnecting to SparkSDR and handle other tuning or band/mode changes, though I've not tested all possible combinations. Once a call is spotted on a frequency (kHz) it will not be resent over the network to GridTracker until the cache timer (5 minutes default) has expired for that hashed call+frequency.  

Ctrl-C should exit the program.

> sparksdr2wsjtx-udp.exe -m K1RA -g FM18CR -d -s 192.168.2.148
sparkdxc2wsjtx-udp version 2.0.0 by K1RA
Opening Connection
Message Received: {"cmd":"spotResponse","spots":[{"time":"2022-10-24T00:32:30Z","frequency":7075494.0,"tunedfrequency":7074000.0,"power":0,"drift":0,"snr":9,"dt":0.1,"msg":"W3MEB W0LEN -11","mode":"FT8"
,"submode":"","distance":null,"call":"W0LEN","color":0,"locator":"","valid":true,"offsetFrequency":1494.0,"rxid":11}, ...
003230   7074.0  FT8       W0LEN 1494   9       W3MEB W0LEN -11
003230   7074.0  FT8        NG8Y 2110  16 EM79  CQ NG8Y EM79
003230   7074.0  FT8        N5RN  715   5 EM34  TY0RU N5RN EM34
003230   7074.0  FT8      KC9IZF 1567  -9 EN54  KE8RS KC9IZF EN54
003230   7074.0  FT8        KB8V  814   5       EC3A KB8V R-20
003230   7074.0  FT8       N2YCH 2395   6 FN31  CQ AK N2YCH FN31


Here's a screenshot of my GridTracker with my SparkSDR being fed by 2 Redpitaya's where map spots can be viewed here:


There you can see how I setup and use the Map View Filters on the right side of that main screen page. This is for viewing all modes, bands and live.  

By clicking on the RX Calls section on the right of the main screen you view Live Decode details, time stamp, band. mode call, etc. as seen here:


Please let me know if you have any issues and comments, questions, feedback welcome.

73

andyz - K1RA

Reply all
Reply to author
Forward
0 new messages