diff --git a/doc/img/ChirpChatMod_payload.png b/doc/img/ChirpChatMod_payload.png index 9304075ce..3b8224923 100644 Binary files a/doc/img/ChirpChatMod_payload.png and b/doc/img/ChirpChatMod_payload.png differ diff --git a/doc/img/ChirpChatMod_payload.xcf b/doc/img/ChirpChatMod_payload.xcf index ac937827b..249411ae8 100644 Binary files a/doc/img/ChirpChatMod_payload.xcf and b/doc/img/ChirpChatMod_payload.xcf differ diff --git a/doc/img/ChirpChatMod_plugin.png b/doc/img/ChirpChatMod_plugin.png index 6479324ab..2665e4873 100644 Binary files a/doc/img/ChirpChatMod_plugin.png and b/doc/img/ChirpChatMod_plugin.png differ diff --git a/doc/img/ChirpChatMod_plugin.xcf b/doc/img/ChirpChatMod_plugin.xcf index cbcd7a39a..7baf945be 100644 Binary files a/doc/img/ChirpChatMod_plugin.xcf and b/doc/img/ChirpChatMod_plugin.xcf differ diff --git a/plugins/channelrx/demodchirpchat/chirpchatdemoddecodertty.cpp b/plugins/channelrx/demodchirpchat/chirpchatdemoddecodertty.cpp index 6c746f624..83b355757 100644 --- a/plugins/channelrx/demodchirpchat/chirpchatdemoddecodertty.cpp +++ b/plugins/channelrx/demodchirpchat/chirpchatdemoddecodertty.cpp @@ -18,14 +18,14 @@ #include "chirpchatdemoddecodertty.h" const char ChirpChatDemodDecoderTTY::ttyLetters[32] = { - '\0', 'E', '\n', 'A', ' ', 'S', 'I', 'U', + '_', 'E', '\n', 'A', ' ', 'S', 'I', 'U', '\r', 'D', 'R', 'J', 'N', 'F', 'C', 'K', 'T', 'Z', 'L', 'W', 'H', 'Y', 'P', 'Q', 'O', 'B', 'G', ' ', 'M', 'X', 'V', ' ' }; const char ChirpChatDemodDecoderTTY::ttyFigures[32] = { // U.S. standard - '\0', '3', '\n', '-', ' ', '\a', '8', '7', + '_', '3', '\n', '-', ' ', '\a', '8', '7', '\r', '$', '4', '\'', ',', '!', ':', '(', '5', '"', ')', '2', '#', '6', '0', '1', '9', '?', '&', ' ', '.', '/', ';', ' ' diff --git a/plugins/channelrx/demodchirpchat/chirpchatdemodsink.cpp b/plugins/channelrx/demodchirpchat/chirpchatdemodsink.cpp index a61297507..a7ac49d58 100644 --- a/plugins/channelrx/demodchirpchat/chirpchatdemodsink.cpp +++ b/plugins/channelrx/demodchirpchat/chirpchatdemodsink.cpp @@ -247,7 +247,7 @@ void ChirpChatDemodSink::processSample(const Complex& ci) m_fftSFD->transform(); m_fftCounter = 0; - double magsq, magsqSFD; + double magsqPre, magsqSFD; double magsqTotal, magsqSFDTotal; unsigned int imaxSFD = argmax( @@ -264,7 +264,7 @@ void ChirpChatDemodSink::processSample(const Complex& ci) m_fft->out(), m_fftInterpolation, m_fftLength, - magsq, + magsqPre, magsqSFDTotal, m_spectrumBuffer, m_fftInterpolation @@ -273,7 +273,7 @@ void ChirpChatDemodSink::processSample(const Complex& ci) m_preambleHistory[m_chirpCount] = imax; m_chirpCount++; - if (magsq < magsqSFD) // preamble drop + if (magsqPre < magsqSFD) // preamble drop { m_magsqTotalAvg(magsqSFDTotal); @@ -288,11 +288,11 @@ void ChirpChatDemodSink::processSample(const Complex& ci) { m_syncWord = round(m_preambleHistory[m_chirpCount-2] / 8.0); m_syncWord += 16 * round(m_preambleHistory[m_chirpCount-3] / 8.0); - qDebug("ChirpChatDemodSink::processSample: SFD found: up: %4u|%11.6f - down: %4u|%11.6f sync: %x", imax, magsq, imaxSFD, magsqSFD, m_syncWord); + qDebug("ChirpChatDemodSink::processSample: SFD found: pre: %4u|%11.6f - sfd: %4u|%11.6f sync: %x", imax, magsqPre, imaxSFD, magsqSFD, m_syncWord); } else { - qDebug("ChirpChatDemodSink::processSample: SFD found: up: %4u|%11.6f - down: %4u|%11.6f", imax, magsq, imaxSFD, magsqSFD); + qDebug("ChirpChatDemodSink::processSample: SFD found: pre: %4u|%11.6f - sfd: %4u|%11.6f", imax, magsqPre, imaxSFD, magsqSFD); } int sadj = 0; @@ -328,9 +328,9 @@ void ChirpChatDemodSink::processSample(const Complex& ci) m_spectrumSink->feed(m_spectrumBuffer, m_nbSymbols); } - qDebug("ChirpChatDemodSink::processSample: SFD search: up: %4u|%11.6f - down: %4u|%11.6f", imax, magsq, imaxSFD, magsqSFD); + qDebug("ChirpChatDemodSink::processSample: SFD search: pre: %4u|%11.6f - sfd: %4u|%11.6f", imax, magsqPre, imaxSFD, magsqSFD); m_magsqTotalAvg(magsqTotal); - m_magsqOnAvg(magsq); + m_magsqOnAvg(magsqPre); } } } diff --git a/plugins/channelrx/demodchirpchat/readme.md b/plugins/channelrx/demodchirpchat/readme.md index 7ec1ab127..3daa646a6 100644 --- a/plugins/channelrx/demodchirpchat/readme.md +++ b/plugins/channelrx/demodchirpchat/readme.md @@ -33,7 +33,7 @@ This is the total power in the FFT of the de-chirped signal in dB. When no Chirp This is the bandwidth of the ChirpChat signal. Similarly to LoRa the signal sweeps between the lower and the upper frequency of this bandwidth. The sample rate of the ChirpChat signal in seconds is exactly one over this bandwidth in Hertz. -In the LoRa standard there are 2 base bandwidths: 500 and 333.333 kHz. A 400 kHz base has been added. Possible bandwidths are obtained by a division of these base bandwidths by a power of two from 1 to 64. Extra divisor of 128 is provided to achieve smaller bandwidths that can fit in a SSB channel. Finally special divisors from a 384 kHz base are provided to allow even more narrow bandwidths +In the LoRa standard there are 2 base bandwidths: 500 and 333.333 kHz. A 400 kHz base has been added. Possible bandwidths are obtained by a division of these base bandwidths by a power of two from 1 to 64. Extra divisor of 128 is provided to achieve smaller bandwidths that can fit in a SSB channel. Finally special divisors from a 384 kHz base are provided to allow even more narrow bandwidths. Thus available bandwidths are: diff --git a/plugins/channeltx/modchirpchat/readme.md b/plugins/channeltx/modchirpchat/readme.md index 7cd0435c9..bee12529e 100644 --- a/plugins/channeltx/modchirpchat/readme.md +++ b/plugins/channeltx/modchirpchat/readme.md @@ -83,10 +83,6 @@ This is the log2 of the number of frequency shifts separating two consecutive sh In practice it is difficult on the Rx side to make correct decodes if only one FFT bin is used to code one symbol (DE=0). It is therefore recommended to use a factor of 1 or more. -

7: Sync word

- -This is a LoRa specific feature and is the sync word (byte) to transmit entered as a 2 nibble hexadecimal number. -

8: Number of preamble chirps

This is the number of preamble chirps to transmit that are used for the Rx to synchronize. The LoRa standard specifies it can be between 2 and 65535. Here it is limited to the 4 to 20 range that corresponds to realistic values. The RN2483 uses 6 preamble chirps. You may use 12 preamble chirps or more to facilitate signal acquisition with poor SNR on the Rx side. @@ -193,6 +189,10 @@ This applies the QSO elements (10.5 to 10.8) to the placeholders in messages to - **73**: `%1 %2 73`: `%1` is your call (10.6) and `%2` is my call (10.5) - **QSO text**: `%1 %2 %3`: `%1` is your call (10.6), `%2` is my call (10.5) and `%3` is the text specified as the free form text message +

10.14: Sync word

+ +This is a LoRa specific feature and is the sync word (byte) to transmit entered as a 2 nibble hexadecimal number. +

11: Message text

This window lets you edit the message selected in (10.9). You can use `%n` placeholders that depend on the type of message selected.