Skip to content

Modem control using KISS protocol extension

sh123 edited this page Oct 20, 2021 · 10 revisions

When EnableKissExtensions configuration parameter is set to true modem will be able to handle

  • SetHardware KISS command 6 for setting modem parameters
  • will send event about signal level with KISS command 7
  • reboot when command 8 is received

All commands are operating on KISS port 0.

This way client application (such as Codec2 Walkie-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));
Clone this wiki locally