Pārlūkot izejas kodu

Merge pull request #1954 from OverkillFPV/lora-longer-preamble

Lora longer preamble
Liam Cottle 3 mēneši atpakaļ
vecāks
revīzija
5c651b35a0
73 mainītis faili ar 81 papildinājumiem un 2 dzēšanām
  1. 1 0
      src/helpers/radiolib/CustomLLCC68Wrapper.h
  2. 2 0
      src/helpers/radiolib/CustomLR1110.h
  3. 3 1
      src/helpers/radiolib/CustomLR1110Wrapper.h
  4. 1 0
      src/helpers/radiolib/CustomSTM32WLxWrapper.h
  5. 1 0
      src/helpers/radiolib/CustomSX1262Wrapper.h
  6. 1 0
      src/helpers/radiolib/CustomSX1268Wrapper.h
  7. 1 0
      src/helpers/radiolib/CustomSX1276Wrapper.h
  8. 2 0
      src/helpers/radiolib/RadioLibWrappers.cpp
  9. 5 1
      src/helpers/radiolib/RadioLibWrappers.h
  10. 1 0
      variants/ebyte_eora_s3/target.cpp
  11. 1 0
      variants/generic-e22/target.cpp
  12. 1 0
      variants/heltec_ct62/target.cpp
  13. 1 0
      variants/heltec_e213/target.cpp
  14. 1 0
      variants/heltec_e290/target.cpp
  15. 1 0
      variants/heltec_mesh_solar/target.cpp
  16. 1 0
      variants/heltec_t114/target.cpp
  17. 1 0
      variants/heltec_t190/target.cpp
  18. 1 0
      variants/heltec_tracker/target.cpp
  19. 1 0
      variants/heltec_tracker_v2/target.cpp
  20. 1 0
      variants/heltec_v2/target.cpp
  21. 1 0
      variants/heltec_v3/target.cpp
  22. 1 0
      variants/heltec_v4/target.cpp
  23. 1 0
      variants/heltec_wireless_paper/target.cpp
  24. 1 0
      variants/ikoka_handheld_nrf/target.cpp
  25. 1 0
      variants/ikoka_nano_nrf/target.cpp
  26. 1 0
      variants/ikoka_stick_nrf/target.cpp
  27. 1 0
      variants/keepteen_lt1/target.cpp
  28. 1 0
      variants/lilygo_t3s3/target.cpp
  29. 1 0
      variants/lilygo_t3s3_sx1276/target.cpp
  30. 1 0
      variants/lilygo_tbeam_1w/target.cpp
  31. 1 0
      variants/lilygo_tbeam_SX1262/target.cpp
  32. 1 0
      variants/lilygo_tbeam_SX1276/target.cpp
  33. 1 0
      variants/lilygo_tbeam_supreme_SX1262/target.cpp
  34. 1 0
      variants/lilygo_tdeck/target.cpp
  35. 1 0
      variants/lilygo_techo/target.cpp
  36. 1 0
      variants/lilygo_techo_lite/target.cpp
  37. 1 0
      variants/lilygo_tlora_c6/target.cpp
  38. 1 0
      variants/lilygo_tlora_v2_1/target.cpp
  39. 1 0
      variants/m5stack_unit_c6l/UnitC6LBoard.cpp
  40. 1 0
      variants/mesh_pocket/target.cpp
  41. 1 0
      variants/meshadventurer/target.cpp
  42. 1 0
      variants/meshtiny/target.cpp
  43. 1 0
      variants/minewsemi_me25ls01/target.cpp
  44. 1 0
      variants/nano_g2_ultra/target.cpp
  45. 1 0
      variants/nibble_screen_connect/target.cpp
  46. 1 0
      variants/promicro/target.cpp
  47. 1 0
      variants/rak11310/target.cpp
  48. 1 0
      variants/rak3112/target.cpp
  49. 1 0
      variants/rak3401/target.cpp
  50. 1 0
      variants/rak3x72/target.cpp
  51. 1 0
      variants/rak4631/target.cpp
  52. 1 0
      variants/rak_wismesh_tag/target.cpp
  53. 1 0
      variants/rpi_picow/target.cpp
  54. 1 0
      variants/sensecap_solar/target.cpp
  55. 1 0
      variants/station_g2/target.cpp
  56. 1 0
      variants/t1000-e/target.cpp
  57. 1 0
      variants/tenstar_c3/target.cpp
  58. 1 0
      variants/thinknode_m1/target.cpp
  59. 1 0
      variants/thinknode_m2/target.cpp
  60. 1 0
      variants/thinknode_m3/target.cpp
  61. 1 0
      variants/thinknode_m5/target.cpp
  62. 1 0
      variants/thinknode_m6/target.cpp
  63. 1 0
      variants/tiny_relay/target.cpp
  64. 1 0
      variants/waveshare_rp2040_lora/target.cpp
  65. 1 0
      variants/wio-e5-dev/target.cpp
  66. 1 0
      variants/wio-e5-mini/target.cpp
  67. 1 0
      variants/wio-tracker-l1/target.cpp
  68. 1 0
      variants/wio_wm1110/target.cpp
  69. 1 0
      variants/xiao_c3/target.cpp
  70. 1 0
      variants/xiao_c6/XiaoC6Board.cpp
  71. 1 0
      variants/xiao_nrf52/target.cpp
  72. 1 0
      variants/xiao_rp2040/target.cpp
  73. 1 0
      variants/xiao_s3_wio/target.cpp

+ 1 - 0
src/helpers/radiolib/CustomLLCC68Wrapper.h

@@ -20,6 +20,7 @@ public:
     int sf = ((CustomLLCC68 *)_radio)->spreadingFactor;
     return packetScoreInt(snr, sf, packet_len);
   }
+  uint8_t getSpreadingFactor() const override { return ((CustomLLCC68 *)_radio)->spreadingFactor; }
 
   void doResetAGC() override { sx126xResetAGC((SX126x *)_radio); }
 

+ 2 - 0
src/helpers/radiolib/CustomLR1110.h

@@ -36,4 +36,6 @@ class CustomLR1110 : public LR1110 {
       bool detected = ((irq & RADIOLIB_LR11X0_IRQ_SYNC_WORD_HEADER_VALID) || (irq & RADIOLIB_LR11X0_IRQ_PREAMBLE_DETECTED));
       return detected;
     }
+
+    uint8_t getSpreadingFactor() const { return spreadingFactor; }
 };

+ 3 - 1
src/helpers/radiolib/CustomLR1110Wrapper.h

@@ -19,12 +19,14 @@ public:
 
   void onSendFinished() override {
     RadioLibWrapper::onSendFinished();
-    _radio->setPreambleLength(16); // overcomes weird issues with small and big pkts
+    _radio->setPreambleLength(preambleLengthForSF(getSpreadingFactor())); // overcomes weird issues with small and big pkts
   }
 
   float getLastRSSI() const override { return ((CustomLR1110 *)_radio)->getRSSI(); }
   float getLastSNR() const override { return ((CustomLR1110 *)_radio)->getSNR(); }
 
+  uint8_t getSpreadingFactor() const override { return ((CustomLR1110 *)_radio)->getSpreadingFactor(); }
+  
   void setRxBoostedGainMode(bool en) override {
     ((CustomLR1110 *)_radio)->setRxBoostedGainMode(en);
   }

+ 1 - 0
src/helpers/radiolib/CustomSTM32WLxWrapper.h

@@ -21,6 +21,7 @@ public:
     int sf = ((CustomSTM32WLx *)_radio)->spreadingFactor;
     return packetScoreInt(snr, sf, packet_len);
   }
+  uint8_t getSpreadingFactor() const override { return ((CustomSTM32WLx *)_radio)->spreadingFactor; }
 
   void doResetAGC() override { sx126xResetAGC((SX126x *)_radio); }
 };

+ 1 - 0
src/helpers/radiolib/CustomSX1262Wrapper.h

@@ -24,6 +24,7 @@ public:
     int sf = ((CustomSX1262 *)_radio)->spreadingFactor;
     return packetScoreInt(snr, sf, packet_len);
   }
+  uint8_t getSpreadingFactor() const override { return ((CustomSX1262 *)_radio)->spreadingFactor; }
   virtual void powerOff() override {
     ((CustomSX1262 *)_radio)->sleep(false);
   }

+ 1 - 0
src/helpers/radiolib/CustomSX1268Wrapper.h

@@ -24,6 +24,7 @@ public:
     int sf = ((CustomSX1268 *)_radio)->spreadingFactor;
     return packetScoreInt(snr, sf, packet_len);
   }
+  uint8_t getSpreadingFactor() const override { return ((CustomSX1268 *)_radio)->spreadingFactor; }
 
   void doResetAGC() override { sx126xResetAGC((SX126x *)_radio); }
 

+ 1 - 0
src/helpers/radiolib/CustomSX1276Wrapper.h

@@ -23,4 +23,5 @@ public:
     int sf = ((CustomSX1276 *)_radio)->spreadingFactor;
     return packetScoreInt(snr, sf, packet_len);
   }
+  uint8_t getSpreadingFactor() const override { return ((CustomSX1276 *)_radio)->spreadingFactor; }
 };

+ 2 - 0
src/helpers/radiolib/RadioLibWrappers.cpp

@@ -26,6 +26,8 @@ void setFlag(void) {
 
 void RadioLibWrapper::begin() {
   _radio->setPacketReceivedAction(setFlag);  // this is also SentComplete interrupt
+  _preamble_sf = getSpreadingFactor();
+  _radio->setPreambleLength(preambleLengthForSF(_preamble_sf)); // longer preamble for lower SF improves reliability
   state = STATE_IDLE;
 
   if (_board->getStartupReason() == BD_STARTUP_RX_PACKET) {  // received a LoRa packet (while in deep sleep)

+ 5 - 1
src/helpers/radiolib/RadioLibWrappers.h

@@ -11,6 +11,7 @@ protected:
   int16_t _noise_floor, _threshold;
   uint16_t _num_floor_samples;
   int32_t _floor_sample_sum;
+  uint8_t _preamble_sf;
 
   void idle();
   void startRecv();
@@ -19,7 +20,7 @@ protected:
   virtual void doResetAGC();
 
 public:
-  RadioLibWrapper(PhysicalLayer& radio, mesh::MainBoard& board) : _radio(&radio), _board(&board) { n_recv = n_sent = 0; }
+  RadioLibWrapper(PhysicalLayer& radio, mesh::MainBoard& board) : _radio(&radio), _board(&board), _preamble_sf(0) { n_recv = n_sent = 0; }
 
   void begin() override;
   virtual void powerOff() { _radio->sleep(); }
@@ -38,6 +39,9 @@ public:
   }
 
   virtual float getCurrentRSSI() =0;
+  virtual uint8_t getSpreadingFactor() const { return LORA_SF; }
+  static uint16_t preambleLengthForSF(uint8_t sf) { return sf <= 8 ? 32 : 16; }
+  void updatePreamble(uint8_t sf) { _preamble_sf = sf; _radio->setPreambleLength(preambleLengthForSF(sf)); }
 
   int getNoiseFloor() const override { return _noise_floor; }
   void triggerNoiseFloorCalibrate(int threshold) override;

+ 1 - 0
variants/ebyte_eora_s3/target.cpp

@@ -73,6 +73,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/generic-e22/target.cpp

@@ -36,6 +36,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/heltec_ct62/target.cpp

@@ -25,6 +25,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/heltec_e213/target.cpp

@@ -42,6 +42,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/heltec_e290/target.cpp

@@ -42,6 +42,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/heltec_mesh_solar/target.cpp

@@ -32,6 +32,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/heltec_t114/target.cpp

@@ -52,6 +52,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/heltec_t190/target.cpp

@@ -42,6 +42,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/heltec_tracker/target.cpp

@@ -46,6 +46,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/heltec_tracker_v2/target.cpp

@@ -48,6 +48,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/heltec_v2/target.cpp

@@ -41,6 +41,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/heltec_v3/target.cpp

@@ -48,6 +48,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/heltec_v4/target.cpp

@@ -48,6 +48,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/heltec_wireless_paper/target.cpp

@@ -41,6 +41,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/ikoka_handheld_nrf/target.cpp

@@ -34,6 +34,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/ikoka_nano_nrf/target.cpp

@@ -32,6 +32,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/ikoka_stick_nrf/target.cpp

@@ -32,6 +32,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/keepteen_lt1/target.cpp

@@ -38,6 +38,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/lilygo_t3s3/target.cpp

@@ -36,6 +36,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/lilygo_t3s3_sx1276/target.cpp

@@ -42,6 +42,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/lilygo_tbeam_1w/target.cpp

@@ -52,6 +52,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/lilygo_tbeam_SX1262/target.cpp

@@ -43,6 +43,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/lilygo_tbeam_SX1276/target.cpp

@@ -48,6 +48,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/lilygo_tbeam_supreme_SX1262/target.cpp

@@ -40,6 +40,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/lilygo_tdeck/target.cpp

@@ -43,6 +43,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/lilygo_techo/target.cpp

@@ -40,6 +40,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/lilygo_techo_lite/target.cpp

@@ -39,6 +39,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/lilygo_tlora_c6/target.cpp

@@ -36,6 +36,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/lilygo_tlora_v2_1/target.cpp

@@ -37,6 +37,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/m5stack_unit_c6l/UnitC6LBoard.cpp

@@ -37,6 +37,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(uint8_t dbm) {

+ 1 - 0
variants/mesh_pocket/target.cpp

@@ -32,6 +32,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/meshadventurer/target.cpp

@@ -39,6 +39,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/meshtiny/target.cpp

@@ -35,6 +35,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/minewsemi_me25ls01/target.cpp

@@ -86,6 +86,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/nano_g2_ultra/target.cpp

@@ -34,6 +34,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/nibble_screen_connect/target.cpp

@@ -36,6 +36,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/promicro/target.cpp

@@ -38,6 +38,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/rak11310/target.cpp

@@ -27,6 +27,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/rak3112/target.cpp

@@ -48,6 +48,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/rak3401/target.cpp

@@ -46,6 +46,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/rak3x72/target.cpp

@@ -64,6 +64,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/rak4631/target.cpp

@@ -46,6 +46,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/rak_wismesh_tag/target.cpp

@@ -42,6 +42,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/rpi_picow/target.cpp

@@ -27,6 +27,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/sensecap_solar/target.cpp

@@ -34,6 +34,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/station_g2/target.cpp

@@ -49,6 +49,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/t1000-e/target.cpp

@@ -83,6 +83,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/tenstar_c3/target.cpp

@@ -36,6 +36,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/thinknode_m1/target.cpp

@@ -33,6 +33,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/thinknode_m2/target.cpp

@@ -44,6 +44,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/thinknode_m3/target.cpp

@@ -87,6 +87,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/thinknode_m5/target.cpp

@@ -51,6 +51,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/thinknode_m6/target.cpp

@@ -37,6 +37,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/tiny_relay/target.cpp

@@ -68,6 +68,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr)
     radio.setSpreadingFactor(sf);
     radio.setBandwidth(bw);
     radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm)

+ 1 - 0
variants/waveshare_rp2040_lora/target.cpp

@@ -37,6 +37,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/wio-e5-dev/target.cpp

@@ -61,6 +61,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/wio-e5-mini/target.cpp

@@ -59,6 +59,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/wio-tracker-l1/target.cpp

@@ -42,6 +42,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/wio_wm1110/target.cpp

@@ -79,6 +79,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/xiao_c3/target.cpp

@@ -44,6 +44,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/xiao_c6/XiaoC6Board.cpp

@@ -37,6 +37,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/xiao_nrf52/target.cpp

@@ -32,6 +32,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/xiao_rp2040/target.cpp

@@ -37,6 +37,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {

+ 1 - 0
variants/xiao_s3_wio/target.cpp

@@ -44,6 +44,7 @@ void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
   radio.setSpreadingFactor(sf);
   radio.setBandwidth(bw);
   radio.setCodingRate(cr);
+  radio_driver.updatePreamble(sf);
 }
 
 void radio_set_tx_power(int8_t dbm) {