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. -