diff --git a/plugins/channelrx/demodmeshtastic/CMakeLists.txt b/plugins/channelrx/demodmeshtastic/CMakeLists.txt
index 02fdbac80..39e01c39c 100644
--- a/plugins/channelrx/demodmeshtastic/CMakeLists.txt
+++ b/plugins/channelrx/demodmeshtastic/CMakeLists.txt
@@ -1,10 +1,5 @@
project(meshtastic)
-if (FT8_SUPPORT)
- set(meshtastic_FT8_LIB ft8)
- set(meshtastic_FT8_INCLUDE ${CMAKE_SOURCE_DIR}/ft8)
-endif()
-
set(meshtastic_SOURCES
meshtasticdemod.cpp
meshtasticdemodsettings.cpp
@@ -31,7 +26,6 @@ set(meshtastic_HEADERS
include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
- ${meshtastic_FT8_INCLUDE}
${CMAKE_SOURCE_DIR}/modemmeshtastic
)
@@ -73,7 +67,6 @@ target_link_libraries(${TARGET_NAME} PRIVATE
sdrbase
${TARGET_LIB_GUI}
swagger
- ${meshtastic_FT8_LIB}
modemmeshtastic
)
diff --git a/plugins/channelrx/demodmeshtastic/meshtasticdemodgui.cpp b/plugins/channelrx/demodmeshtastic/meshtasticdemodgui.cpp
index 898035031..e84dede9c 100644
--- a/plugins/channelrx/demodmeshtastic/meshtasticdemodgui.cpp
+++ b/plugins/channelrx/demodmeshtastic/meshtasticdemodgui.cpp
@@ -1409,10 +1409,8 @@ void MeshtasticDemodGUI::applyMeshtasticProfileFromSelection()
ui->deBitsText->setText(tr("%1").arg(m_settings.m_deBits));
ui->preambleChirps->setValue(m_settings.m_preambleChirps);
ui->preambleChirpsText->setText(tr("%1").arg(m_settings.m_preambleChirps));
- ui->header->setChecked(m_settings.m_hasHeader);
ui->fecParity->setValue(m_settings.m_nbParityBits);
ui->fecParityText->setText(tr("%1").arg(m_settings.m_nbParityBits));
- ui->crc->setChecked(m_settings.m_hasCRC);
blockApplySettings(false);
updateControlAvailabilityHints();
@@ -1746,14 +1744,11 @@ MeshtasticDemodGUI::MeshtasticDemodGUI(PluginAPI* pluginAPI, DeviceUISet *device
ui->eomSquelchLabel->setToolTip(tr("End-of-message squelch level."));
ui->eomSquelchText->setToolTip(tr("Current end-of-message squelch value."));
ui->messageLength->setToolTip(tr("Maximum payload symbol length when auto is disabled."));
- ui->messageLengthAuto->setToolTip(tr("Auto-detect payload symbol length from headers."));
ui->messageLengthLabel->setToolTip(tr("Maximum payload symbol length."));
ui->messageLengthText->setToolTip(tr("Current payload symbol length setting."));
- ui->header->setToolTip(tr("Assume explicit LoRa header mode."));
ui->fecParity->setToolTip(tr("LoRa coding rate parity denominator (CR)."));
ui->fecParityLabel->setToolTip(tr("LoRa coding rate parity setting."));
ui->fecParityText->setToolTip(tr("Current coding rate parity value."));
- ui->crc->setToolTip(tr("Expect payload CRC."));
ui->packetLength->setToolTip(tr("Fixed packet length for implicit-header mode."));
ui->packetLengthLabel->setToolTip(tr("Fixed packet length for implicit header mode."));
ui->packetLengthText->setToolTip(tr("Current fixed packet length."));
@@ -1780,7 +1775,6 @@ MeshtasticDemodGUI::MeshtasticDemodGUI(PluginAPI* pluginAPI, DeviceUISet *device
ui->snrLabel->setToolTip(tr("Estimated signal-to-noise ratio."));
ui->snrText->setToolTip(tr("Current estimated SNR."));
ui->sUnits->setToolTip(tr("Unit for SNR."));
- ui->loraLabel->setToolTip(tr("LoRa header/payload status indicators."));
ui->symbolsCodewordsSeparator->setToolTip(tr("Separator between symbol and codeword counters."));
ui->messageText->setReadOnly(true);
@@ -1846,8 +1840,6 @@ void MeshtasticDemodGUI::updateControlAvailabilityHints()
const QString messageLengthAutoEnabledTip = tr("Auto-detect payload symbol length from headers.");
const QString messageLengthAutoDisabledTip = tr("Disabled in LoRa explicit-header mode. Payload length is decoded from the LoRa header.");
- ui->messageLengthAuto->setEnabled(!explicitHeaderMode);
- ui->messageLengthAuto->setToolTip(explicitHeaderMode ? messageLengthAutoDisabledTip : messageLengthAutoEnabledTip);
const QString messageLengthDefaultTip = tr("Maximum payload symbol length when auto is disabled.");
const QString messageLengthHeaderTip = tr("Maximum payload symbol clamp in LoRa explicit-header mode. Header still provides nominal payload length.");
@@ -1858,7 +1850,6 @@ void MeshtasticDemodGUI::updateControlAvailabilityHints()
const bool headerControlsEnabled = !m_settings.m_hasHeader;
ui->fecParity->setEnabled(headerControlsEnabled);
- ui->crc->setEnabled(headerControlsEnabled);
ui->packetLength->setEnabled(headerControlsEnabled);
const QString fecParityEnabledTip = tr("LoRa coding rate parity denominator (CR).");
@@ -1870,7 +1861,6 @@ void MeshtasticDemodGUI::updateControlAvailabilityHints()
const QString crcEnabledTip = tr("Expect payload CRC.");
const QString crcDisabledTip = tr("Disabled in explicit-header mode. CRC expectation is decoded from the LoRa header.");
- ui->crc->setToolTip(headerControlsEnabled ? crcEnabledTip : crcDisabledTip);
const QString packetLengthEnabledTip = tr("Fixed packet length for implicit-header mode.");
const QString packetLengthDisabledTip = tr("Disabled in explicit-header mode. Payload length is decoded from the LoRa header.");
@@ -1912,18 +1902,15 @@ void MeshtasticDemodGUI::displaySettings()
ui->udpSend->setChecked(m_settings.m_sendViaUDP);
ui->udpAddress->setText(m_settings.m_udpAddress);
ui->udpPort->setText(tr("%1").arg(m_settings.m_udpPort));
- ui->header->setChecked(m_settings.m_hasHeader);
if (!m_settings.m_hasHeader)
{
ui->fecParity->setValue(m_settings.m_nbParityBits);
ui->fecParityText->setText(tr("%1").arg(m_settings.m_nbParityBits));
- ui->crc->setChecked(m_settings.m_hasCRC);
ui->packetLength->setValue(m_settings.m_packetLength);
ui->spectrumGUI->setFFTSize(m_settings.m_spreadFactor);
}
- ui->messageLengthAuto->setChecked(m_settings.m_autoNbSymbolsMax);
ui->invertRamps->setChecked(m_settings.m_invertRamps);
displaySquelch();
@@ -3058,7 +3045,6 @@ void MeshtasticDemodGUI::showLoRaMessage(const Message& message)
{
ui->fecParity->setValue(msg.getNbParityBits());
ui->fecParityText->setText(tr("%1").arg(msg.getNbParityBits()));
- ui->crc->setChecked(msg.getHasCRC());
ui->packetLength->setValue(msg.getPacketSize());
ui->packetLengthText->setText(tr("%1").arg(msg.getPacketSize()));
packetLength = msg.getPacketSize();
diff --git a/plugins/channelrx/demodmeshtastic/meshtasticdemodgui.ui b/plugins/channelrx/demodmeshtastic/meshtasticdemodgui.ui
index d91f8301f..796846ce8 100644
--- a/plugins/channelrx/demodmeshtastic/meshtasticdemodgui.ui
+++ b/plugins/channelrx/demodmeshtastic/meshtasticdemodgui.ui
@@ -6,13 +6,13 @@
0
0
- 579
+ 605
680
- 532
+ 605
680
@@ -30,7 +30,7 @@
0
10
- 571
+ 601
91
@@ -565,8 +565,8 @@
0
100
- 572
- 301
+ 601
+ 316
@@ -706,63 +706,6 @@
- -
-
-
- Set message length in symbols automatically to provided message length (LoRa and FT only)
-
-
- Auto
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
- -
-
-
-
-
-
- LoRa
-
-
-
- -
-
-
- Expect header (explicit) - disables manual FEC and CRC
-
-
- HDR
-
-
-
- -
-
-
-
- 5
- 0
-
-
-
- Qt::Vertical
-
-
-
-
@@ -815,29 +758,6 @@
- -
-
-
- CRC appended to payload
-
-
- CRC
-
-
-
- -
-
-
-
- 5
- 0
-
-
-
- Qt::Vertical
-
-
-
-
@@ -878,13 +798,7 @@
-
-
-
-
- 5
- 0
-
-
+
Qt::Vertical
@@ -980,7 +894,7 @@
-
-
+
Qt::Horizontal
@@ -1177,7 +1091,7 @@
0
410
- 571
+ 601
260
diff --git a/plugins/channelrx/demodmeshtastic/readme.md b/plugins/channelrx/demodmeshtastic/readme.md
index e8b5e693d..143288db8 100644
--- a/plugins/channelrx/demodmeshtastic/readme.md
+++ b/plugins/channelrx/demodmeshtastic/readme.md
@@ -180,15 +180,6 @@ When you check this option it inverts the direction of the chirps thus becoming

-
A.1: Coding scheme
-
-In addition to the LoRa standard plain ASCII and TTY have been added for pure text messages. ASCII and TTY have no form of FEC.
-
- - **LoRa**: LoRa standard (see LoRa documentation)
- - **ASCII**: This is plain 7 bit ASCII coded characters. It needs exactly 7 effective bits per symbols (SF - DE = 7)
- - **TTY**: Baudot (Teletype) 5 bit encoded characters. It needs exactly 5 effective bits per symbols (SF - DE = 5)
- - **FT**: FT8/4 protocol. The 174 payload bits are packed into chirp symbols with zero padding if necessary
-
A.2: Start/Stop decoder
You can suspend and resume decoding activity using this button. This is useful if you want to freeze the payload content display.
@@ -203,43 +194,23 @@ During payload detection the maximum power value in the FFT (at argmax) Pma
This is the expected number of symbols in a message. When a header is present in the payload it should match the size given in the header (A.11).
-A.5: Auto message length
-
-LoRa and DT modes only. Set message length (A.4) equal to the number of symbols specified (or implied for FT) in the message just received. When messages are sent repeatedly this helps adjusting in possible message length changes automatically.
-
-A.6: Sync word
-
-This is the message 1 byte sync word displayed in hexadecimal.
-
-A.7: Expect header in message
-
-LoRa mode only. Use this checkbox to tell if you expect or not a header in the message.
-
A.8: Number of FEC parity bits
LoRa mode only. This is the number of parity bits in the Hamming code used in the FEC. The standard values are 1 to 4 for H(4,5) to H(4,8) encoding. 0 is a non-standard value to specify no FEC.
-When a header is expected this control is disabled because the value used is the one found in the header.
-
-In FT8 mode there is no FEC as FEC is handled within the FT payload (with LDPC)
-
-A.9: Payload CRC presence
-
-LoRa mode: Use this checkbox to tell if you expect a 2 byte CRC at the end of the payload. FT mode: there is always a CRC.
-
-LoRa: When a header is expected this control is disabled because the value used is the one found in the header.
+This control is disabled because the value used is the one found in the header.
A.10: Packet length
-This is the expected packet length in bytes without header and CRC. For FT this is the number of symbols.
+This is the expected packet length in bytes without header and CRC.
-LoRa: When a header is expected this control is disabled because the value used is the one found in the header.
+This control is disabled because the value used is the one found in the header.
A.11: Number of symbols and codewords
This is the number of symbols (left of slash) and codewords (right of slash) used for the payload including header and CRC.
-A.12: Header FEC indicator (LoRa)
+A.12: Header FEC indicator
Header uses a H(4,8) FEC. The color of the indicator gives the status of header parity checks:
@@ -248,27 +219,27 @@ Header uses a H(4,8) FEC. The color of the indicator gives the status of header
- **Blue**: recovered error
- **Green**: no errors
-A.13: Header CRC indicator (LoRa)
+A.13: Header CRC indicator
The header has a one byte CRC. The color of this indicator gives the CRC status:
- **Green**: CRC OK
- **Red**: CRC error
-A.14: Payload FEC indicator (LoRa and FT)
+A.14: Payload FEC indicator
The color of the indicator gives the status of payload parity checks:
- **Grey**: undefined
- **Red**: unrecoverable error. H(4,7) cannot distinguish between recoverable and unrecoverable error. Therefore this is never displayed for H(4,7). For FT it means that LDPC decoding failed.
- - **Blue**: recovered error (LoRa only)
+ - **Blue**: recovered error
- **Green**: no errors
-A.15: Payload CRC indicator (LoRa and FT)
+A.15: Payload CRC indicator
The payload can have a two byte CRC. The color of this indicator gives the CRC status:
- - **Grey**: No CRC (LoRa)
+ - **Grey**: No CRC
- **Green**: CRC OK
- **Red**: CRC error
@@ -276,9 +247,11 @@ The payload can have a two byte CRC. The color of this indicator gives the CRC s
Use this push button to clear the message window (12)
+Live button
+
12: Message window
-This is where the message and status data are displayed. The display varies if the coding scheme is purely text based (TTY, ASCII, FT) or text/binary mixed based (LoRa). The text vs binary consideration concerns the content of the message not the way it is transmitted on air that is by itself binary.
+This is where the message and status data are displayed. The display is text/binary mixed. The text vs binary consideration concerns the content of the message not the way it is transmitted on air that is by itself binary.
12.a: Text messages