From 600b940fad7eb7804769284a6b24ef5f54ef630e Mon Sep 17 00:00:00 2001 From: sh123 Date: Fri, 15 Oct 2021 17:25:22 +0300 Subject: [PATCH] Created Modem control using KISS protocol extension (markdown) --- ...m-control-using-KISS-protocol-extension.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Modem-control-using-KISS-protocol-extension.md diff --git a/Modem-control-using-KISS-protocol-extension.md b/Modem-control-using-KISS-protocol-extension.md new file mode 100644 index 0000000..4e1ec86 --- /dev/null +++ b/Modem-control-using-KISS-protocol-extension.md @@ -0,0 +1,25 @@ +When `EnableKissExtensions` configuration parameter is set to `true` modem will be able to handle SetHardware KISS command 6 for setting modem parameters and will send event about signal level with KISS command 7, both are operating on KISS port 0. This way client application (such as [Codec2 Walkie-Talkie](https://github.com/sh123/codec2_talkie)) can display signal levels and change modem parameters dynamically. + +Payloads for commands are sent and expected as big endian and defined as: +``` + // KISS SetHardware 6 + struct SetHardware { + uint32_t freq; + uint32_t bw; + uint16_t sf; + uint16_t cr; + uint16_t pwr; + uint16_t sync; + uint8_t crc; + } __attribute__((packed)); + + // KISS command 7 + struct SignalReport { + int16_t rssi; + int16_t snr; // snr * 100 + } __attribute__((packed)); + + // KISS command 8 + struct Reboot { + } __attribute__((packed)); +```