diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index 00129311a..92368016b 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -37,10 +37,6 @@ bool SoundInput::checkStream () result = true; break; } - if (!result) - { - stop (); - } } return result; } diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index 5e89de147..fe7c58fbf 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -51,7 +51,7 @@ void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, m_framesBuffered = frames_buffered; } -void SoundOutput::restart (AudioDevice * source) +void SoundOutput::restart (QIODevice * source) { if (!m_device.isNull ()) { @@ -111,7 +111,6 @@ void SoundOutput::restart (AudioDevice * source) #endif } m_stream->setCategory ("production"); - m_source = source; m_stream->start (source); // qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); } diff --git a/Audio/soundout.h b/Audio/soundout.h index 95efaeb15..76711660d 100644 --- a/Audio/soundout.h +++ b/Audio/soundout.h @@ -6,9 +6,8 @@ #include #include #include -#include -class AudioDevice; +class QIODevice; class QAudioDeviceInfo; // An instance of this sends audio data to a specified soundcard. @@ -30,7 +29,7 @@ public: public Q_SLOTS: void setFormat (QAudioDeviceInfo const& device, unsigned channels, int frames_buffered = 0); - void restart (AudioDevice *); + void restart (QIODevice *); void suspend (); void resume (); void reset (); @@ -52,7 +51,6 @@ private: QAudioDeviceInfo m_device; unsigned m_channels; QScopedPointer m_stream; - QPointer m_source; int m_framesBuffered; qreal m_volume; bool error_; diff --git a/NEWS b/NEWS index 097282e70..6f7fad9c7 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,32 @@ Copyright 2001 - 2020 by Joe Taylor, K1JT. + Release: WSJT-X 2.3.0-rc1 + Sept 28, 2020 + ------------------------- + +WSJT-X 2.3.0 is a program upgrade offering two new modes designed +especially for use on the LF and MF bands. FST4 is for 2-way QSOs, +and FST4W is for WSPR-like transmissions. Both modes offer a range of +options for T/R sequence lengths and threshold decoding sensitivities +extending well into the -40 dB range. Early tests have shown these +modes frequently spanning intercontinental distances on the 2200 m and +630 m bands. Further details and operating hints can be found in the +"Quick-Start Guide to FST4 and FST4W", posted on the WSJT web site: + +https://physics.princeton.edu/pulsar/k1jt/FST4_Quick_Start.pdf + +WSJT-X 2.3.0-rc1 is a beta-quality release candidate for a program +upgrade that provides a number of new features and capabilities. +These include: + + - New modes FST4 and FST4W + + - The *On Dx Echo* Doppler compensation method has been modified in + response to feedback from Users. Basic functionality is unchanged. + See the User Guide (Section 8.1) for more information. + + Release: WSJT-X 2.2.2 June 22, 2020 --------------------- diff --git a/Release_Notes.txt b/Release_Notes.txt index 22fca397b..cc73dc071 100644 --- a/Release_Notes.txt +++ b/Release_Notes.txt @@ -14,13 +14,26 @@ Copyright 2001 - 2020 by Joe Taylor, K1JT. Release: WSJT-X 2.3.0-rc1 - Sept DD, 2020 + Sept 28, 2020 ------------------------- +WSJT-X 2.3.0 is a program upgrade offering two new modes designed +especially for use on the LF and MF bands. FST4 is for 2-way QSOs, +and FST4W is for WSPR-like transmissions. Both modes offer a range of +options for T/R sequence lengths and threshold decoding sensitivities +extending well into the -40 dB range. Early tests have shown these +modes frequently spanning intercontinental distances on the 2200 m and +630 m bands. Further details and operating hints can be found in the +"Quick-Start Guide to FST4 and FST4W", posted on the WSJT web site: + +https://physics.princeton.edu/pulsar/k1jt/FST4_Quick_Start.pdf + WSJT-X 2.3.0-rc1 is a beta-quality release candidate for a program upgrade that provides a number of new features and capabilities. These include: + - New modes FST4 and FST4W + - The *On Dx Echo* Doppler compensation method has been modified in response to feedback from Users. Basic functionality is unchanged. See the User Guide (Section 8.1) for more information. diff --git a/Versions.cmake b/Versions.cmake index 230f0e58d..5b6707739 100644 --- a/Versions.cmake +++ b/Versions.cmake @@ -1,6 +1,6 @@ # Version number components set (WSJTX_VERSION_MAJOR 2) -set (WSJTX_VERSION_MINOR 3) +set (WSJTX_VERSION_MINOR 4) set (WSJTX_VERSION_PATCH 0) set (WSJTX_RC 0) # release candidate number, comment out or zero for development versions set (WSJTX_VERSION_IS_RELEASE 0) # set to 1 for final release build diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 91b4d9875..9b48ced82 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -30,8 +30,7 @@ set (UG_SRCS install-mac.adoc install-windows.adoc introduction.adoc - measurement_tools.adoc - protocols.adoc + intro_subsections.adoc logging.adoc make-qso.adoc measurement_tools.adoc @@ -53,6 +52,8 @@ set (UG_SRCS tutorial-example2.adoc tutorial-example3.adoc tutorial-example4.adoc + tutorial-example5.adoc + tutorial-example6.adoc tutorial-main-window.adoc tutorial-wide-graph-settings.adoc utilities.adoc @@ -82,6 +83,9 @@ set (UG_IMGS images/FreqCal_Graph.png images/FreqCal_Results.png images/freemsg.png + images/FST4_center.png + images/FST4_Decoding_Limits.png + images/FST4W_RoundRobin.png images/ft4_decodes.png images/ft4_waterfall.png images/ft8_decodes.png diff --git a/doc/user_guide/en/images/FST4W_RoundRobin.png b/doc/user_guide/en/images/FST4W_RoundRobin.png new file mode 100644 index 000000000..74d17b007 Binary files /dev/null and b/doc/user_guide/en/images/FST4W_RoundRobin.png differ diff --git a/doc/user_guide/en/images/FST4_Decoding_Limits.png b/doc/user_guide/en/images/FST4_Decoding_Limits.png new file mode 100644 index 000000000..c7ad28633 Binary files /dev/null and b/doc/user_guide/en/images/FST4_Decoding_Limits.png differ diff --git a/doc/user_guide/en/images/FST4_center.png b/doc/user_guide/en/images/FST4_center.png new file mode 100644 index 000000000..b66aa1854 Binary files /dev/null and b/doc/user_guide/en/images/FST4_center.png differ diff --git a/doc/user_guide/en/intro_subsections.adoc b/doc/user_guide/en/intro_subsections.adoc new file mode 100644 index 000000000..242d54e54 --- /dev/null +++ b/doc/user_guide/en/intro_subsections.adoc @@ -0,0 +1,40 @@ +=== Documentation Conventions + +In this manual the following icons call attention to particular types +of information: + +NOTE: *Notes* containing information that may be of interest to +particular classes of users. + +TIP: *Tips* on program features or capabilities that might otherwise be +overlooked. + +IMPORTANT: *Warnings* about usage that could lead to undesired +consequences. + +=== User Interface in Other Languages + +The _WSJT-X_ user interface is now available in many languages. When +a translated user interface is available for the computer's default +System Language, it will appear automatically on program startup. + +=== How You Can Contribute + +_WSJT-X_ is part of an open-source project released under the +{gnu_gpl} (GPLv3). If you have programming or documentation skills or +would like to contribute to the project in other ways, please make +your interests known to the development team. We especially encourage +those with translation skills to volunteer their help, either for +this _User Guide_ or for the program's user interface. + +The project's source-code repository can be found at {devrepo}, and +communication among the developers takes place on the email reflector +{devmail}. Bug reports and suggestions for new features, improvements +to the _WSJT-X_ User Guide, etc., may be sent there as well. You must +join the group before posting to the email list. + + +=== License + +Before using _WSJT-X_, please read our licensing terms +<>. diff --git a/doc/user_guide/en/introduction.adoc b/doc/user_guide/en/introduction.adoc index f172b5d35..c1345f685 100644 --- a/doc/user_guide/en/introduction.adoc +++ b/doc/user_guide/en/introduction.adoc @@ -3,42 +3,41 @@ _WSJT-X_ is a computer program designed to facilitate basic amateur radio communication using very weak signals. The first four letters in the program name stand for "`**W**eak **S**ignal communication by -K1**JT**,`" while the suffix "`-X`" indicates that _WSJT-X_ started as -an extended and experimental branch of the program _WSJT_, -first released in 2001. Bill Somerville, G4WJS, and Steve Franke, -K9AN, have been major contributors to program development since 2013 -and 2015, respectively. +K1**JT**,`" while the suffix "`*-X*`" indicates that _WSJT-X_ started +as an extended branch of an earlier program, _WSJT_, first released in +2001. Bill Somerville, G4WJS, and Steve Franke, K9AN, have been major +contributors to development of _WSJT-X_ since 2013 and 2015, respectively. -_WSJT-X_ Version {VERSION_MAJOR}.{VERSION_MINOR} offers ten different -protocols or modes: *FT4*, *FT8*, *JT4*, *JT9*, *JT65*, *QRA64*, -*ISCAT*, *MSK144*, *WSPR*, and *Echo*. The first six are designed for -making reliable QSOs under weak-signal conditions. They use nearly -identical message structure and source encoding. JT65 and QRA64 were -designed for EME ("`moonbounce`") on the VHF/UHF bands and have also -proven very effective for worldwide QRP communication on the HF bands. -QRA64 has some advantages over JT65, including better performance -for EME on the higher microwave bands. JT9 was originally designed -for the LF, MF, and lower HF bands. Its submode JT9A is 2 dB more -sensitive than JT65 while using less than 10% of the bandwidth. JT4 -offers a wide variety of tone spacings and has proven highly effective -for EME on microwave bands up to 24 GHz. These four "`slow`" modes -use one-minute timed sequences of alternating transmission and -reception, so a minimal QSO takes four to six minutes — two or three -transmissions by each station, one sending in odd UTC minutes and the -other even. FT8 is operationally similar but four times faster -(15-second T/R sequences) and less sensitive by a few dB. FT4 is -faster still (7.5 s T/R sequences) and especially well-suited for -radio contesting. On the HF bands, world-wide QSOs are possible with -any of these modes using power levels of a few watts (or even -milliwatts) and compromise antennas. On VHF bands and higher, QSOs -are possible (by EME and other propagation types) at signal levels 10 -to 15 dB below those required for CW. - -Note that even though their T/R sequences are short, FT4 and FT8 are -classified as slow modes because their message frames are sent only -once per transmission. All fast modes in _WSJT-X_ send their message -frames repeatedly, as many times as will fit into the Tx sequence -length. +_WSJT-X_ Version {VERSION_MAJOR}.{VERSION_MINOR} offers twelve +different protocols or modes: *FST4*, *FT4*, *FT8*, *JT4*, *JT9*, +*JT65*, *QRA64*, *ISCAT*, *MSK144*, *WSPR*, *FST4W*, and *Echo*. The +first seven are designed for making reliable QSOs under weak-signal +conditions. They use nearly identical message structure and source +encoding. JT65 and QRA64 were designed for EME ("`moonbounce`") on +the VHF/UHF bands and have also proven very effective for worldwide +QRP communication on the HF bands. QRA64 has some advantages over +JT65, including better performance for EME on the higher microwave +bands. JT9 was originally designed for the HF and lower bands. Its +submode JT9A is 1 dB more sensitive than JT65 while using less than +10% of the bandwidth. JT4 offers a wide variety of tone spacings and +has proven highly effective for EME on microwave bands up to 24 GHz. +These four "`slow`" modes use one-minute timed sequences of +alternating transmission and reception, so a minimal QSO takes four to +six minutes — two or three transmissions by each station, one sending +in odd UTC minutes and the other even. FT8 is operationally similar +but four times faster (15-second T/R sequences) and less sensitive by +a few dB. FT4 is faster still (7.5 s T/R sequences) and especially +well-suited for radio contesting. FST4 was added to _WSJT-X_ in +version 2.3.0. It is intended especially for use on the LF and MF +bands, and already during its first few months of testing +intercontinental paths have been spanned many times on the 2200 and +630 m bands. Further details can be found in the following section, +<>. On the HF bands, +world-wide QSOs are possible with any of these modes using power +levels of a few watts (or even milliwatts) and compromise antennas. +On VHF bands and higher, QSOs are possible (by EME and other +propagation types) at signal levels 10 to 15 dB below those required +for CW. *ISCAT*, *MSK144*, and optionally submodes *JT9E-H* are "`fast`" protocols designed to take advantage of brief signal enhancements from @@ -51,15 +50,26 @@ messages up to 28 characters long, while MSK144 uses the same structured messages as the slow modes and optionally an abbreviated format with hashed callsigns. +Note that some of the modes classified as slow can have T/R sequence +lengths as short the fast modes. "`Slow`" in this sense implies +message frames being sent only once per transmission. The fast modes +in _WSJT-X_ send their message frames repeatedly, as many times as +will fit into the Tx sequence length. + *WSPR* (pronounced "`whisper`") stands for **W**eak **S**ignal -**P**ropagation **R**eporter. The WSPR protocol was designed for probing -potential propagation paths using low-power transmissions. WSPR -messages normally carry the transmitting station’s callsign, grid -locator, and transmitter power in dBm, and they can be decoded at -signal-to-noise ratios as low as -31 dB in a 2500 Hz bandwidth. WSPR -users with internet access can automatically upload reception -reports to a central database called {wsprnet} that provides a mapping -facility, archival storage, and many other features. +**P**ropagation **R**eporter. The WSPR protocol was designed for +probing potential propagation paths using low-power transmissions. +WSPR messages normally carry the transmitting station’s callsign, +grid locator, and transmitter power in dBm, and with two-minute +sequences they can be decoded at signal-to-noise ratios as low +as -31 dB in a 2500 Hz bandwidth. *FST4W* is designed for +similar purposes, but especially for use on LF and MF bands. +It includes optional sequence lengths as long as 30 minutes and +reaches sensitivity tresholds as low as -45 dB. Users +with internet access can automatically upload WSPR and FST4W +reception reports to a central database called {wsprnet} that +provides a mapping facility, archival storage, and many other +features. *Echo* mode allows you to detect and measure your own station's echoes from the moon, even if they are far below the audible threshold. diff --git a/doc/user_guide/en/new_features.adoc b/doc/user_guide/en/new_features.adoc index c653379f1..cd7c67869 100644 --- a/doc/user_guide/en/new_features.adoc +++ b/doc/user_guide/en/new_features.adoc @@ -1,107 +1,34 @@ +[[NEW_FEATURES]] === New in Version {VERSION} -*Improvements to decoders* +_WSJT-X 2.3.0_ introduces *FST4* and *FST4W*, new digital protocols +designed particularly for the LF and MF bands. Decoders for these +modes can take advantage of the very small Doppler spreads present at +these frequencies, even over intercontinental distances. As a +consequence, fundamental sensitivities of FST4 and FST4W are better +than other _WSJT-X_ modes with the same sequence lengths, approaching +the theoretical limits for their rates of information throughput. The +FST4 protocol is optimized for two-way QSOs, while FST4W is for +quasi-beacon transmissions of WSPR-style messages. FST4 and FST4W do +not require the strict, independent phase locking and time +synchronization of modes like EbNaut. -*FT4:* Corrected bugs that prevented AP (_a priori_) decoding and/or -multi-pass decoding in some circumstances. Improved and extended the -algorithm for AP decoding. +The new modes use 4-GFSK modulation and share common software for +encoding and decoding messages. FST4 offers T/R sequence lengths of +15, 30, 60, 120, 300, 900, and 1800 seconds, while FST4W omits the +lengths shorter than 120 s. Submodes are given names like FST4-60, +FST4W-300, etc., the appended numbers indicating sequence length in +seconds. Message payloads contain either 77 bits, as in FT4, FT8, and +MSK144, or 50 bits for the WSPR-like messages of FST4W. Message +formats displayed to the user are like those in the other 77-bit and +50-bit modes in _WSJT-X_. Forward error correction uses a low density +parity check (LDPC) code with 240 information and parity bits. +Transmissions consist of 160 symbols: 120 information-carrying symbols +of two bits each, interspersed with five groups of eight predefined +synchronization symbols. -*FT8:* Decoding is now spread over three intervals. The first starts -11.8 s into an Rx sequence and typically yields around 85% of the -possible decodes, so you see most decodes much earlier than before. A -second processing step starts at 13.5 s, and the final one at 14.7 s. -Overall decoding yield on crowded bands is improved by 10% or more. -Systems with receive latency greater than 0.2 s will see smaller -improvements, but will still see many decodes earlier than before. - -SNR estimates no longer saturate at +20 dB, and large signals in the -passband no longer cause the SNR of weaker signals to be biased low. -Times written to cumulative journal file ALL.TXT are now correct even -when the decode occurs after the T/R sequence boundary. In FT8 -DXpedition Mode, AP decoding is now implemented for Hounds when the -Fox has a compound callsign. - - -*JT4:* Formatting and display of averaged and Deep Search decodes has -been cleaned up and made consistent with other modes used for EME and -extreme weak-signal work on microwave bands. - -*JT65:* Many improvements have been made for averaged and Deep Search -decodes, and their display to the user. For details see <> -in the <> section of this guide. - -*WSPR:* Significant improvements have been made to the WSPR decoder's -sensitivity, its ability to cope with many signals in a crowded -sub-band, and its rate of undetected false decodes. We now use up to -three decoding passes. Passes 1 and 2 use noncoherent demodulation of -single symbols and allow for frequency drifts up to ±4 Hz in a -transmission. Pass 3 assumes no drift and does coherent block -detection of up to three symbols. It also applies bit-by-bit -normalization of the single-symbol bit metrics, a technique that has -proven helpful for signals corrupted by artifacts of the subtraction -of stronger signals and also for LF/MF signals heavily contaminated by -lightning transients. With these improvements the number of decodes -in a crowded WSPR sub-band typically increases by 10 to 15%. - -*New message format:* When *EU VHF Contest* is selected, the Tx2 and -Tx3 messages -- those conveying signal report, serial number, and -6-character locator -- now use hashcodes for both callsigns. This -change is *not* backward compatible with earlier versions of _WSJT-X_, so -all users of *EU VHF Contest* messages should be sure to upgrade to -version 2.2.0. See <> for details. - -*Minor enhancements and bug fixes* - -- *Save None* now writes no .wav files to disk, even temporarily. - -- An explicit entry for *WW Digi Contest* has been added to *Special - operating activities* on the *Settings | Advanced* tab. - -- The contest mode FT4 now always uses RR73 for the Tx4 message. - -- *Keyboard shortcuts* have been added as an aid to accessibility: -*Alt+R* sets Tx4 message to RR73, *Ctrl+R* sets it to RRR. - -- The *Status bar* now displays the number of decodes found in the -most recent Rx sequence. - -- As an aid for partial color-blindness, the "`inverted goal posts`" -marking Rx frequency on the Wide Graph's frequency scale are now in a -darker shade of green. - -=== Documentation Conventions - -In this manual the following icons call attention to particular types -of information: - -NOTE: *Notes* containing information that may be of interest to -particular classes of users. - -TIP: *Tips* on program features or capabilities that might otherwise be -overlooked. - -IMPORTANT: *Warnings* about usage that could lead to undesired -consequences. - -=== User Interface in Other Languages - -Thanks to Xavi Perez, EA3W, in cooperation with G4WJS, the _WSJT-X_ -user interface is now available the Catalan language. Spanish will -follow soon, and other languages when translations are made. When a -translated user interface is available for the computer's default -System Language, it will appear automatically on program startup. - -=== How You Can Contribute - -_WSJT-X_ is part of an open-source project released under the -{gnu_gpl} (GPLv3). If you have programming or documentation skills or -would like to contribute to the project in other ways, please make -your interests known to the development team. We especially encourage -those with translation skills to volunteer their help, either for -this _User Guide_ or for the program's user interface. - -The project's source-code repository can be found at {devrepo}, and -communication among the developers takes place on the email reflector -{devmail}. Bug reports and suggestions for new features, improvements -to the _WSJT-X_ User Guide, etc., may be sent there as well. You must -join the group before posting to the email list. +*We recommend that on the 2200 and 630 m bands FST4 should replace JT9 +for making 2-way QSOs, and FST4W should replace WSPR for propagation +tests*. Operating conventions on these LF and MF bands will +eventually determine the most useful T/R sequence lengths for each +type of operation. diff --git a/doc/user_guide/en/protocols.adoc b/doc/user_guide/en/protocols.adoc index e22911266..ae3b78478 100644 --- a/doc/user_guide/en/protocols.adoc +++ b/doc/user_guide/en/protocols.adoc @@ -14,11 +14,11 @@ Special cases allow other information such as add-on callsign prefixes aim is to compress the most common messages used for minimally valid QSOs into a fixed 72-bit length. -The information payload for FT4, FT8, and MSK144 contains 77 bits. -The 5 new bits added to the original 72 are used to flag special -message types signifying special message types used for FT8 DXpedition -Mode, contesting, nonstandard callsigns, and a few other -possibilities. +Information payloads for FST4, FT4, FT8, and MSK144 contain 77 bits. +The 5 additional bits are used to flag special message types used for +nonstandard callsigns, contest exchanges, FT8 DXpedition Mode, and a +few other possibilities. Full details have been published in QEX, see +{ft4_ft8_protocols}. A standard amateur callsign consists of a one- or two-character prefix, at least one of which must be a letter, followed by a digit @@ -54,11 +54,6 @@ were the callsigns `E9AA` through `E9ZZ`. Upon reception they are converted back to the form `CQ AA` through `CQ ZZ`, for display to the user. -The FT4, FT8, and MSK144 protocols use different lossless compression -algorithms with features that generate and recognize special messages -used for contesting and other special purposes. Full details have -been published in QEX, see {ft4_ft8_protocols}. - To be useful on channels with low signal-to-noise ratio, this kind of lossless message compression requires use of a strong forward error correcting (FEC) code. Different codes are used for each mode. @@ -71,6 +66,20 @@ _WSJT-X_ modes have continuous phase and constant envelope. [[SLOW_MODES]] === Slow Modes +[[FST4PRO]] +==== FST4 + +FST4 offers T/R sequence lengths of 15, 30, 60, 120, 300, 900, and +1800 seconds. Submodes are given names like FST4-60, FST4-120, etc., +the appended numbers indicating sequence length in seconds. A 24-bit +cyclic redundancy check (CRC) is appended to the 77-bit message +payload to create a 101-bit message-plus-CRC word. Forward error +correction is accomplished using a (240,101) LDPC code. Transmissions +consist of 160 symbols: 120 information-carrying symbols of two bits +each, interspersed with five groups of eight predefined +synchronization symbols. Modulation uses 4-tone frequency-shift +keying (4-GFSK) with Gaussian smoothing of frequency transitions. + [[FT4PRO]] ==== FT4 @@ -225,6 +234,20 @@ information the least significant. Thus, on a 0 – 3 scale, the tone for a given symbol is twice the value (0 or 1) of the data bit, plus the sync bit. +[[FST4WPRO]] +==== FST4W + +FST4W offers T/R sequence lengths of 120, 300, 900, and 1800 seconds. +Submodes are given names like FST4W-120, FST4W-300, etc., the appended +numbers indicating sequence length in seconds. Message payloads +contain 50 bits, and a 24-bit cyclic redundancy check (CRC) appended +to create a 74-bit message-plus-CRC word. Forward error correction +is accomplished using a (240,74) LDPC code. Transmissions consist of +160 symbols: 120 information-carrying symbols of two bits each, +interspersed with five groups of eight predefined synchronization +symbols. Modulation uses 4-tone frequency-shift keying (4-GFSK) with +Gaussian smoothing of frequency transitions. + [[SLOW_SUMMARY]] ==== Summary @@ -239,17 +262,28 @@ which the probability of decoding is 50% or higher. [[SLOW_TAB]] .Parameters of Slow Modes -[width="90%",cols="3h,^3,^2,^1,^2,^2,^2,^2,^2,^2",frame=topbot,options="header"] +[width="100%",cols="3h,^3,^2,^1,^2,^2,^2,^2,^2,^2",frame=topbot,options="header"] |=============================================================================== |Mode |FEC Type |(n,k) | Q|Modulation type|Keying rate (Baud)|Bandwidth (Hz) |Sync Energy|Tx Duration (s)|S/N Threshold (dB) -|FT4 |LDPC, r=1/2|(174,91)| 4| 4-GFSK| 20.8333 | 83.3 | 0.15| 5.04 | -17.5 -|FT8 |LDPC, r=1/2|(174,91)| 8| 8-GFSK| 6.25 | 50.0 | 0.27| 12.6 | -21 +|FST4-15 |LDPC | (240,101)| 4| 4-GFSK| 16.67 | 67.7 | 0.25| 9.6 | -20.7 +|FST4-30 |LDPC | (240,101)| 4| 4-GFSK| 7.14 | 28.6 | 0.25| 22.4 | -24.2 +|FST4-60 |LDPC | (240,101)| 4| 4-GFSK| 3.09 | 12.4 | 0.25| 51.8 | -28.1 +|FST4-120 |LDPC | (240,101)| 4| 4-GFSK| 1.46 | 5.9 | 0.25| 109.3 | -31.3 +|FST4-300 |LDPC | (240,101)| 4| 4-GFSK| 0.558 | 2.2 | 0.25| 286.7 | -35.3 +|FST4-900 |LDPC | (240,101)| 4| 4-GFSK| 0.180 | 0.72 | 0.25| 887.5 | -40.2 +|FST4-1800 |LDPC | (240,101)| 4| 4-GFSK| 0.089 | 0.36 | 0.25| 1792.0| -43.2 +|FT4 |LDPC |(174,91)| 4| 4-GFSK| 20.83 | 83.3 | 0.15| 5.04 | -17.5 +|FT8 |LDPC |(174,91)| 8| 8-GFSK| 6.25 | 50.0 | 0.27| 12.6 | -21 |JT4A |K=32, r=1/2|(206,72)| 2| 4-FSK| 4.375| 17.5 | 0.50| 47.1 | -23 -|JT9A |K=32, r=1/2|(206,72)| 8| 9-FSK| 1.736| 15.6 | 0.19| 49.0 | -27 +|JT9A |K=32, r=1/2|(206,72)| 8| 9-FSK| 1.736| 15.6 | 0.19| 49.0 | -26 |JT65A |Reed Solomon|(63,12) |64|65-FSK| 2.692| 177.6 | 0.50| 46.8 | -25 |QRA64A|Q-ary Repeat Accumulate|(63,12) |64|64-FSK|1.736|111.1|0.25|48.4| -26 | WSPR |K=32, r=1/2|(162,50)| 2| 4-FSK| 1.465| 5.9 | 0.50|110.6 | -31 +|FST4W-120 |LDPC | (240,74)| 4| 4-GFSK| 1.46 | 5.9 | 0.25| 109.3 | -32.8 +|FST4W-300 |LDPC | (240,74)| 4| 4-GFSK| 0.558 | 2.2 | 0.25| 286.7 | -36.8 +|FST4W-900 |LDPC | (240,74)| 4| 4-GFSK| 0.180 | 0.72 | 0.25| 887.5 | -41.7 +|FST4W-1800 |LDPC | (240,74)| 4| 4-GFSK| 0.089 | 0.36 | 0.25| 1792.0| -44.8 |=============================================================================== Submodes of JT4, JT9, JT65, and QRA64 offer wider tone spacings for @@ -259,12 +293,10 @@ threshold sensitivities of the various submodes when spreading is comparable to tone spacing. [[SLOW_SUBMODES]] -.Parameters of Slow Submodes +.Parameters of Slow Submodes with Selectable Tone Spacings [width="50%",cols="h,3*^",frame=topbot,options="header"] |===================================== |Mode |Tone Spacing |BW (Hz)|S/N (dB) -|FT4 |20.8333 | 83.3 |-17.5 -|FT8 |6.25 | 50.0 |-21 |JT4A |4.375| 17.5 |-23 |JT4B |8.75 | 30.6 |-22 |JT4C |17.5 | 56.9 |-21 @@ -272,7 +304,7 @@ comparable to tone spacing. |JT4E |78.75| 240.6 |-19 |JT4F |157.5| 476.9 |-18 |JT4G |315.0| 949.4 |-17 -|JT9A |1.736| 15.6 |-27 +|JT9A |1.736| 15.6 |-26 |JT9B |3.472| 29.5 |-26 |JT9C |6.944| 57.3 |-25 |JT9D |13.889| 112.8 |-24 diff --git a/doc/user_guide/en/tutorial-example5.adoc b/doc/user_guide/en/tutorial-example5.adoc new file mode 100644 index 000000000..3b979ce5f --- /dev/null +++ b/doc/user_guide/en/tutorial-example5.adoc @@ -0,0 +1,23 @@ +Do not confuse FST4 with FT4, which has a very different purpose! +FST4 is is designed for making 2-way QSOs on the LF and MF bands. +Operation with FST4 is similar to that with other _WSJT-X_ modes: most +on-screen controls, auto-sequencing, and other features behave in +familiar ways. However, operating conventions on the 2200 and 630 m +bands have made some additional user controls desirable. Spin boxes +labeled *F Low* and *F High* set lower and upper frequency limits used +by the FST4 decoder, and these limits are marked by dark green +angle-bracket symbols *< >* on the Wide Graph frequency scale: + +image::FST4_Decoding_Limits.png[align="center"] + +{empty} + + +image::FST4_center.png[align="center"] + +It's best to keep the decoding range fairly small, since QRM and +transmissions in other modes or sequence lengths will slow down the +decoding process (and of course will be undecodable). By checking +*Single decode* on the the *File | Settings | General* tab, you can +further limit the decoding range to the setting of *F Tol* on +either side of *Rx Freq*. + diff --git a/doc/user_guide/en/tutorial-example6.adoc b/doc/user_guide/en/tutorial-example6.adoc new file mode 100644 index 000000000..4fe4804e3 --- /dev/null +++ b/doc/user_guide/en/tutorial-example6.adoc @@ -0,0 +1,18 @@ +FST4W is used in the same way as WSPR, but FST4W has significant +advantages for use on the 2200 and 630 m bands. By default the +central *Rx Freq* is 1500 Hz and *F Tol* is 100 Hz, so the active +decoding range is 1400 to 1600 Hz. However, for added flexibility you +can select different center frequencies and *F Tol* values. We expect +that usage conventions will soon be established for FST4W activity on +2200 and 630 m. + +A new drop-down control below *F Tol* offers a round-robin mode for +scheduling FST4W transmissions: + +image::FST4W_RoundRobin.png[align="center"] + +If three operators agree in advance to select the options *1/3*, +*2/3*, and *3/3*, for example, their FST4W transmissions will occur in +a fixed sequence with no two stations transmitting simultaneously. +Sequence 1 is the first sequence after 00:00 UTC. For WSPR-like +scheduling behavior, you should select *Random* with this control. diff --git a/doc/user_guide/en/wsjtx-main.adoc b/doc/user_guide/en/wsjtx-main.adoc index b04291136..9bed15dc6 100644 --- a/doc/user_guide/en/wsjtx-main.adoc +++ b/doc/user_guide/en/wsjtx-main.adoc @@ -32,6 +32,9 @@ include::introduction.adoc[] [[NEW_FEATURES]] include::new_features.adoc[] +[[INTRO_SUBSECTIONS]] +include::intro_subsections.adoc[] + [[SYSREQ]] == System Requirements include::system-requirements.adoc[] @@ -162,6 +165,14 @@ include::tutorial-example3.adoc[] === FT4 include::tutorial-example4.adoc[] +[[TUT_EX5]] +=== FST4 +include::tutorial-example5.adoc[] + +[[TUT_EX6]] +=== FST4W +include::tutorial-example6.adoc[] + [[MAKE_QSOS]] == Making QSOs include::make-qso.adoc[] diff --git a/widgets/astro.cpp b/widgets/astro.cpp index cf4a05274..87ca7224f 100644 --- a/widgets/astro.cpp +++ b/widgets/astro.cpp @@ -269,14 +269,14 @@ void Astro::check_split () } } -void Astro::on_rbFullTrack_clicked() +void Astro::on_rbFullTrack_clicked(bool) { m_DopplerMethod = 1; check_split (); Q_EMIT tracking_update (); } -void Astro::on_rbOnDxEcho_clicked() //on_rbOnDxEcho_clicked(bool checked) +void Astro::on_rbOnDxEcho_clicked(bool) { m_DopplerMethod = 4; check_split (); @@ -287,28 +287,28 @@ void Astro::on_rbOnDxEcho_clicked() //on_rbOnDxEcho_clicked(bool checked) Q_EMIT tracking_update (); } -void Astro::on_rbOwnEcho_clicked() +void Astro::on_rbOwnEcho_clicked(bool) { m_DopplerMethod = 3; check_split (); Q_EMIT tracking_update (); } -void Astro::on_rbCallDx_clicked() +void Astro::on_rbCallDx_clicked(bool) { m_DopplerMethod = 5; check_split (); Q_EMIT tracking_update (); } -void Astro::on_rbConstFreqOnMoon_clicked() +void Astro::on_rbConstFreqOnMoon_clicked(bool) { m_DopplerMethod = 2; check_split (); Q_EMIT tracking_update (); } -void Astro::on_rbNoDoppler_clicked() +void Astro::on_rbNoDoppler_clicked(bool) { m_DopplerMethod = 0; Q_EMIT tracking_update (); diff --git a/widgets/astro.h b/widgets/astro.h index 937c11494..a2474072f 100644 --- a/widgets/astro.h +++ b/widgets/astro.h @@ -55,12 +55,12 @@ protected: void closeEvent (QCloseEvent *) override; private slots: - void on_rbConstFreqOnMoon_clicked(); - void on_rbFullTrack_clicked(); - void on_rbOwnEcho_clicked(); - void on_rbNoDoppler_clicked(); - void on_rbOnDxEcho_clicked(); - void on_rbCallDx_clicked(); + void on_rbConstFreqOnMoon_clicked(bool); + void on_rbFullTrack_clicked(bool); + void on_rbOwnEcho_clicked(bool); + void on_rbNoDoppler_clicked(bool); + void on_rbOnDxEcho_clicked(bool); + void on_rbCallDx_clicked(bool); void on_cbDopplerTracking_toggled(bool); private: diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 2806593a2..a5650f68c 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1044,14 +1044,14 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, void MainWindow::not_GA_warning_message () { - // MessageBox::critical_message (this, - // "This is a pre-release version of WSJT-X 2.2.0 made\n" - // "available for testing purposes. By design it will\n" - // "be nonfunctional after 0000 UTC on June 10, 2020."); - // auto now = QDateTime::currentDateTimeUtc (); - // if (now >= QDateTime {{2020, 6, 10}, {0, 0}, Qt::UTC}) { - // Q_EMIT finished (); - // } + MessageBox::critical_message (this, + "This is a pre-release version of WSJT-X 2.3.0 made\n" + "available for testing purposes. By design it will\n" + "be nonfunctional after 0000 UTC on Nov 17, 2020."); + auto now = QDateTime::currentDateTimeUtc (); + if (now >= QDateTime {{2020, 11, 17}, {0, 0}, Qt::UTC}) { + Q_EMIT finished (); + } } void MainWindow::initialize_fonts () @@ -7459,7 +7459,7 @@ void MainWindow::transmitDisplay (bool transmitting) auto QSY_allowed = !transmitting or m_config.tx_QSY_allowed () or !m_config.split_mode (); if (ui->cbHoldTxFreq->isChecked ()) { - ui->RxFreqSpinBox->setEnabled (QSY_allowed); + ui->TxFreqSpinBox->setEnabled (QSY_allowed); ui->pbT2R->setEnabled (QSY_allowed); }