FST4W frequencies


Bryan Klofas
 

Hey Guys--

I got my WSPR/FST4W transmitter working this past weekend, it's a HackRF One with a Bodnar, and a ~1 watt amplifier (plus or minus 6 dB). I audio recorded a FST4W-300 file, and use GNURadio to play that audio file back and modulate the USB signal. My fan dipole is cut for 40/20/10 meters.

WSPR works well, but I've only been heard a few times when transmitting FST4W-300. On 20 meters, only WA2N received two of my beacons, and on 40 meters it was only Rob in Hawaii and Glenn in CO that received my one transmission. Based on the wd_reporters.txt file, I would have expected to be heard a bit more.

Looking at wspr.rocks, most of the FST4W transmitters (WB6CXC, N6GN) on 20 meters seem to be at the bottom of the WSPR band (14.09700x MHz). I changed my dial frequency to center the 1500 Hz audio there, transmitted ~5 times, but wasn't received at all.

Is the dial frequency for FST4W the same as WSPR? As far as I can tell, they are the same, with the same 200 Hz decode band. And there isn't a -w mode for the jt9 decoder as far as I can tell.

Any thoughts about what I might be doing wrong? Another thing is that my transmissions were at night, and maybe the angry sun is causing problems?

Thanks, have a great day!
--
Bryan Klofas KF6ZEO


Alan G4ZFQ
 

On 01/03/2023 06:14, Bryan Klofas wrote:
and use GNURadio to play that audio file back and modulate the USB signal.
Bryan,

I guess you have timing exact?

Is the dial frequency for FST4W the same as WSPR?
Yes

my transmissions were at night,
Propagation is varying. Check how WSPR stations in your area are doing.
FST4W needs fairly stable propagation, I do not know how much this can affect reception. There is a wsprdaemon database that records signal spread. I've not got round to finding how to access that.

73 Alan G4ZFQ


Gwyn Griffiths
 
Edited

Hello Bryan,

This is curious.

Alan is right to query timing. My tests with FST4W show that it has more stringent requirements than WSPR.
Decode probability is severely reduced if < 1s and >2 s from exact start time.

Your three spots had decent SNR, so really curious there were no successive decodes. That's probably a clue. Can you decode locally?

The good news is that your (to me) unique way of generating FST4W for the HF bands has acceptable spectral spread.
I've a Grafana dashboard at

http://logs1.wsprdaemon.org:3000/d/4xvGwI97z/wspr-and-fst4w-comparisons?var-sender=KF6ZEO&var-sender_grid=CM87&var-rx_id=AI6VN%2FKH6&var-receiver=maui76&var-band=40&from=now-3d&to=now&orgId=1

that you can access using the usual WsprDaemon Grafana credentials, email me if you need reminding.

So your spectral spreading to WA2N, two hop, was 267 milliHz (mHz), that's much in line with others; 96 mHz to N6GN/K probably one hop, at the high end, but conditions have not been great; and 170 mHz on the over water two-hop path to Maui AI6VN/KH6, again fine. 

So spectral spreading or drift are not the issues. I'd reinforce Alan's message on timing, and check that nothing is amiss on your repeat settings.

regards
Gwyn G3ZIL


Paul WB6CXC (tech-blog: wb6cxc.com)
 

The WB6CXC stations (grids CM88 and CN88) are using wsjtx set for -120, so I'm not going to pick up -300 transmissions.  I will switch over to FST4W-300 for a while and perhaps I will hear you in Occidental or Friday Harbor.
Gwyn, do let me know if you need me to be in -120 mode for anything and I will switch back.
-Paul / wb6cxc


Paul WB6CXC (tech-blog: wb6cxc.com)
 

Due to temporary connection problems WB6CXC/CN88 (Friday Harbor) will remain in -120 mode.  I have switched CM88 (Occidental) to -300
-Paul


Bryan Klofas
 

Hey Gwyn and Alan--

Alan, I think you might have the answer here. I was manually pressing the "run" button at approximately the right time, sometimes GNU Radio would lock up and it would actually start transmitting 10 seconds or so after the beginning of the period.

For my next tests, I'll be sure to start at the correct time, which appears to be half a second after the minute mark. And it seems to end at the 287-second mark.

As an aside, how is it possible that missing a few seconds of a 300 second transmission corrupts the whole thing? I thought there was heavy FEC? I can understand the "tight" timing requirements for 15 second FT8, but this seems like a bad design decision was made for -300 (and what about -1800??).

I'll give this a try this weekend sometime and report back, thanks everybody!
--
Bryan Klofas KF6ZEO

On 3/1/23 03:12, Gwyn Griffiths via groups.io wrote:
[Edited Message Follows]
Hello Bryan,
This is curious.
Alan is right to query timing. My tests with FST4W show that it has more stringent requirements than WSPR.
Decode probability is severely reduced if < 1s and >2 s from exact start time.
Your three spots had decent SNR, so really curious there were no successive decodes. That's probably a clue. Can you decode locally?
The good news is that your (to me) unique way of generating FST4W for the HF bands has acceptable spectral spread.
I've a Grafana dashboard at
http://logs1.wsprdaemon.org:3000/d/4xvGwI97z/wspr-and-fst4w-comparisons?var-sender=KF6ZEO&var-sender_grid=CM87&var-rx_id=AI6VN%2FKH6&var-receiver=maui76&var-band=40&from=now-3d&to=now&orgId=1 <http://logs1.wsprdaemon.org:3000/d/4xvGwI97z/wspr-and-fst4w-comparisons?var-sender=KF6ZEO&var-sender_grid=CM87&var-rx_id=AI6VN%2FKH6&var-receiver=maui76&var-band=40&from=now-3d&to=now&orgId=1>
that you can access using the usual WsprDaemon Grafana credentials, email me if you need reminding.
So your spectral spreading to WA2N, two hop, was 267 milliHz (mHz), that's much in line with others; 96 mHz to N6GN/K probably one hop, at the high end, but conditions have not been great; and 170 mHz on the over water two-hop path to Maui AI6VN/KH6, again fine.
So spectral spreading or drift are not the issues. I'd reinforce Alan's message on timing, and check that nothing is amiss on your repeat settings.
regards
Gwyn G3ZIL


Erwin - PE3ES - F4VTQ
 

Bryan, If you can create a system that is so precise in its frequencies that a transmitted 300/900/1800 message is decodable, than getting the timing right should not pose a problem at all. 
Also I do not see it as a design flaw, it is instead part of the design focus : make the messages decodable under conditions of severe noise. A Tx-Rx-system that is in this way time-synced (without even knowing about each other) makes that a lot easier. It still has some tolerance for start and end time. Like all other JoeTaylor e.a. modes.

FWIW

Erwin


Bryan Klofas
 

Hey Erwin--

Well, let me rephrase my comment just a bit:

Regular WSPR doesn't need the whole 2 minute period to get the message across. I'm not sure what minimum time actually is, but if you disconnect the antenna (heavy heavy fade) for any 30 seconds in a 2 minute WSPR period, you still decode most/all of the stations you would if you left the antenna connected. Try it now. That's cool! That's the FEC.

So why does FST4W-300 fail if disconnect the antenna (or in my case, are off on my TX start) for the first few seconds of a 300 second period? It seems like we're going backwards.

And as we heard in the Wsprdaemon Users Group this week, the precise frequency references are not needed by the mode, it's the extra (really cool) science that we want to do that requires GPSDOs on both ends.

I don't have answers to these questions, but I am curious about the design decisions that went into FST4W. Why such a small tone separation? Maybe Joe Taylor could be a future Wsprdaemon Users Group invited guest?

Thanks, have a great weekend!
--
Bryan Klofas KF6ZEO

On 3/2/23 10:26, Erwin - PE3ES - F4VTQ via groups.io wrote:
Bryan, If you can create a system that is so precise in its frequencies that a transmitted 300/900/1800 message is decodable, than getting the timing right should not pose a problem at all.
Also I do not see it as a design flaw, it is instead part of the design focus : make the messages decodable under conditions of severe noise. A Tx-Rx-system that is in this way time-synced (without even knowing about each other) makes that a lot easier. It still has some tolerance for start and end time. Like all other JoeTaylor e.a. modes.
FWIW
Erwin


Erwin - PE3ES - F4VTQ
 

... for any 30 seconds in a 2 minute WSPR period....

Assumption : Not if you cut out the first 30 seconds right from the top of the even minute/start of message
Also : this is not the same effect as starting late (or early)

I do see interesting things now that I am comparing WSPR/FST4W on 30 meter. Tx random alternating between the modes.
Reports for FST4W are (always?) with better SNR, even when the WSPR spots directly "around" the FST4W spot report a 5-10 (G3ZIL-EA8/DF4UE) dB lower SNR.
The not so strongly disciplined receiving stations really struggle with FST4W, like ON5KQ and LX1DQ to just name 2.
SparkSDR creates a 2 Hz difference between FST4W and WSPR, designer is looking into this.

More to learn.


Rob Robinett
 

In preparing my HamSCI demo I have been feeding a 10M FST4W-120 signal from a Bodnar-fed QDX to a pair of Kiwis, one Bodnar-fed Kiwi reporting at AI6VN/G and the second Kiwi with its standard internal GPS-referencing  reporting as AI6VN/T.    In addition to the much lower spreading numbers reported by /G, some of the /T SNR reports are more than 10 dB lower than those reported by /G even though the Kiwi S-meter reports the same signal levels on both Kiwis.  Of course the differences are amplified by the 10M frequencies, but these results suggest that FST4W reception sensitivity is improved with GPSDO receivers.

When I return home next Thursday I will reproduce and extend those tests at lower frequencies.


tutorial=> select time,rx_id,receiver,band,freq,mode,tx_call,tx_grid,"SNR",metric,c2_noise,rms_noise from wsprdaemon_spots_s where tx_call='AI6VN' and rx_id='AI6VN/G' and time > now()-interval '100 hour' order by time desc limit 10;
        time         |  rx_id  | receiver | band |    freq    | mode | tx_call | tx_grid | SNR  | metric | c2_noise | rms_noise
---------------------+---------+----------+------+------------+------+---------+---------+------+--------+----------+-----------
 2023-03-04 13:00:00 | AI6VN/G | KIWI_0   | 10   | 28.1260995 |    3 | AI6VN   | CM87    | 22.3 |      5 |     -126 |    -141.7
 2023-03-04 12:58:00 | AI6VN/G | KIWI_0   | 10   | 28.1260994 |    3 | AI6VN   | CM87    | 22.2 |      5 |   -125.7 |    -141.3
 2023-03-04 12:56:00 | AI6VN/G | KIWI_0   | 10   | 28.1260994 |    3 | AI6VN   | CM87    | 22.1 |      5 |   -125.8 |    -141.1
 2023-03-04 12:54:00 | AI6VN/G | KIWI_0   | 10   | 28.1260994 |    3 | AI6VN   | CM87    | 22.2 |      5 |   -125.8 |    -141.7
 2023-03-04 12:52:00 | AI6VN/G | KIWI_0   | 10   | 28.1260994 |    3 | AI6VN   | CM87    | 22.4 |      5 |   -125.8 |    -141.5
 2023-03-04 12:50:00 | AI6VN/G | KIWI_0   | 10   | 28.1260994 |    3 | AI6VN   | CM87    | 22.1 |      5 |   -125.6 |    -141.2
 2023-03-04 12:48:00 | AI6VN/G | KIWI_0   | 10   | 28.1260994 |    3 | AI6VN   | CM87    | 21.1 |      5 |   -124.5 |    -140.2
 2023-03-04 12:46:00 | AI6VN/G | KIWI_0   | 10   | 28.1260994 |    3 | AI6VN   | CM87    |   21 |      5 |   -124.9 |    -141.2
 2023-03-04 12:44:00 | AI6VN/G | KIWI_0   | 10   | 28.1260994 |    3 | AI6VN   | CM87    | 21.6 |      5 |   -126.4 |    -141.7
 2023-03-04 12:42:00 | AI6VN/G | KIWI_0   | 10   | 28.1260994 |    3 | AI6VN   | CM87    | 21.7 |      5 |   -126.6 |      -142
(10 rows)
 
tutorial=> select time,rx_id,receiver,band,freq,mode,tx_call,tx_grid,"SNR",metric,c2_noise,rms_noise from wsprdaemon_spots_s where tx_call='AI6VN' and rx_id='AI6VN/T' and time > now()-interval '100 hour' order by time desc limit 10;
        time         |  rx_id  | receiver | band |    freq    | mode | tx_call | tx_grid | SNR  | metric | c2_noise | rms_noise
---------------------+---------+----------+------+------------+------+---------+---------+------+--------+----------+-----------
 2023-03-04 13:00:00 | AI6VN/T | KIWI_1   | 10   | 28.1260998 |    3 | AI6VN   | CM87    |   11 |    144 |   -105.7 |      -140
 2023-03-04 12:58:00 | AI6VN/T | KIWI_1   | 10   | 28.1260997 |    3 | AI6VN   | CM87    | 11.3 |    110 |   -105.3 |    -139.5
 2023-03-04 12:56:00 | AI6VN/T | KIWI_1   | 10   | 28.1260997 |    3 | AI6VN   | CM87    | 11.3 |    191 |   -105.4 |    -139.7
 2023-03-04 12:54:00 | AI6VN/T | KIWI_1   | 10   | 28.1260996 |    3 | AI6VN   | CM87    | 12.1 |    115 |   -105.5 |    -139.2
 2023-03-04 12:52:00 | AI6VN/T | KIWI_1   | 10   | 28.1260997 |    3 | AI6VN   | CM87    | 11.7 |    157 |   -105.5 |    -138.9
 2023-03-04 12:50:00 | AI6VN/T | KIWI_1   | 10   |    28.1261 |    3 | AI6VN   | CM87    | 11.8 |     53 |   -106.4 |    -140.2
 2023-03-04 12:48:00 | AI6VN/T | KIWI_1   | 10   | 28.1261002 |    3 | AI6VN   | CM87    |  8.6 |    385 |   -105.7 |    -139.3
 2023-03-04 12:46:00 | AI6VN/T | KIWI_1   | 10   |    28.1261 |    3 | AI6VN   | CM87    |  9.9 |     92 |   -105.8 |    -139.7
 2023-03-04 12:44:00 | AI6VN/T | KIWI_1   | 10   | 28.1260998 |    3 | AI6VN   | CM87    | 26.4 |    357 |   -120.8 |    -140.2
 2023-03-04 12:42:00 | AI6VN/T | KIWI_1   | 10   |    28.1261 |    3 | AI6VN   | CM87    | 27.5 |    105 |     -121 |    -139.4
(10 rows)
 
tutorial=>


Bryan Klofas
 

Hey Erwin--

Assumption : Not if you cut out the first 30 seconds right from the top
of the even minute/start of message
This assumption is wrong. Good FEC should allow loss of signal at any point in a message (including the beginning) and WSPR allows this. Try this at home, disconnect your antenna for the first 30 to 45 seconds of a WSPR period and see what you get.

Maybe some other smart person on this list can give a TL;DR of how short a minimum WSPR message is needed, assuming good signal strength?

Also : this is not the same effect as starting late (or early)
I think this is the same effect as starting late. As we have seen above, the WSPR message (callsign, gridsquare, etc) is spread out across the whole time period, so starting late = disconnected antenna for the first X seconds, you'll just loose the first and last X seconds of the message (which will be decoded anyways).

I've been trying to test this locally with audio files (for example, send WSJT-X generated audio files to the wsprd decoder). However, I can't seem to get things working. Maybe because there isn't any noise on the channel? Any hints here?

I will try a WSPR transmission starting at the 1-minute mark (maybe I could get counted in both periods??) but it takes me about an hour to hook everything up.... so maybe this weekend.

Yes indeed, more to learn. Thanks, have a great evening!
--
Bryan Klofas KF6ZEO

On 3/5/23 02:21, Erwin - PE3ES - F4VTQ via groups.io wrote:
...for any 30 seconds in a 2 minute WSPR period....
Assumption : Not if you cut out the first 30 seconds right from the top of the even minute/start of message
Also : this is not the same effect as starting late (or early)
I do see interesting things now that I am comparing WSPR/FST4W on 30 meter. Tx random alternating between the modes.
Reports for FST4W are (always?) with better SNR, even when the WSPR spots directly "around" the FST4W spot report a 5-10 (G3ZIL-EA8/DF4UE) dB lower SNR.
The not so strongly disciplined receiving stations really struggle with FST4W, like ON5KQ and LX1DQ to just name 2.
SparkSDR creates a 2 Hz difference between FST4W and WSPR, designer is looking into this.
More to learn.


Alan G4ZFQ
 

On 08/03/2023 06:13, Bryan Klofas wrote:
Maybe some other smart person on this list can give a TL;DR of how short a minimum WSPR message is needed, assuming good signal strength?
Bryan,

Not smart but certainly the last 50 seconds is sufficient for a decode. (I used to automatically mute my TX when it interfered with beacon transmissions.)
The smart person is one who knows the code and can tell us the absolute theoretical minimum.

73 Alan G4ZFQ


Gwyn Griffiths
 

My earlier comment on the need for start time difference to be between -1 and +2 s was based on the simulation using fst4sim in the attached graph. There were no decodes using fst4sim outside this interval. We still need the smart person to tell us why ...

A short guide to using fst4sim is in section 2.2 of our 2022 ARRL/TAPR DCC paper.

regards
Gwyn G3ZIL


Rob Robinett
 

The start time and outage length duration behavior seems to be more likely answered in the WSJT-x developers forum.
But it is my understanding that common agreement on the approximate start time of WSPR and FST4W packet transmission is one of the underlying assumptions of these transmission standards.  By agreeing on when packets start, the decoder's computation cost is significantly reduced, as is the recording process.
But I am not a DSL expert.