diff --git a/_c_c1101_8h_source.html b/_c_c1101_8h_source.html
index f12db3d9..3eef88f9 100644
--- a/_c_c1101_8h_source.html
+++ b/_c_c1101_8h_source.html
@@ -680,118 +680,118 @@ $(document).ready(function(){initNavTree('_c_c1101_8h_source.html',''); initResi
 <div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160; </div>
 <div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#af727750d05be0bcef4bb8ac260d110e3">startReceive</a>(uint32_t timeout, uint16_t irqFlags, uint16_t irqMask, <span class="keywordtype">size_t</span> len);</div>
 <div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160; </div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160; </div>
-<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;    <span class="comment">// configuration methods</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160; </div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a9592c023556c38c2b8066a23da96ae5e">setFrequency</a>(<span class="keywordtype">float</span> freq);</div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160; </div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#aa53427cabcda0778f287ed1d850bbe37">setBitRate</a>(<span class="keywordtype">float</span> br);</div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160; </div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a381d0059d7a0ccd8a2f54d7d3376f9b6">setRxBandwidth</a>(<span class="keywordtype">float</span> rxBw);</div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160; </div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a0d69713b9f20c9de354c13c3167b18b3">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160; </div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#abe26fa310e973bf2b14750b9eae02124">getFrequencyDeviation</a>(<span class="keywordtype">float</span> *freqDev);</div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160; </div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a4f89d13ea170157df109eca36674f0aa">setOutputPower</a>(int8_t pwr);</div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160; </div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a433f1a40b33be6c84d3665a1b4cd57d6">setSyncWord</a>(uint8_t syncH, uint8_t syncL, uint8_t maxErrBits = 0, <span class="keywordtype">bool</span> requireCarrierSense = <span class="keyword">false</span>);</div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160; </div>
-<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a433f1a40b33be6c84d3665a1b4cd57d6">setSyncWord</a>(uint8_t* syncWord, uint8_t len, uint8_t maxErrBits = 0, <span class="keywordtype">bool</span> requireCarrierSense = <span class="keyword">false</span>);</div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160; </div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#ae77c828c9c7cc12012fe011e8c4d3570">setPreambleLength</a>(uint8_t preambleLength, uint8_t qualityThreshold);</div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160; </div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a6e62914790f132816134fc68c2bb5eb8">setNodeAddress</a>(uint8_t nodeAddr, uint8_t numBroadcastAddrs = 0);</div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160; </div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a9aee5df428d30b9c80b8a8700609a883">disableAddressFiltering</a>();</div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160; </div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#afa64d1ad4789d3146b38d14437234756">setOOK</a>(<span class="keywordtype">bool</span> enableOOK);</div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160; </div>
-<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_c_c1101.html#a490b2aa48bd7e5728fa82882411910dc">getRSSI</a>();</div>
-<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160; </div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;   uint8_t <a class="code" href="class_c_c1101.html#a59ca9e8956e308159949638bf327e5fb">getLQI</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160; </div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_c_c1101.html#a122281f6a915b77ee9dafc9926e731a0">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160; </div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#ad25ad96cddf62273bffd601384d22275">fixedPacketLengthMode</a>(uint8_t len = RADIOLIB_CC1101_MAX_PACKET_LENGTH);</div>
-<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160; </div>
-<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a50b9e73d2d82a4cd03841f465825b73f">variablePacketLengthMode</a>(uint8_t maxLen = RADIOLIB_CC1101_MAX_PACKET_LENGTH);</div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160; </div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a6fe55d0217bf5218865198ef8d6fdab4">enableSyncWordFiltering</a>(uint8_t maxErrBits = 0, <span class="keywordtype">bool</span> requireCarrierSense = <span class="keyword">false</span>);</div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160; </div>
-<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a4f2dc4176b62a0636636088e31b8e85b">disableSyncWordFiltering</a>(<span class="keywordtype">bool</span> requireCarrierSense = <span class="keyword">false</span>);</div>
-<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160; </div>
-<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a60695681fc74a37f2a31a9638552e877">setCrcFiltering</a>(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160; </div>
-<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a047be5159af73374521a26e8f880fe12">setPromiscuousMode</a>(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160; </div>
-<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_c_c1101.html#aeea78919ec14d940cda0f213e4fdced6">getPromiscuousMode</a>();</div>
-<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160; </div>
-<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#adf96e77f25b7e256891601bef04f35a6">setDataShaping</a>(uint8_t sh) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160; </div>
-<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#ab4b98eb6af33d006306bb7514ed216ea">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160; </div>
-<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_c_c1101.html#a5ef45183690bb1879f106af079b01140">setRfSwitchPins</a>(uint32_t rxEn, uint32_t txEn);</div>
-<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160; </div>
-<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_c_c1101.html#a7b401995be4bc136063a035ce1820634">setRfSwitchTable</a>(<span class="keyword">const</span> uint32_t (&amp;pins)[<a class="code" href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a>], <span class="keyword">const</span> <a class="code" href="struct_module_1_1_rf_switch_mode__t.html">Module::RfSwitchMode_t</a> table[]);</div>
-<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160; </div>
-<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;    uint8_t <a class="code" href="class_c_c1101.html#a7ecf49d530ea7c29dd755f56db17d833">randomByte</a>();</div>
-<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160; </div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a2a4c6e622dffd2788d8ac52d708b0705">getChipVersion</a>();</div>
-<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160; </div>
-<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;<span class="preprocessor">    #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)</span></div>
-<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_c_c1101.html#a5161fa10b19d857840579601ef565363">setDirectAction</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span>));</div>
-<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160; </div>
-<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_c_c1101.html#a206e6c6f094aa7e68388fd9412cd969e">readBit</a>(uint32_t pin);</div>
-<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160; </div>
-<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a009c31564866d8d14759f17f29b08ee6">setDIOMapping</a>(uint32_t pin, uint32_t value);</div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160; </div>
-<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;<span class="preprocessor">  #if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
-<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;<span class="preprocessor">  #endif</span></div>
-<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;      <a class="code" href="class_module.html">Module</a>* mod;</div>
-<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160; </div>
-<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;      <span class="comment">// SPI read overrides to set bit for burst write and status registers access</span></div>
-<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;      int16_t SPIgetRegValue(uint8_t reg, uint8_t msb = 7, uint8_t lsb = 0);</div>
-<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;      int16_t SPIsetRegValue(uint8_t reg, uint8_t value, uint8_t msb = 7, uint8_t lsb = 0, uint8_t checkInterval = 2);</div>
-<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;      <span class="keywordtype">void</span> SPIreadRegisterBurst(uint8_t reg, uint8_t numBytes, uint8_t* inBytes);</div>
-<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;      uint8_t SPIreadRegister(uint8_t reg);</div>
-<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;      <span class="keywordtype">void</span> SPIwriteRegisterBurst(uint8_t reg, uint8_t* data, <span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;      <span class="keywordtype">void</span> SPIwriteRegister(uint8_t reg, uint8_t data);</div>
-<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160; </div>
-<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;      <span class="keywordtype">void</span> SPIsendCommand(uint8_t cmd);</div>
-<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160; </div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;<span class="preprocessor">  #if !defined(RADIOLIB_GODMODE)</span></div>
-<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;    <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;<span class="preprocessor">  #endif</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160; </div>
-<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;    <span class="keywordtype">float</span> frequency = RADIOLIB_CC1101_DEFAULT_FREQ;</div>
-<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;    <span class="keywordtype">float</span> bitRate = RADIOLIB_CC1101_DEFAULT_BR;</div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;    uint8_t rawRSSI = 0;</div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;    uint8_t rawLQI = 0;</div>
-<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;    uint8_t modulation = RADIOLIB_CC1101_MOD_FORMAT_2_FSK;</div>
-<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160; </div>
-<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;    <span class="keywordtype">size_t</span> packetLength = 0;</div>
-<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;    <span class="keywordtype">bool</span> packetLengthQueried = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;    uint8_t packetLengthConfig = RADIOLIB_CC1101_LENGTH_CONFIG_VARIABLE;</div>
-<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160; </div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;    <span class="keywordtype">bool</span> promiscuous = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;    <span class="keywordtype">bool</span> crcOn = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;    <span class="keywordtype">bool</span> directModeEnabled = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160; </div>
-<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;    int8_t power = RADIOLIB_CC1101_DEFAULT_POWER;</div>
-<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160; </div>
-<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;    int16_t config();</div>
-<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a240eef8fa7d838d76f3c11086dc50e46">transmitDirect</a>(<span class="keywordtype">bool</span> sync, uint32_t frf);</div>
-<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#ab053c185330519d58f364790108d29ac">receiveDirect</a>(<span class="keywordtype">bool</span> sync);</div>
-<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;    int16_t directMode(<span class="keywordtype">bool</span> sync);</div>
-<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> getExpMant(<span class="keywordtype">float</span> target, uint16_t mantOffset, uint8_t divExp, uint8_t expMax, uint8_t&amp; exp, uint8_t&amp; mant);</div>
-<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;    int16_t setPacketMode(uint8_t mode, uint16_t len);</div>
-<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;};</div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160; </div>
-<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160; </div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;    <span class="comment">// configuration methods</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160; </div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a9592c023556c38c2b8066a23da96ae5e">setFrequency</a>(<span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160; </div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#aa53427cabcda0778f287ed1d850bbe37">setBitRate</a>(<span class="keywordtype">float</span> br);</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160; </div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a381d0059d7a0ccd8a2f54d7d3376f9b6">setRxBandwidth</a>(<span class="keywordtype">float</span> rxBw);</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160; </div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a0d69713b9f20c9de354c13c3167b18b3">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160; </div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#abe26fa310e973bf2b14750b9eae02124">getFrequencyDeviation</a>(<span class="keywordtype">float</span> *freqDev);</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160; </div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a4f89d13ea170157df109eca36674f0aa">setOutputPower</a>(int8_t pwr);</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160; </div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a433f1a40b33be6c84d3665a1b4cd57d6">setSyncWord</a>(uint8_t syncH, uint8_t syncL, uint8_t maxErrBits = 0, <span class="keywordtype">bool</span> requireCarrierSense = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160; </div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a433f1a40b33be6c84d3665a1b4cd57d6">setSyncWord</a>(uint8_t* syncWord, uint8_t len, uint8_t maxErrBits = 0, <span class="keywordtype">bool</span> requireCarrierSense = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160; </div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#ae77c828c9c7cc12012fe011e8c4d3570">setPreambleLength</a>(uint8_t preambleLength, uint8_t qualityThreshold);</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160; </div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a6e62914790f132816134fc68c2bb5eb8">setNodeAddress</a>(uint8_t nodeAddr, uint8_t numBroadcastAddrs = 0);</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160; </div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a9aee5df428d30b9c80b8a8700609a883">disableAddressFiltering</a>();</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160; </div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#afa64d1ad4789d3146b38d14437234756">setOOK</a>(<span class="keywordtype">bool</span> enableOOK);</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160; </div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_c_c1101.html#a490b2aa48bd7e5728fa82882411910dc">getRSSI</a>();</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160; </div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;   uint8_t <a class="code" href="class_c_c1101.html#a59ca9e8956e308159949638bf327e5fb">getLQI</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160; </div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_c_c1101.html#a122281f6a915b77ee9dafc9926e731a0">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160; </div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#ad25ad96cddf62273bffd601384d22275">fixedPacketLengthMode</a>(uint8_t len = RADIOLIB_CC1101_MAX_PACKET_LENGTH);</div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160; </div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a50b9e73d2d82a4cd03841f465825b73f">variablePacketLengthMode</a>(uint8_t maxLen = RADIOLIB_CC1101_MAX_PACKET_LENGTH);</div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160; </div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a6fe55d0217bf5218865198ef8d6fdab4">enableSyncWordFiltering</a>(uint8_t maxErrBits = 0, <span class="keywordtype">bool</span> requireCarrierSense = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160; </div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a4f2dc4176b62a0636636088e31b8e85b">disableSyncWordFiltering</a>(<span class="keywordtype">bool</span> requireCarrierSense = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160; </div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a60695681fc74a37f2a31a9638552e877">setCrcFiltering</a>(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160; </div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a047be5159af73374521a26e8f880fe12">setPromiscuousMode</a>(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160; </div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_c_c1101.html#aeea78919ec14d940cda0f213e4fdced6">getPromiscuousMode</a>();</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160; </div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#adf96e77f25b7e256891601bef04f35a6">setDataShaping</a>(uint8_t sh) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160; </div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#ab4b98eb6af33d006306bb7514ed216ea">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160; </div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_c_c1101.html#a5ef45183690bb1879f106af079b01140">setRfSwitchPins</a>(uint32_t rxEn, uint32_t txEn);</div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160; </div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_c_c1101.html#a7b401995be4bc136063a035ce1820634">setRfSwitchTable</a>(<span class="keyword">const</span> uint32_t (&amp;pins)[<a class="code" href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a>], <span class="keyword">const</span> <a class="code" href="struct_module_1_1_rf_switch_mode__t.html">Module::RfSwitchMode_t</a> table[]);</div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160; </div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;    uint8_t <a class="code" href="class_c_c1101.html#a7ecf49d530ea7c29dd755f56db17d833">randomByte</a>();</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160; </div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a2a4c6e622dffd2788d8ac52d708b0705">getChipVersion</a>();</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160; </div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;<span class="preprocessor">    #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)</span></div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_c_c1101.html#a5161fa10b19d857840579601ef565363">setDirectAction</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span>));</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160; </div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_c_c1101.html#a206e6c6f094aa7e68388fd9412cd969e">readBit</a>(uint32_t pin);</div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160; </div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a009c31564866d8d14759f17f29b08ee6">setDIOMapping</a>(uint32_t pin, uint32_t value);</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160; </div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;<span class="preprocessor">  #if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;<span class="preprocessor">  #endif</span></div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;      <a class="code" href="class_module.html">Module</a>* mod;</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160; </div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;      <span class="comment">// SPI read overrides to set bit for burst write and status registers access</span></div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;      int16_t SPIgetRegValue(uint8_t reg, uint8_t msb = 7, uint8_t lsb = 0);</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;      int16_t SPIsetRegValue(uint8_t reg, uint8_t value, uint8_t msb = 7, uint8_t lsb = 0, uint8_t checkInterval = 2);</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;      <span class="keywordtype">void</span> SPIreadRegisterBurst(uint8_t reg, uint8_t numBytes, uint8_t* inBytes);</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;      uint8_t SPIreadRegister(uint8_t reg);</div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;      <span class="keywordtype">void</span> SPIwriteRegisterBurst(uint8_t reg, uint8_t* data, <span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;      <span class="keywordtype">void</span> SPIwriteRegister(uint8_t reg, uint8_t data);</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160; </div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;      <span class="keywordtype">void</span> SPIsendCommand(uint8_t cmd);</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160; </div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;<span class="preprocessor">  #if !defined(RADIOLIB_GODMODE)</span></div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;<span class="preprocessor">  #endif</span></div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160; </div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;    <span class="keywordtype">float</span> frequency = RADIOLIB_CC1101_DEFAULT_FREQ;</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;    <span class="keywordtype">float</span> bitRate = RADIOLIB_CC1101_DEFAULT_BR;</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;    uint8_t rawRSSI = 0;</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;    uint8_t rawLQI = 0;</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;    uint8_t modulation = RADIOLIB_CC1101_MOD_FORMAT_2_FSK;</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160; </div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;    <span class="keywordtype">size_t</span> packetLength = 0;</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;    <span class="keywordtype">bool</span> packetLengthQueried = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;    uint8_t packetLengthConfig = RADIOLIB_CC1101_LENGTH_CONFIG_VARIABLE;</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160; </div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;    <span class="keywordtype">bool</span> promiscuous = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;    <span class="keywordtype">bool</span> crcOn = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;    <span class="keywordtype">bool</span> directModeEnabled = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160; </div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;    int8_t power = RADIOLIB_CC1101_DEFAULT_POWER;</div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160; </div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    int16_t config();</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#a240eef8fa7d838d76f3c11086dc50e46">transmitDirect</a>(<span class="keywordtype">bool</span> sync, uint32_t frf);</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;    int16_t <a class="code" href="class_c_c1101.html#ab053c185330519d58f364790108d29ac">receiveDirect</a>(<span class="keywordtype">bool</span> sync);</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;    int16_t directMode(<span class="keywordtype">bool</span> sync);</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> getExpMant(<span class="keywordtype">float</span> target, uint16_t mantOffset, uint8_t divExp, uint8_t expMax, uint8_t&amp; exp, uint8_t&amp; mant);</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;    int16_t setPacketMode(uint8_t mode, uint16_t len);</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;};</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160; </div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="ttc" id="aclass_c_c1101_html"><div class="ttname"><a href="class_c_c1101.html">CC1101</a></div><div class="ttdoc">Control class for CC1101 module.</div><div class="ttdef"><b>Definition:</b> CC1101.h:531</div></div>
 <div class="ttc" id="aclass_c_c1101_html_a009c31564866d8d14759f17f29b08ee6"><div class="ttname"><a href="class_c_c1101.html#a009c31564866d8d14759f17f29b08ee6">CC1101::setDIOMapping</a></div><div class="ttdeci">int16_t setDIOMapping(uint32_t pin, uint32_t value)</div><div class="ttdoc">Configure DIO pin mapping to get a given signal on a DIO pin (if available).</div><div class="ttdef"><b>Definition:</b> CC1101.cpp:1028</div></div>
 <div class="ttc" id="aclass_c_c1101_html_a047be5159af73374521a26e8f880fe12"><div class="ttname"><a href="class_c_c1101.html#a047be5159af73374521a26e8f880fe12">CC1101::setPromiscuousMode</a></div><div class="ttdeci">int16_t setPromiscuousMode(bool enable=true)</div><div class="ttdoc">Set modem in &quot;sniff&quot; mode: no packet filtering (e.g., no preamble, sync word, address,...</div><div class="ttdef"><b>Definition:</b> CC1101.cpp:907</div></div>
diff --git a/_r_f69_8h_source.html b/_r_f69_8h_source.html
index ce166503..3dfa18a6 100644
--- a/_r_f69_8h_source.html
+++ b/_r_f69_8h_source.html
@@ -646,133 +646,133 @@ $(document).ready(function(){initNavTree('_r_f69_8h_source.html',''); initResiza
 <div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160; </div>
 <div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    int16_t <a class="code" href="class_r_f69.html#afae38fa64242043de34096bf497725f1">startReceive</a>(uint32_t timeout, uint16_t irqFlags, uint16_t irqMask, <span class="keywordtype">size_t</span> len);</div>
 <div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160; </div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160; </div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;    <span class="comment">// configuration methods</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160; </div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;    int16_t <a class="code" href="class_r_f69.html#ab467f0fc318e651d0cdfbc0399d4c34b">setFrequency</a>(<span class="keywordtype">float</span> freq);</div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160; </div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a2391eb6e07db3795e993b59b3a85cfed">getFrequency</a>(<span class="keywordtype">float</span> *freq);</div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160; </div>
-<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;    int16_t <a class="code" href="class_r_f69.html#ad7f8132912a5dbf38c5cf676ac167d13">setBitRate</a>(<span class="keywordtype">float</span> br);</div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160; </div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a735d8f22095a7e69471d73ca021b9d1a">setRxBandwidth</a>(<span class="keywordtype">float</span> rxBw);</div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160; </div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;    int16_t <a class="code" href="class_r_f69.html#adb9fbfedf95f34ac537815870b98a9be">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160; </div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a2bf0d5e045ccfecf9510773148cdd2c9">getFrequencyDeviation</a>(<span class="keywordtype">float</span> *freqDev);</div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160; </div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a721094611fa375e73bd0332ab2d7d113">setOutputPower</a>(int8_t pwr, <span class="keywordtype">bool</span> highPower = <span class="keyword">false</span>);</div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160; </div>
-<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a26667d50ec845c28e17236c69c886561">setSyncWord</a>(uint8_t* syncWord, <span class="keywordtype">size_t</span> len, uint8_t maxErrBits = 0);</div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160; </div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a7c84b3f881cad6e05b0f4f68c24496d9">setPreambleLength</a>(uint8_t preambleLen);</div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160; </div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    int16_t <a class="code" href="class_r_f69.html#ab9c217d5ece259950780a05c6e41f75c">setNodeAddress</a>(uint8_t nodeAddr);</div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160; </div>
-<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a1b7598b87ffaabdbe733c47317fa91d8">setBroadcastAddress</a>(uint8_t broadAddr);</div>
-<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160; </div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a5996fc1751e7542baafa0d6c0a6c78ee">disableAddressFiltering</a>();</div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160; </div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    <span class="comment">// measurement methods</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160; </div>
-<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_r_f69.html#ac37d9ddee2adcc8876a182b8ebc3e703">setAmbientTemperature</a>(int16_t tempAmbient);</div>
-<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160; </div>
-<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a0526ce6ea3722fd258f96d9677a60853">getTemperature</a>();</div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160; </div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_r_f69.html#a86a080086c0228d23e2cb77d2b1915c1">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160; </div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a465df5a2e1f924f6d3ba4eae765847b7">setOOK</a>(<span class="keywordtype">bool</span> enable);</div>
-<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160; </div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a219a046c10ddcc0a787ad19346ecad6a">setOokThresholdType</a>(uint8_t type);</div>
-<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160; </div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a2f5852cf0757e38b56b6208760d9a459">setOokFixedThreshold</a>(uint8_t value);</div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160; </div>
-<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a434420f2def6c383608223105469fda1">setOokPeakThresholdDecrement</a>(uint8_t value);</div>
-<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160; </div>
-<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a0de2a07f264839cda945faebf7319e0e">fixedPacketLengthMode</a>(uint8_t len = RADIOLIB_RF69_MAX_PACKET_LENGTH);</div>
-<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160; </div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    int16_t <a class="code" href="class_r_f69.html#af434c67aabe02258ee6696a59973617b">variablePacketLengthMode</a>(uint8_t maxLen = RADIOLIB_RF69_MAX_PACKET_LENGTH);</div>
-<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160; </div>
-<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a643a711bcb4b7771a7ab1f457e61a417">enableSyncWordFiltering</a>(uint8_t maxErrBits = 0);</div>
-<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160; </div>
-<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a400bb57d2353b57c29cf41a6d9497c80">disableSyncWordFiltering</a>();</div>
-<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160; </div>
-<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a7e2201b5bc389a68765400b70439f3f0">enableContinuousModeBitSync</a>();</div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160; </div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a97d3570f4f898dde47e3daf8043e7bad">disableContinuousModeBitSync</a>();</div>
-<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160; </div>
-<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;    int16_t <a class="code" href="class_r_f69.html#ac205bc487833dc4eae4bb0069c0c4d1e">setCrcFiltering</a>(<span class="keywordtype">bool</span> crcOn = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160; </div>
-<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;    int16_t <a class="code" href="class_r_f69.html#ae004326d663a9d6a9c30e792aa368b49">setPromiscuousMode</a>(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160; </div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a42b99e437454e92c6932c3b7acc1fc4a">setDataShaping</a>(uint8_t sh) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160; </div>
-<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;    int16_t <a class="code" href="class_r_f69.html#aae828ce8dda16da4e54d2f18b1fb8af2">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160; </div>
-<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;    int16_t <a class="code" href="class_r_f69.html#aa14dbfd82cd75b9759d4d78bdb05c194">setLnaTestBoost</a>(<span class="keywordtype">bool</span> value);</div>
-<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160; </div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_r_f69.html#ac4fc3f2b178ef08caec3a9f548f44cd7">getRSSI</a>();</div>
-<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160; </div>
-<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;    int16_t <a class="code" href="class_r_f69.html#afcb723ae58d6519e5b95d017d2beb78a">setRSSIThreshold</a>(<span class="keywordtype">float</span> dbm);</div>
-<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160; </div>
-<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_r_f69.html#ac341945538a84430c61f80f610a94411">setRfSwitchPins</a>(uint32_t rxEn, uint32_t txEn);</div>
-<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160; </div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_r_f69.html#afff64ceef5f496ce035ff6d12d6bcc3c">setRfSwitchTable</a>(<span class="keyword">const</span> uint32_t (&amp;pins)[<a class="code" href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a>], <span class="keyword">const</span> <a class="code" href="struct_module_1_1_rf_switch_mode__t.html">Module::RfSwitchMode_t</a> table[]);</div>
-<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160; </div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;    uint8_t <a class="code" href="class_r_f69.html#a2023f0f22aad00a702bdf598c2154043">randomByte</a>();</div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160; </div>
-<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a0c30202b2d52eb32f43066bc0f938638">getChipVersion</a>();</div>
-<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160; </div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;<span class="preprocessor">    #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)</span></div>
-<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_r_f69.html#a7fd34332bec08828080b1b4a0f8c6e28">setDirectAction</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span>));</div>
-<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160; </div>
-<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_r_f69.html#ab797840275fbccc40162225c32f5ffc3">readBit</a>(uint32_t pin);</div>
-<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160; </div>
-<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a0d7720672c0aa0cf4464d544540cbada">setDIOMapping</a>(uint32_t pin, uint32_t value);</div>
-<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160; </div>
-<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
-<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;    <a class="code" href="class_module.html">Module</a>* mod;</div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; </div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; </div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;    <span class="keywordtype">float</span> frequency = RADIOLIB_RF69_DEFAULT_FREQ;</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;    <span class="keywordtype">float</span> bitRate = RADIOLIB_RF69_DEFAULT_BR;</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    <span class="keywordtype">float</span> rxBandwidth = RADIOLIB_RF69_DEFAULT_RXBW;</div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;    <span class="keywordtype">bool</span> ookEnabled = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;    int16_t tempOffset = 0;</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    int8_t power = RADIOLIB_RF69_DEFAULT_POWER;</div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; </div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;    <span class="keywordtype">size_t</span> packetLength = 0;</div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;    <span class="keywordtype">bool</span> packetLengthQueried = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    uint8_t packetLengthConfig = RADIOLIB_RF69_PACKET_FORMAT_VARIABLE;</div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; </div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;    <span class="keywordtype">bool</span> promiscuous = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; </div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;    uint8_t syncWordLength = RADIOLIB_RF69_DEFAULT_SW_LEN;</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; </div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;    <span class="keywordtype">bool</span> bitSync = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; </div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;    int16_t config();</div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    int16_t directMode();</div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;    int16_t setPacketMode(uint8_t mode, uint8_t len);</div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; </div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;    int16_t setMode(uint8_t mode);</div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;    <span class="keywordtype">void</span> clearIRQFlags();</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;    <span class="keywordtype">void</span> clearFIFO(<span class="keywordtype">size_t</span> count);</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;};</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; </div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; </div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160; </div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;    <span class="comment">// configuration methods</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160; </div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;    int16_t <a class="code" href="class_r_f69.html#ab467f0fc318e651d0cdfbc0399d4c34b">setFrequency</a>(<span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160; </div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a2391eb6e07db3795e993b59b3a85cfed">getFrequency</a>(<span class="keywordtype">float</span> *freq);</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160; </div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;    int16_t <a class="code" href="class_r_f69.html#ad7f8132912a5dbf38c5cf676ac167d13">setBitRate</a>(<span class="keywordtype">float</span> br);</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160; </div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a735d8f22095a7e69471d73ca021b9d1a">setRxBandwidth</a>(<span class="keywordtype">float</span> rxBw);</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160; </div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    int16_t <a class="code" href="class_r_f69.html#adb9fbfedf95f34ac537815870b98a9be">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160; </div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a2bf0d5e045ccfecf9510773148cdd2c9">getFrequencyDeviation</a>(<span class="keywordtype">float</span> *freqDev);</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160; </div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a721094611fa375e73bd0332ab2d7d113">setOutputPower</a>(int8_t pwr, <span class="keywordtype">bool</span> highPower = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160; </div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a26667d50ec845c28e17236c69c886561">setSyncWord</a>(uint8_t* syncWord, <span class="keywordtype">size_t</span> len, uint8_t maxErrBits = 0);</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160; </div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a7c84b3f881cad6e05b0f4f68c24496d9">setPreambleLength</a>(uint8_t preambleLen);</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160; </div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;    int16_t <a class="code" href="class_r_f69.html#ab9c217d5ece259950780a05c6e41f75c">setNodeAddress</a>(uint8_t nodeAddr);</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160; </div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a1b7598b87ffaabdbe733c47317fa91d8">setBroadcastAddress</a>(uint8_t broadAddr);</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160; </div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a5996fc1751e7542baafa0d6c0a6c78ee">disableAddressFiltering</a>();</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160; </div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    <span class="comment">// measurement methods</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160; </div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_r_f69.html#ac37d9ddee2adcc8876a182b8ebc3e703">setAmbientTemperature</a>(int16_t tempAmbient);</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160; </div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a0526ce6ea3722fd258f96d9677a60853">getTemperature</a>();</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160; </div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_r_f69.html#a86a080086c0228d23e2cb77d2b1915c1">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160; </div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a465df5a2e1f924f6d3ba4eae765847b7">setOOK</a>(<span class="keywordtype">bool</span> enable);</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160; </div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a219a046c10ddcc0a787ad19346ecad6a">setOokThresholdType</a>(uint8_t type);</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160; </div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a2f5852cf0757e38b56b6208760d9a459">setOokFixedThreshold</a>(uint8_t value);</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160; </div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a434420f2def6c383608223105469fda1">setOokPeakThresholdDecrement</a>(uint8_t value);</div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160; </div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a0de2a07f264839cda945faebf7319e0e">fixedPacketLengthMode</a>(uint8_t len = RADIOLIB_RF69_MAX_PACKET_LENGTH);</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160; </div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    int16_t <a class="code" href="class_r_f69.html#af434c67aabe02258ee6696a59973617b">variablePacketLengthMode</a>(uint8_t maxLen = RADIOLIB_RF69_MAX_PACKET_LENGTH);</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160; </div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a643a711bcb4b7771a7ab1f457e61a417">enableSyncWordFiltering</a>(uint8_t maxErrBits = 0);</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160; </div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a400bb57d2353b57c29cf41a6d9497c80">disableSyncWordFiltering</a>();</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160; </div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a7e2201b5bc389a68765400b70439f3f0">enableContinuousModeBitSync</a>();</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160; </div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a97d3570f4f898dde47e3daf8043e7bad">disableContinuousModeBitSync</a>();</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160; </div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;    int16_t <a class="code" href="class_r_f69.html#ac205bc487833dc4eae4bb0069c0c4d1e">setCrcFiltering</a>(<span class="keywordtype">bool</span> crcOn = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160; </div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    int16_t <a class="code" href="class_r_f69.html#ae004326d663a9d6a9c30e792aa368b49">setPromiscuousMode</a>(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160; </div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a42b99e437454e92c6932c3b7acc1fc4a">setDataShaping</a>(uint8_t sh) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160; </div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;    int16_t <a class="code" href="class_r_f69.html#aae828ce8dda16da4e54d2f18b1fb8af2">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160; </div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;    int16_t <a class="code" href="class_r_f69.html#aa14dbfd82cd75b9759d4d78bdb05c194">setLnaTestBoost</a>(<span class="keywordtype">bool</span> value);</div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160; </div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_r_f69.html#ac4fc3f2b178ef08caec3a9f548f44cd7">getRSSI</a>();</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160; </div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;    int16_t <a class="code" href="class_r_f69.html#afcb723ae58d6519e5b95d017d2beb78a">setRSSIThreshold</a>(<span class="keywordtype">float</span> dbm);</div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160; </div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_r_f69.html#ac341945538a84430c61f80f610a94411">setRfSwitchPins</a>(uint32_t rxEn, uint32_t txEn);</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160; </div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_r_f69.html#afff64ceef5f496ce035ff6d12d6bcc3c">setRfSwitchTable</a>(<span class="keyword">const</span> uint32_t (&amp;pins)[<a class="code" href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a>], <span class="keyword">const</span> <a class="code" href="struct_module_1_1_rf_switch_mode__t.html">Module::RfSwitchMode_t</a> table[]);</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160; </div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;    uint8_t <a class="code" href="class_r_f69.html#a2023f0f22aad00a702bdf598c2154043">randomByte</a>();</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160; </div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a0c30202b2d52eb32f43066bc0f938638">getChipVersion</a>();</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160; </div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;<span class="preprocessor">    #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_r_f69.html#a7fd34332bec08828080b1b4a0f8c6e28">setDirectAction</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span>));</div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160; </div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_r_f69.html#ab797840275fbccc40162225c32f5ffc3">readBit</a>(uint32_t pin);</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160; </div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;    int16_t <a class="code" href="class_r_f69.html#a0d7720672c0aa0cf4464d544540cbada">setDIOMapping</a>(uint32_t pin, uint32_t value);</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160; </div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;    <a class="code" href="class_module.html">Module</a>* mod;</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; </div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; </div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;    <span class="keywordtype">float</span> frequency = RADIOLIB_RF69_DEFAULT_FREQ;</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    <span class="keywordtype">float</span> bitRate = RADIOLIB_RF69_DEFAULT_BR;</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;    <span class="keywordtype">float</span> rxBandwidth = RADIOLIB_RF69_DEFAULT_RXBW;</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;    <span class="keywordtype">bool</span> ookEnabled = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    int16_t tempOffset = 0;</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;    int8_t power = RADIOLIB_RF69_DEFAULT_POWER;</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; </div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;    <span class="keywordtype">size_t</span> packetLength = 0;</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    <span class="keywordtype">bool</span> packetLengthQueried = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;    uint8_t packetLengthConfig = RADIOLIB_RF69_PACKET_FORMAT_VARIABLE;</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; </div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;    <span class="keywordtype">bool</span> promiscuous = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; </div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;    uint8_t syncWordLength = RADIOLIB_RF69_DEFAULT_SW_LEN;</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; </div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;    <span class="keywordtype">bool</span> bitSync = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; </div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    int16_t config();</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;    int16_t directMode();</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;    int16_t setPacketMode(uint8_t mode, uint8_t len);</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; </div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;    int16_t setMode(uint8_t mode);</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;    <span class="keywordtype">void</span> clearIRQFlags();</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;    <span class="keywordtype">void</span> clearFIFO(<span class="keywordtype">size_t</span> count);</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;};</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; </div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; </div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="ttc" id="aclass_module_html"><div class="ttname"><a href="class_module.html">Module</a></div><div class="ttdoc">Implements all common low-level methods to control the wireless module. Every module class contains o...</div><div class="ttdef"><b>Definition:</b> Module.h:31</div></div>
 <div class="ttc" id="aclass_module_html_a0c11551e12579bbabf57b19e12555b3c"><div class="ttname"><a href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a></div><div class="ttdeci">static const size_t RFSWITCH_MAX_PINS</div><div class="ttdoc">The maximum number of pins supported by the RF switch code.</div><div class="ttdef"><b>Definition:</b> Module.h:42</div></div>
 <div class="ttc" id="aclass_physical_layer_html"><div class="ttname"><a href="class_physical_layer.html">PhysicalLayer</a></div><div class="ttdoc">Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....</div><div class="ttdef"><b>Definition:</b> PhysicalLayer.h:33</div></div>
diff --git a/_s_x126x_8h_source.html b/_s_x126x_8h_source.html
index 1a5bfae9..8d3f1604 100644
--- a/_s_x126x_8h_source.html
+++ b/_s_x126x_8h_source.html
@@ -589,195 +589,195 @@ $(document).ready(function(){initNavTree('_s_x126x_8h_source.html',''); initResi
 <div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160; </div>
 <div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;    uint16_t <a class="code" href="class_s_x126x.html#a9a9b090eddcb811ee19b595debfab1df">getIrqStatus</a>();</div>
 <div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160; </div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160; </div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">startChannelScan</a>(uint8_t symbolNum = RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak = RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin = RADIOLIB_SX126X_CAD_PARAM_DEFAULT);</div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160; </div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#abf1c3d6fa419a1e3ef11db63d3f46f8f">getChannelScanResult</a>();</div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160; </div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    <span class="comment">// configuration methods</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160; </div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a2f60df59c80241d98ce078c0417a7f08">setBandwidth</a>(<span class="keywordtype">float</span> bw);</div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160; </div>
-<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#ae5993359ace652fbdc862eb23fdd263d">setSpreadingFactor</a>(uint8_t sf);</div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160; </div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#afd3113858966e878e9c67a1e710bd586">setCodingRate</a>(uint8_t cr);</div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160; </div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a9d92dce566f8aefa836fe8f332e9560f">setSyncWord</a>(uint8_t syncWord, uint8_t controlBits = 0x44);</div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160; </div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a8f971dca834be7e0470a9a9f0c01854e">setCurrentLimit</a>(<span class="keywordtype">float</span> currentLimit);</div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160; </div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x126x.html#aa668babb0bd129b2facee9fd280525ab">getCurrentLimit</a>();</div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160; </div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#ad6274222ccf534e98e3cd17dfa1520d4">setPreambleLength</a>(<span class="keywordtype">size_t</span> preambleLength) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160; </div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a7cd95a5f2e39ae8fb1a3040e77fa21a3">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160; </div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a7deeef45d7f64a4018a3e56aaea4eb0e">setBitRate</a>(<span class="keywordtype">float</span> br);</div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160; </div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#af30a581d31feae6f50c0591d1ee113f1">setDataRate</a>(<a class="code" href="union_data_rate__t.html">DataRate_t</a> dr) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160; </div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a59d443c02d4620cda32c63a00c6bcc22">setRxBandwidth</a>(<span class="keywordtype">float</span> rxBw);</div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160; </div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a920aa76ff5f0f579424ef6de92e588c8">setRxBoostedGainMode</a>(<span class="keywordtype">bool</span> rxbgm, <span class="keywordtype">bool</span> persist = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160; </div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a1d8f4deb555844b24c2426dd86e69676">setDataShaping</a>(uint8_t sh) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160; </div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a9d92dce566f8aefa836fe8f332e9560f">setSyncWord</a>(uint8_t* syncWord, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160; </div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#ac594fbb30c5010658c970a64654c7162">setSyncBits</a>(uint8_t *syncWord, uint8_t bitsLen);</div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160; </div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a514cabe74bbe3434d7e4f244c4077752">setNodeAddress</a>(uint8_t nodeAddr);</div>
-<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160; </div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#abd8eea7e468db3d6064c19d4934d5034">setBroadcastAddress</a>(uint8_t broadAddr);</div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160; </div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#afc3a7a42c401b6c44e00cb6c5b9696f2">disableAddressFiltering</a>();</div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160; </div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a95007639c2648a1dbb614493224606f1">setCRC</a>(uint8_t len, uint16_t initial = 0x1D0F, uint16_t polynomial = 0x1021, <span class="keywordtype">bool</span> inverted = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160; </div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a67702de41ae866b9f9d73234fc9ae376">setWhitening</a>(<span class="keywordtype">bool</span> enabled, uint16_t initial = 0x0100);</div>
-<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160; </div>
-<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a57bee6f4b3a3b7ec646ac8de347ee0d6">setTCXO</a>(<span class="keywordtype">float</span> voltage, uint32_t delay = 5000);</div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160; </div>
-<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#ae46e08d579f4acbad029b4cd4f4fffaf">setDio2AsRfSwitch</a>(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160; </div>
-<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x126x.html#acbe2d75b1e2df8bcc58c4fd9d8e6e4f9">getDataRate</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160; </div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_physical_layer.html#aabc94ab27a9ee6daaafa9b47dde5f75b">getRSSI</a>(<span class="keywordtype">bool</span> packet = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160; </div>
-<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x126x.html#ae36823d3539667bdf7d2f073bd4fa1ca">getSNR</a>();</div>
-<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160; </div>
-<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x126x.html#a068d709ffb79ae66d718ffb76ffae997">getFrequencyError</a>();</div>
-<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160; </div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_s_x126x.html#ac4ef8c8751a3c09d64e431684840c987">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160; </div>
-<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#abc3a4f9213b2a7052e97c2e3a0bf45a5">fixedPacketLengthMode</a>(uint8_t len = RADIOLIB_SX126X_MAX_PACKET_LENGTH);</div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160; </div>
-<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a92c157efe751b4ae73d22ff44115285d">variablePacketLengthMode</a>(uint8_t maxLen = RADIOLIB_SX126X_MAX_PACKET_LENGTH);</div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160; </div>
-<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;    uint32_t <a class="code" href="class_s_x126x.html#a7e342ddbef84cf845bef8f4448b8da10">getTimeOnAir</a>(<span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160; </div>
-<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#adec09cba71494bd927ad1da786606ca6">implicitHeader</a>(<span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160; </div>
-<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a3765f534418d4e0540c179621c019138">explicitHeader</a>();</div>
-<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160; </div>
-<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a21c263ce1a339faa74c568d9afb81cd2">setRegulatorLDO</a>();</div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160; </div>
-<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a5ae69309ca0cf5f13c60f2d162916ff8">setRegulatorDCDC</a>();</div>
-<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160; </div>
-<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a2b3eb51117558c58384b03de4b7bfe60">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160; </div>
-<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x126x.html#a0a0df468eacc71c1b2a093ac06bfff51">setRfSwitchPins</a>(uint32_t rxEn, uint32_t txEn);</div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160; </div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x126x.html#a2cb5ed645ebcc6f3f17d77e32c2ccdd7">setRfSwitchTable</a>(<span class="keyword">const</span> uint32_t (&amp;pins)[<a class="code" href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a>], <span class="keyword">const</span> <a class="code" href="struct_module_1_1_rf_switch_mode__t.html">Module::RfSwitchMode_t</a> table[]);</div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160; </div>
-<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a420c23bb1861646e29f44c0f4c646ee8">forceLDRO</a>(<span class="keywordtype">bool</span> enable);</div>
-<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160; </div>
-<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#ab9ce38cfeaa36ddcc2d82b2974d7088c">autoLDRO</a>();</div>
-<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160; </div>
-<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;    uint8_t <a class="code" href="class_s_x126x.html#a819bb3ced0f184a63cbfbef408a68561">randomByte</a>();</div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160; </div>
-<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a269c8e4ae0d21af88e9422ccf9708c1e">invertIQ</a>(<span class="keywordtype">bool</span> enable) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160; </div>
-<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;<span class="preprocessor">    #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)</span></div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x126x.html#abbf8b4623da8c2caa83a8c3d35a44d0a">setDirectAction</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span>));</div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; </div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x126x.html#a8cdc4f25d4193dc75f9442874131eab3">readBit</a>(uint32_t pin);</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; </div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a2af78b744b3e61d3857bed93c3b1bde1">uploadPatch</a>(<span class="keyword">const</span> uint32_t* patch, <span class="keywordtype">size_t</span> len, <span class="keywordtype">bool</span> nonvolatile = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; </div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a8a3ad4e12df862ab18b326d9dba26d66">spectralScanStart</a>(uint16_t numSamples, uint8_t window = RADIOLIB_SX126X_SPECTRAL_SCAN_WINDOW_DEFAULT, uint8_t interval = RADIOLIB_SX126X_SCAN_INTERVAL_8_20_US);</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;    </div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x126x.html#a865397e1cca38bec2d055c047825ea07">spectralScanAbort</a>();</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; </div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a5595fff99d76d50d711b8cdad98527c4">spectralScanGetStatus</a>();</div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; </div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#ae473773e5bed4b08452e80311bdb26f2">spectralScanGetResult</a>(uint16_t* results);</div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; </div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;    <span class="comment">// SX126x SPI command implementations</span></div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;    int16_t setFs();</div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;    int16_t setTx(uint32_t timeout = 0);</div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;    int16_t setRx(uint32_t timeout);</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;    int16_t setCad(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);</div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;    int16_t setPaConfig(uint8_t paDutyCycle, uint8_t deviceSel, uint8_t hpMax = RADIOLIB_SX126X_PA_CONFIG_HP_MAX, uint8_t paLut = RADIOLIB_SX126X_PA_CONFIG_PA_LUT);</div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;    int16_t writeRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);</div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;    int16_t readRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);</div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;    int16_t writeBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);</div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;    int16_t readBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);</div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;    int16_t setDioIrqParams(uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask = RADIOLIB_SX126X_IRQ_NONE, uint16_t dio3Mask = RADIOLIB_SX126X_IRQ_NONE);</div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;    <span class="keyword">virtual</span> int16_t clearIrqStatus(uint16_t clearIrqParams = RADIOLIB_SX126X_IRQ_ALL);</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;    int16_t setRfFrequency(uint32_t frf);</div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;    int16_t calibrateImage(uint8_t* data);</div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;    uint8_t getPacketType();</div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;    int16_t setTxParams(uint8_t power, uint8_t rampTime = RADIOLIB_SX126X_PA_RAMP_200U);</div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;    int16_t setModulationParams(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);</div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;    int16_t setModulationParamsFSK(uint32_t br, uint8_t sh, uint8_t rxBw, uint32_t freqDev);</div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;    int16_t setPacketParams(uint16_t preambleLen, uint8_t crcType, uint8_t payloadLen, uint8_t hdrType, uint8_t <a class="code" href="class_s_x126x.html#a269c8e4ae0d21af88e9422ccf9708c1e">invertIQ</a>);</div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    int16_t setPacketParamsFSK(uint16_t preambleLen, uint8_t crcType, uint8_t syncWordLen, uint8_t addrCmp, uint8_t whiten, uint8_t packType = RADIOLIB_SX126X_GFSK_PACKET_VARIABLE, uint8_t payloadLen = 0xFF, uint8_t preambleDetectorLen = RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_16);</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;    int16_t setBufferBaseAddress(uint8_t txBaseAddress = 0x00, uint8_t rxBaseAddress = 0x00);</div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;    int16_t setRegulatorMode(uint8_t mode);</div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;    uint8_t getStatus();</div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;    uint32_t getPacketStatus();</div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;    uint16_t getDeviceErrors();</div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;    int16_t clearDeviceErrors();</div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; </div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;    int16_t startReceiveCommon(uint32_t timeout = RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags = RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask = RADIOLIB_SX126X_IRQ_RX_DONE);</div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;    int16_t setFrequencyRaw(<span class="keywordtype">float</span> freq);</div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;    int16_t setPacketMode(uint8_t mode, uint8_t len);</div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;    int16_t setHeaderType(uint8_t hdrType, <span class="keywordtype">size_t</span> len = 0xFF);</div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;    int16_t directMode();</div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;    int16_t packetMode();</div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; </div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;    <span class="comment">// fixes to errata</span></div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;    int16_t fixSensitivity();</div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;    int16_t fixPaClamping(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;    int16_t fixImplicitTimeout();</div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;    int16_t fixInvertedIQ(uint8_t iqConfig);</div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; </div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;    <a class="code" href="class_module.html">Module</a>* mod;</div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; </div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;    <span class="comment">// common low-level SPI interface</span></div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;    <span class="keyword">static</span> int16_t SPIparseStatus(uint8_t in);</div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; </div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; </div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;    uint8_t bandwidth = 0, spreadingFactor = 0, codingRate = 0, ldrOptimize = 0, crcTypeLoRa = 0, headerType = 0;</div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;    uint16_t preambleLengthLoRa = 0;</div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    <span class="keywordtype">float</span> bandwidthKhz = 0;</div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    <span class="keywordtype">bool</span> ldroAuto = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; </div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;    uint32_t bitRate = 0, frequencyDev = 0;</div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    uint8_t rxBandwidth = 0, pulseShape = 0, crcTypeFSK = 0, syncWordLength = 0, addrComp = 0, whitening = 0, packetType = 0;</div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;    uint16_t preambleLengthFSK = 0;</div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    <span class="keywordtype">float</span> rxBandwidthKhz = 0;</div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; </div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    <span class="keywordtype">float</span> dataRateMeasured = 0;</div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; </div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;    uint32_t tcxoDelay = 0;</div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; </div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;    <span class="keywordtype">size_t</span> implicitLen = 0;</div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;    uint8_t invertIQEnabled = RADIOLIB_SX126X_LORA_IQ_STANDARD;</div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* chipType;</div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; </div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;    <span class="comment">// Allow subclasses to define different TX modes</span></div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;    uint8_t txMode = <a class="code" href="class_module.html#a5a67b3a63420d762ecba9448671c99bfa269f4bc8ba3eb3d8568feb7b2decf571">Module::MODE_TX</a>;</div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; </div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;    int16_t config(uint8_t modem);</div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;    <span class="keywordtype">bool</span> findChip(<span class="keyword">const</span> <span class="keywordtype">char</span>* verStr);</div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;};</div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; </div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; </div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160; </div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">startChannelScan</a>(uint8_t symbolNum = RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak = RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin = RADIOLIB_SX126X_CAD_PARAM_DEFAULT);</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160; </div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#abf1c3d6fa419a1e3ef11db63d3f46f8f">getChannelScanResult</a>();</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160; </div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    <span class="comment">// configuration methods</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160; </div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a2f60df59c80241d98ce078c0417a7f08">setBandwidth</a>(<span class="keywordtype">float</span> bw);</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160; </div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#ae5993359ace652fbdc862eb23fdd263d">setSpreadingFactor</a>(uint8_t sf);</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160; </div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#afd3113858966e878e9c67a1e710bd586">setCodingRate</a>(uint8_t cr);</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160; </div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a9d92dce566f8aefa836fe8f332e9560f">setSyncWord</a>(uint8_t syncWord, uint8_t controlBits = 0x44);</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160; </div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a8f971dca834be7e0470a9a9f0c01854e">setCurrentLimit</a>(<span class="keywordtype">float</span> currentLimit);</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160; </div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x126x.html#aa668babb0bd129b2facee9fd280525ab">getCurrentLimit</a>();</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160; </div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#ad6274222ccf534e98e3cd17dfa1520d4">setPreambleLength</a>(<span class="keywordtype">size_t</span> preambleLength) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160; </div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a7cd95a5f2e39ae8fb1a3040e77fa21a3">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160; </div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a7deeef45d7f64a4018a3e56aaea4eb0e">setBitRate</a>(<span class="keywordtype">float</span> br);</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160; </div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#af30a581d31feae6f50c0591d1ee113f1">setDataRate</a>(<a class="code" href="union_data_rate__t.html">DataRate_t</a> dr) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160; </div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a59d443c02d4620cda32c63a00c6bcc22">setRxBandwidth</a>(<span class="keywordtype">float</span> rxBw);</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160; </div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a920aa76ff5f0f579424ef6de92e588c8">setRxBoostedGainMode</a>(<span class="keywordtype">bool</span> rxbgm, <span class="keywordtype">bool</span> persist = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160; </div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a1d8f4deb555844b24c2426dd86e69676">setDataShaping</a>(uint8_t sh) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160; </div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a9d92dce566f8aefa836fe8f332e9560f">setSyncWord</a>(uint8_t* syncWord, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160; </div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#ac594fbb30c5010658c970a64654c7162">setSyncBits</a>(uint8_t *syncWord, uint8_t bitsLen);</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160; </div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a514cabe74bbe3434d7e4f244c4077752">setNodeAddress</a>(uint8_t nodeAddr);</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160; </div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#abd8eea7e468db3d6064c19d4934d5034">setBroadcastAddress</a>(uint8_t broadAddr);</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160; </div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#afc3a7a42c401b6c44e00cb6c5b9696f2">disableAddressFiltering</a>();</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160; </div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a95007639c2648a1dbb614493224606f1">setCRC</a>(uint8_t len, uint16_t initial = 0x1D0F, uint16_t polynomial = 0x1021, <span class="keywordtype">bool</span> inverted = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160; </div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a67702de41ae866b9f9d73234fc9ae376">setWhitening</a>(<span class="keywordtype">bool</span> enabled, uint16_t initial = 0x0100);</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160; </div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a57bee6f4b3a3b7ec646ac8de347ee0d6">setTCXO</a>(<span class="keywordtype">float</span> voltage, uint32_t delay = 5000);</div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160; </div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#ae46e08d579f4acbad029b4cd4f4fffaf">setDio2AsRfSwitch</a>(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160; </div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x126x.html#acbe2d75b1e2df8bcc58c4fd9d8e6e4f9">getDataRate</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160; </div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_physical_layer.html#aabc94ab27a9ee6daaafa9b47dde5f75b">getRSSI</a>(<span class="keywordtype">bool</span> packet = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160; </div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x126x.html#ae36823d3539667bdf7d2f073bd4fa1ca">getSNR</a>();</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160; </div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x126x.html#a068d709ffb79ae66d718ffb76ffae997">getFrequencyError</a>();</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160; </div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_s_x126x.html#ac4ef8c8751a3c09d64e431684840c987">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160; </div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#abc3a4f9213b2a7052e97c2e3a0bf45a5">fixedPacketLengthMode</a>(uint8_t len = RADIOLIB_SX126X_MAX_PACKET_LENGTH);</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160; </div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a92c157efe751b4ae73d22ff44115285d">variablePacketLengthMode</a>(uint8_t maxLen = RADIOLIB_SX126X_MAX_PACKET_LENGTH);</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160; </div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;    uint32_t <a class="code" href="class_s_x126x.html#a7e342ddbef84cf845bef8f4448b8da10">getTimeOnAir</a>(<span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160; </div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#adec09cba71494bd927ad1da786606ca6">implicitHeader</a>(<span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160; </div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a3765f534418d4e0540c179621c019138">explicitHeader</a>();</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160; </div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a21c263ce1a339faa74c568d9afb81cd2">setRegulatorLDO</a>();</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160; </div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a5ae69309ca0cf5f13c60f2d162916ff8">setRegulatorDCDC</a>();</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160; </div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a2b3eb51117558c58384b03de4b7bfe60">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160; </div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x126x.html#a0a0df468eacc71c1b2a093ac06bfff51">setRfSwitchPins</a>(uint32_t rxEn, uint32_t txEn);</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160; </div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x126x.html#a2cb5ed645ebcc6f3f17d77e32c2ccdd7">setRfSwitchTable</a>(<span class="keyword">const</span> uint32_t (&amp;pins)[<a class="code" href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a>], <span class="keyword">const</span> <a class="code" href="struct_module_1_1_rf_switch_mode__t.html">Module::RfSwitchMode_t</a> table[]);</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160; </div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a420c23bb1861646e29f44c0f4c646ee8">forceLDRO</a>(<span class="keywordtype">bool</span> enable);</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160; </div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#ab9ce38cfeaa36ddcc2d82b2974d7088c">autoLDRO</a>();</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160; </div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;    uint8_t <a class="code" href="class_s_x126x.html#a819bb3ced0f184a63cbfbef408a68561">randomByte</a>();</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160; </div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a269c8e4ae0d21af88e9422ccf9708c1e">invertIQ</a>(<span class="keywordtype">bool</span> enable) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160; </div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;<span class="preprocessor">    #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)</span></div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x126x.html#abbf8b4623da8c2caa83a8c3d35a44d0a">setDirectAction</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span>));</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; </div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x126x.html#a8cdc4f25d4193dc75f9442874131eab3">readBit</a>(uint32_t pin);</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; </div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a2af78b744b3e61d3857bed93c3b1bde1">uploadPatch</a>(<span class="keyword">const</span> uint32_t* patch, <span class="keywordtype">size_t</span> len, <span class="keywordtype">bool</span> nonvolatile = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; </div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a8a3ad4e12df862ab18b326d9dba26d66">spectralScanStart</a>(uint16_t numSamples, uint8_t window = RADIOLIB_SX126X_SPECTRAL_SCAN_WINDOW_DEFAULT, uint8_t interval = RADIOLIB_SX126X_SCAN_INTERVAL_8_20_US);</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;    </div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x126x.html#a865397e1cca38bec2d055c047825ea07">spectralScanAbort</a>();</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; </div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#a5595fff99d76d50d711b8cdad98527c4">spectralScanGetStatus</a>();</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; </div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;    int16_t <a class="code" href="class_s_x126x.html#ae473773e5bed4b08452e80311bdb26f2">spectralScanGetResult</a>(uint16_t* results);</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; </div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;    <span class="comment">// SX126x SPI command implementations</span></div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;    int16_t setFs();</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;    int16_t setTx(uint32_t timeout = 0);</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;    int16_t setRx(uint32_t timeout);</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;    int16_t setCad(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;    int16_t setPaConfig(uint8_t paDutyCycle, uint8_t deviceSel, uint8_t hpMax = RADIOLIB_SX126X_PA_CONFIG_HP_MAX, uint8_t paLut = RADIOLIB_SX126X_PA_CONFIG_PA_LUT);</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;    int16_t writeRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;    int16_t readRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;    int16_t writeBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;    int16_t readBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;    int16_t setDioIrqParams(uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask = RADIOLIB_SX126X_IRQ_NONE, uint16_t dio3Mask = RADIOLIB_SX126X_IRQ_NONE);</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;    <span class="keyword">virtual</span> int16_t clearIrqStatus(uint16_t clearIrqParams = RADIOLIB_SX126X_IRQ_ALL);</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;    int16_t setRfFrequency(uint32_t frf);</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;    int16_t calibrateImage(uint8_t* data);</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;    uint8_t getPacketType();</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;    int16_t setTxParams(uint8_t power, uint8_t rampTime = RADIOLIB_SX126X_PA_RAMP_200U);</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;    int16_t setModulationParams(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;    int16_t setModulationParamsFSK(uint32_t br, uint8_t sh, uint8_t rxBw, uint32_t freqDev);</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    int16_t setPacketParams(uint16_t preambleLen, uint8_t crcType, uint8_t payloadLen, uint8_t hdrType, uint8_t <a class="code" href="class_s_x126x.html#a269c8e4ae0d21af88e9422ccf9708c1e">invertIQ</a>);</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;    int16_t setPacketParamsFSK(uint16_t preambleLen, uint8_t crcType, uint8_t syncWordLen, uint8_t addrCmp, uint8_t whiten, uint8_t packType = RADIOLIB_SX126X_GFSK_PACKET_VARIABLE, uint8_t payloadLen = 0xFF, uint8_t preambleDetectorLen = RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_16);</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;    int16_t setBufferBaseAddress(uint8_t txBaseAddress = 0x00, uint8_t rxBaseAddress = 0x00);</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;    int16_t setRegulatorMode(uint8_t mode);</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;    uint8_t getStatus();</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;    uint32_t getPacketStatus();</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;    uint16_t getDeviceErrors();</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;    int16_t clearDeviceErrors();</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; </div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;    int16_t startReceiveCommon(uint32_t timeout = RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags = RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask = RADIOLIB_SX126X_IRQ_RX_DONE);</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;    int16_t setFrequencyRaw(<span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;    int16_t setPacketMode(uint8_t mode, uint8_t len);</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;    int16_t setHeaderType(uint8_t hdrType, <span class="keywordtype">size_t</span> len = 0xFF);</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;    int16_t directMode();</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;    int16_t packetMode();</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; </div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;    <span class="comment">// fixes to errata</span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;    int16_t fixSensitivity();</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;    int16_t fixPaClamping(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;    int16_t fixImplicitTimeout();</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;    int16_t fixInvertedIQ(uint8_t iqConfig);</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; </div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;    <a class="code" href="class_module.html">Module</a>* mod;</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; </div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;    <span class="comment">// common low-level SPI interface</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;    <span class="keyword">static</span> int16_t SPIparseStatus(uint8_t in);</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; </div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; </div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;    uint8_t bandwidth = 0, spreadingFactor = 0, codingRate = 0, ldrOptimize = 0, crcTypeLoRa = 0, headerType = 0;</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    uint16_t preambleLengthLoRa = 0;</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    <span class="keywordtype">float</span> bandwidthKhz = 0;</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;    <span class="keywordtype">bool</span> ldroAuto = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; </div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    uint32_t bitRate = 0, frequencyDev = 0;</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;    uint8_t rxBandwidth = 0, pulseShape = 0, crcTypeFSK = 0, syncWordLength = 0, addrComp = 0, whitening = 0, packetType = 0;</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    uint16_t preambleLengthFSK = 0;</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    <span class="keywordtype">float</span> rxBandwidthKhz = 0;</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; </div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;    <span class="keywordtype">float</span> dataRateMeasured = 0;</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; </div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;    uint32_t tcxoDelay = 0;</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; </div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;    <span class="keywordtype">size_t</span> implicitLen = 0;</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;    uint8_t invertIQEnabled = RADIOLIB_SX126X_LORA_IQ_STANDARD;</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* chipType;</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; </div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;    <span class="comment">// Allow subclasses to define different TX modes</span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;    uint8_t txMode = <a class="code" href="class_module.html#a5a67b3a63420d762ecba9448671c99bfa269f4bc8ba3eb3d8568feb7b2decf571">Module::MODE_TX</a>;</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; </div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;    int16_t config(uint8_t modem);</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;    <span class="keywordtype">bool</span> findChip(<span class="keyword">const</span> <span class="keywordtype">char</span>* verStr);</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;};</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; </div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; </div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="ttc" id="aclass_module_html"><div class="ttname"><a href="class_module.html">Module</a></div><div class="ttdoc">Implements all common low-level methods to control the wireless module. Every module class contains o...</div><div class="ttdef"><b>Definition:</b> Module.h:31</div></div>
 <div class="ttc" id="aclass_module_html_a0c11551e12579bbabf57b19e12555b3c"><div class="ttname"><a href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a></div><div class="ttdeci">static const size_t RFSWITCH_MAX_PINS</div><div class="ttdoc">The maximum number of pins supported by the RF switch code.</div><div class="ttdef"><b>Definition:</b> Module.h:42</div></div>
 <div class="ttc" id="aclass_module_html_a5a67b3a63420d762ecba9448671c99bfa269f4bc8ba3eb3d8568feb7b2decf571"><div class="ttname"><a href="class_module.html#a5a67b3a63420d762ecba9448671c99bfa269f4bc8ba3eb3d8568feb7b2decf571">Module::MODE_TX</a></div><div class="ttdeci">@ MODE_TX</div><div class="ttdef"><b>Definition:</b> Module.h:71</div></div>
diff --git a/_s_x127x_8h_source.html b/_s_x127x_8h_source.html
index 37a18d03..61c78e33 100644
--- a/_s_x127x_8h_source.html
+++ b/_s_x127x_8h_source.html
@@ -742,158 +742,158 @@ $(document).ready(function(){initNavTree('_s_x127x_8h_source.html',''); initResi
 <div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    </div>
 <div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ae90a5df2d414dfcafd1e3b8aa790f9fd">startReceive</a>(uint32_t mode, uint16_t irqFlags, uint16_t irqMask, <span class="keywordtype">size_t</span> len);</div>
 <div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160; </div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160; </div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">startChannelScan</a>();</div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160; </div>
-<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    <span class="comment">// configuration methods</span></div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160; </div>
-<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ac5c7f4584352a12390594395d9c29bde">setSyncWord</a>(uint8_t syncWord);</div>
-<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160; </div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a400575e3d83977bd250c5cb382fc7002">setCurrentLimit</a>(uint8_t currentLimit);</div>
-<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160; </div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a844499bace6ae001446d71bee2877656">setPreambleLength</a>(<span class="keywordtype">size_t</span> preambleLength) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160; </div>
-<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x127x.html#af6aa854a2668d70f4d3a374a49440362">getFrequencyError</a>(<span class="keywordtype">bool</span> autoCorrect = <span class="keyword">false</span>);</div>
-<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160; </div>
-<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x127x.html#a5094ba2d9268340b7aba99afe5da0544">getAFCError</a>();</div>
-<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160; </div>
-<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x127x.html#abc5069b39dc31b637ee561d5745e1deb">getSNR</a>();</div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160; </div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x127x.html#adc25b685de0859b799488bf7729350b6">getDataRate</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160; </div>
-<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a448ea8a6a6011a9cdddd4e09bd6c9679">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160; </div>
-<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a2cc53b9f9d90647c5709cb974779cf53">setRxBandwidth</a>(<span class="keywordtype">float</span> rxBw);</div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160; </div>
-<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a63e00b1ecf1b0dcb6d8a91fc9b8ea5ef">setAFCBandwidth</a>(<span class="keywordtype">float</span> afcBw);</div>
-<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160; </div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a41f8cfcc2cdeb25a8e5a03f1ba4edd1e">setAFC</a>(<span class="keywordtype">bool</span> isEnabled);</div>
-<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160; </div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ab0f67330124cefc07a462e77922453d0">setAFCAGCTrigger</a>(uint8_t trigger);</div>
-<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160; </div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ac5c7f4584352a12390594395d9c29bde">setSyncWord</a>(uint8_t* syncWord, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160; </div>
-<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ab99630d50672b43fc7162ba8f3293f95">setNodeAddress</a>(uint8_t nodeAddr);</div>
-<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160; </div>
-<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#abc51ce6718153e4963128f25bb5aab40">setBroadcastAddress</a>(uint8_t broadAddr);</div>
-<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160; </div>
-<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#afe6e9bbfd75f9cad26f9f72c34c4ada5">disableAddressFiltering</a>();</div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160; </div>
-<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a24ef0af19a6b8954f956a3c3ad4286ee">setOOK</a>(<span class="keywordtype">bool</span> enableOOK);</div>
-<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160; </div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a8b93142202167270db109d18b743c744">setOokThresholdType</a>(uint8_t type);</div>
-<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160; </div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#aac2f43d70b5f94e49e09b4c9f082f46d">setOokPeakThresholdDecrement</a>(uint8_t value);</div>
-<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160; </div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a17ff4e4e0afaebed727648e1400be538">setOokFixedOrFloorThreshold</a>(uint8_t value);</div>
-<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160; </div>
-<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a48ca43e6aad02815fa1507f0f0831c54">setOokPeakThresholdStep</a>(uint8_t value);</div>
-<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160; </div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a1921e1d9fc1d888d2e73bb732e7db7aa">enableBitSync</a>();</div>
-<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160; </div>
-<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a8025b05b8f4f2f2abb4cd803b06e2ebd">disableBitSync</a>();</div>
-<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160; </div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_s_x127x.html#a462fa74275e67c296328a01f361892d5">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; </div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a6fb42d9cd518e9f6408a40753c0be359">fixedPacketLengthMode</a>(uint8_t len = RADIOLIB_SX127X_MAX_PACKET_LENGTH_FSK);</div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; </div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a1d39296b40e7282ef44d8f376065e92c">variablePacketLengthMode</a>(uint8_t maxLen = RADIOLIB_SX127X_MAX_PACKET_LENGTH_FSK);</div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; </div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;    uint32_t <a class="code" href="class_s_x127x.html#ad532e1a62c6ee2c58f9517e6e62728ac">getTimeOnAir</a>(<span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; </div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ab531ad461b250a060e92d9c744e79070">setCrcFiltering</a>(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; </div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ad3955f85f456edae772a51025a19029b">setRSSIConfig</a>(uint8_t smoothingSamples, int8_t offset = 0);</div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; </div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#abad2d455012bd28d304589c8164390eb">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; </div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;    uint16_t <a class="code" href="class_s_x127x.html#ac5d2ddb517e474a699b4539653b3754d">getIRQFlags</a>();</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; </div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;    uint8_t <a class="code" href="class_s_x127x.html#a2cf6a5bd8f3257f98ee4f250cbdf8bdc">getModemStatus</a>();</div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; </div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;    int8_t <a class="code" href="class_s_x127x.html#a95bc32a555675879ad9e2a9e399dc6c1">getTempRaw</a>();</div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; </div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x127x.html#a8ca9edcae05060cce3ff7ee58faeb4e2">setRfSwitchPins</a>(uint32_t rxEn, uint32_t txEn);</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; </div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x127x.html#ab9625a5246a45112267ce441ac2de254">setRfSwitchTable</a>(<span class="keyword">const</span> uint32_t (&amp;pins)[<a class="code" href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a>], <span class="keyword">const</span> <a class="code" href="struct_module_1_1_rf_switch_mode__t.html">Module::RfSwitchMode_t</a> table[]);</div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; </div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;    uint8_t <a class="code" href="class_s_x127x.html#a68cba1ff1e6bfd9b3034c97f3932e450">randomByte</a>();</div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; </div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#aee5324d7d854e7a2f6768221d4f362cd">getChipVersion</a>();</div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; </div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a363a436978ba990e1bf7d73f648ad7e9">invertIQ</a>(<span class="keywordtype">bool</span> enable) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; </div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="preprocessor">    #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)</span></div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x127x.html#aa3f409359eafa5988e8e4c2948735238">setDirectAction</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span>));</div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; </div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x127x.html#a1a2dc7554414f0ce2ee0db23087f698a">readBit</a>(uint32_t pin);</div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; </div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a7f04a7e883057908df18f06c7f74c7e1">setFHSSHoppingPeriod</a>(uint8_t freqHoppingPeriod);</div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; </div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;    uint8_t <a class="code" href="class_s_x127x.html#ad7600b8b0aac4d8a5e962d631145b617">getFHSSHoppingPeriod</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; </div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;    uint8_t <a class="code" href="class_s_x127x.html#a56340d1bdc69b3efc64636be39445a9c">getFHSSChannel</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; </div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x127x.html#a41089d9e5b45217d3e31ac22b5326b66">clearFHSSInt</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; </div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a103b606166eba8c69bff061270744768">setDIOMapping</a>(uint32_t pin, uint32_t value);</div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; </div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a7b85344084b800966a46ace59dcb5277">setDIOPreambleDetect</a>(<span class="keywordtype">bool</span> usePreambleDetect);</div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; </div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_physical_layer.html#aabc94ab27a9ee6daaafa9b47dde5f75b">getRSSI</a>(<span class="keywordtype">bool</span> packet, <span class="keywordtype">bool</span> skipReceive, int16_t offset);</div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; </div>
-<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a5094d0f471aaa428167816d1ac30bb76">setRSSIThreshold</a>(<span class="keywordtype">float</span> dbm);</div>
-<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; </div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;    <a class="code" href="class_module.html">Module</a>* mod;</div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; </div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; </div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;    <span class="keywordtype">float</span> frequency = 0;</div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;    <span class="keywordtype">float</span> bandwidth = 0;</div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;    uint8_t spreadingFactor = 0;</div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;    uint8_t codingRate = 0;</div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;    <span class="keywordtype">float</span> bitRate = 0;</div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;    <span class="keywordtype">bool</span> ookEnabled = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;    <span class="keywordtype">bool</span> crcEnabled = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;    <span class="keywordtype">bool</span> crcOn = <span class="keyword">true</span>; <span class="comment">// default value used in FSK mode</span></div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;    <span class="keywordtype">size_t</span> packetLength = 0;</div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; </div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;    int16_t setFrequencyRaw(<span class="keywordtype">float</span> newFreq);</div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;    int16_t setBitRateCommon(<span class="keywordtype">float</span> br, uint8_t fracRegAddr);</div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;    int16_t config();</div>
-<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;    int16_t configFSK();</div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;    int16_t getActiveModem();</div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;    int16_t directMode();</div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    int16_t setPacketMode(uint8_t mode, uint8_t len);</div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; </div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
-<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;    <span class="keywordtype">float</span> dataRate = 0;</div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;    <span class="keywordtype">bool</span> packetLengthQueried = <span class="keyword">false</span>; <span class="comment">// FSK packet length is the first byte in FIFO, length can only be queried once</span></div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;    uint8_t packetLengthConfig = RADIOLIB_SX127X_PACKET_VARIABLE;</div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; </div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;    <span class="keywordtype">bool</span> findChip(uint8_t ver);</div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;    int16_t setMode(uint8_t mode);</div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;    int16_t setActiveModem(uint8_t modem);</div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;    <span class="keywordtype">void</span> clearIRQFlags();</div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;    <span class="keywordtype">void</span> clearFIFO(<span class="keywordtype">size_t</span> count); <span class="comment">// used mostly to clear remaining bytes in FIFO after a packet read</span></div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; </div>
-<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;    <span class="keyword">static</span> uint8_t calculateBWManExp(<span class="keywordtype">float</span> bandwidth);</div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; </div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> errataFix(<span class="keywordtype">bool</span> rx) = 0;</div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;};</div>
-<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; </div>
-<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; </div>
-<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160; </div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">startChannelScan</a>();</div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160; </div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;    <span class="comment">// configuration methods</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160; </div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ac5c7f4584352a12390594395d9c29bde">setSyncWord</a>(uint8_t syncWord);</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160; </div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a400575e3d83977bd250c5cb382fc7002">setCurrentLimit</a>(uint8_t currentLimit);</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160; </div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a844499bace6ae001446d71bee2877656">setPreambleLength</a>(<span class="keywordtype">size_t</span> preambleLength) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160; </div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x127x.html#af6aa854a2668d70f4d3a374a49440362">getFrequencyError</a>(<span class="keywordtype">bool</span> autoCorrect = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160; </div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x127x.html#a5094ba2d9268340b7aba99afe5da0544">getAFCError</a>();</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160; </div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x127x.html#abc5069b39dc31b637ee561d5745e1deb">getSNR</a>();</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160; </div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x127x.html#adc25b685de0859b799488bf7729350b6">getDataRate</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160; </div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a448ea8a6a6011a9cdddd4e09bd6c9679">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160; </div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a2cc53b9f9d90647c5709cb974779cf53">setRxBandwidth</a>(<span class="keywordtype">float</span> rxBw);</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160; </div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a63e00b1ecf1b0dcb6d8a91fc9b8ea5ef">setAFCBandwidth</a>(<span class="keywordtype">float</span> afcBw);</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160; </div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a41f8cfcc2cdeb25a8e5a03f1ba4edd1e">setAFC</a>(<span class="keywordtype">bool</span> isEnabled);</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160; </div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ab0f67330124cefc07a462e77922453d0">setAFCAGCTrigger</a>(uint8_t trigger);</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160; </div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ac5c7f4584352a12390594395d9c29bde">setSyncWord</a>(uint8_t* syncWord, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160; </div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ab99630d50672b43fc7162ba8f3293f95">setNodeAddress</a>(uint8_t nodeAddr);</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160; </div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#abc51ce6718153e4963128f25bb5aab40">setBroadcastAddress</a>(uint8_t broadAddr);</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160; </div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#afe6e9bbfd75f9cad26f9f72c34c4ada5">disableAddressFiltering</a>();</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160; </div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a24ef0af19a6b8954f956a3c3ad4286ee">setOOK</a>(<span class="keywordtype">bool</span> enableOOK);</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160; </div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a8b93142202167270db109d18b743c744">setOokThresholdType</a>(uint8_t type);</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160; </div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#aac2f43d70b5f94e49e09b4c9f082f46d">setOokPeakThresholdDecrement</a>(uint8_t value);</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160; </div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a17ff4e4e0afaebed727648e1400be538">setOokFixedOrFloorThreshold</a>(uint8_t value);</div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160; </div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a48ca43e6aad02815fa1507f0f0831c54">setOokPeakThresholdStep</a>(uint8_t value);</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160; </div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a1921e1d9fc1d888d2e73bb732e7db7aa">enableBitSync</a>();</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160; </div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a8025b05b8f4f2f2abb4cd803b06e2ebd">disableBitSync</a>();</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160; </div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_s_x127x.html#a462fa74275e67c296328a01f361892d5">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; </div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a6fb42d9cd518e9f6408a40753c0be359">fixedPacketLengthMode</a>(uint8_t len = RADIOLIB_SX127X_MAX_PACKET_LENGTH_FSK);</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; </div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a1d39296b40e7282ef44d8f376065e92c">variablePacketLengthMode</a>(uint8_t maxLen = RADIOLIB_SX127X_MAX_PACKET_LENGTH_FSK);</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; </div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;    uint32_t <a class="code" href="class_s_x127x.html#ad532e1a62c6ee2c58f9517e6e62728ac">getTimeOnAir</a>(<span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; </div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ab531ad461b250a060e92d9c744e79070">setCrcFiltering</a>(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; </div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#ad3955f85f456edae772a51025a19029b">setRSSIConfig</a>(uint8_t smoothingSamples, int8_t offset = 0);</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; </div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#abad2d455012bd28d304589c8164390eb">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; </div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;    uint16_t <a class="code" href="class_s_x127x.html#ac5d2ddb517e474a699b4539653b3754d">getIRQFlags</a>();</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; </div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;    uint8_t <a class="code" href="class_s_x127x.html#a2cf6a5bd8f3257f98ee4f250cbdf8bdc">getModemStatus</a>();</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; </div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;    int8_t <a class="code" href="class_s_x127x.html#a95bc32a555675879ad9e2a9e399dc6c1">getTempRaw</a>();</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; </div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x127x.html#a8ca9edcae05060cce3ff7ee58faeb4e2">setRfSwitchPins</a>(uint32_t rxEn, uint32_t txEn);</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; </div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x127x.html#ab9625a5246a45112267ce441ac2de254">setRfSwitchTable</a>(<span class="keyword">const</span> uint32_t (&amp;pins)[<a class="code" href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a>], <span class="keyword">const</span> <a class="code" href="struct_module_1_1_rf_switch_mode__t.html">Module::RfSwitchMode_t</a> table[]);</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; </div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;    uint8_t <a class="code" href="class_s_x127x.html#a68cba1ff1e6bfd9b3034c97f3932e450">randomByte</a>();</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; </div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#aee5324d7d854e7a2f6768221d4f362cd">getChipVersion</a>();</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; </div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a363a436978ba990e1bf7d73f648ad7e9">invertIQ</a>(<span class="keywordtype">bool</span> enable) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; </div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="preprocessor">    #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)</span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x127x.html#aa3f409359eafa5988e8e4c2948735238">setDirectAction</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span>));</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; </div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x127x.html#a1a2dc7554414f0ce2ee0db23087f698a">readBit</a>(uint32_t pin);</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; </div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a7f04a7e883057908df18f06c7f74c7e1">setFHSSHoppingPeriod</a>(uint8_t freqHoppingPeriod);</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; </div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;    uint8_t <a class="code" href="class_s_x127x.html#ad7600b8b0aac4d8a5e962d631145b617">getFHSSHoppingPeriod</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; </div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;    uint8_t <a class="code" href="class_s_x127x.html#a56340d1bdc69b3efc64636be39445a9c">getFHSSChannel</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; </div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x127x.html#a41089d9e5b45217d3e31ac22b5326b66">clearFHSSInt</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; </div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a103b606166eba8c69bff061270744768">setDIOMapping</a>(uint32_t pin, uint32_t value);</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; </div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a7b85344084b800966a46ace59dcb5277">setDIOPreambleDetect</a>(<span class="keywordtype">bool</span> usePreambleDetect);</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; </div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_physical_layer.html#aabc94ab27a9ee6daaafa9b47dde5f75b">getRSSI</a>(<span class="keywordtype">bool</span> packet, <span class="keywordtype">bool</span> skipReceive, int16_t offset);</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; </div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;    int16_t <a class="code" href="class_s_x127x.html#a5094d0f471aaa428167816d1ac30bb76">setRSSIThreshold</a>(<span class="keywordtype">float</span> dbm);</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; </div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;    <a class="code" href="class_module.html">Module</a>* mod;</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; </div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; </div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;    <span class="keywordtype">float</span> frequency = 0;</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;    <span class="keywordtype">float</span> bandwidth = 0;</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;    uint8_t spreadingFactor = 0;</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;    uint8_t codingRate = 0;</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;    <span class="keywordtype">float</span> bitRate = 0;</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;    <span class="keywordtype">bool</span> ookEnabled = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;    <span class="keywordtype">bool</span> crcEnabled = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;    <span class="keywordtype">bool</span> crcOn = <span class="keyword">true</span>; <span class="comment">// default value used in FSK mode</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;    <span class="keywordtype">size_t</span> packetLength = 0;</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; </div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;    int16_t setFrequencyRaw(<span class="keywordtype">float</span> newFreq);</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;    int16_t setBitRateCommon(<span class="keywordtype">float</span> br, uint8_t fracRegAddr);</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;    int16_t config();</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;    int16_t configFSK();</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;    int16_t getActiveModem();</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    int16_t directMode();</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;    int16_t setPacketMode(uint8_t mode, uint8_t len);</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; </div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;    <span class="keywordtype">float</span> dataRate = 0;</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;    <span class="keywordtype">bool</span> packetLengthQueried = <span class="keyword">false</span>; <span class="comment">// FSK packet length is the first byte in FIFO, length can only be queried once</span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;    uint8_t packetLengthConfig = RADIOLIB_SX127X_PACKET_VARIABLE;</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; </div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;    <span class="keywordtype">bool</span> findChip(uint8_t ver);</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;    int16_t setMode(uint8_t mode);</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;    int16_t setActiveModem(uint8_t modem);</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;    <span class="keywordtype">void</span> clearIRQFlags();</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;    <span class="keywordtype">void</span> clearFIFO(<span class="keywordtype">size_t</span> count); <span class="comment">// used mostly to clear remaining bytes in FIFO after a packet read</span></div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; </div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;    <span class="keyword">static</span> uint8_t calculateBWManExp(<span class="keywordtype">float</span> bandwidth);</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; </div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> errataFix(<span class="keywordtype">bool</span> rx) = 0;</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;};</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; </div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; </div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="ttc" id="aclass_module_html"><div class="ttname"><a href="class_module.html">Module</a></div><div class="ttdoc">Implements all common low-level methods to control the wireless module. Every module class contains o...</div><div class="ttdef"><b>Definition:</b> Module.h:31</div></div>
 <div class="ttc" id="aclass_module_html_a0c11551e12579bbabf57b19e12555b3c"><div class="ttname"><a href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a></div><div class="ttdeci">static const size_t RFSWITCH_MAX_PINS</div><div class="ttdoc">The maximum number of pins supported by the RF switch code.</div><div class="ttdef"><b>Definition:</b> Module.h:42</div></div>
 <div class="ttc" id="aclass_physical_layer_html"><div class="ttname"><a href="class_physical_layer.html">PhysicalLayer</a></div><div class="ttdoc">Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....</div><div class="ttdef"><b>Definition:</b> PhysicalLayer.h:33</div></div>
diff --git a/_s_x128x_8h_source.html b/_s_x128x_8h_source.html
index ebf599bf..1185a891 100644
--- a/_s_x128x_8h_source.html
+++ b/_s_x128x_8h_source.html
@@ -494,144 +494,144 @@ $(document).ready(function(){initNavTree('_s_x128x_8h_source.html',''); initResi
 <div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160; </div>
 <div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    uint16_t <a class="code" href="class_s_x128x.html#ae1f933f767161cc59fdaca816ab93e22">getIrqStatus</a>();</div>
 <div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160; </div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160; </div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <span class="comment">// configuration methods</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160; </div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a2043ef7bb806968b9d9dcb64561ca371">setFrequency</a>(<span class="keywordtype">float</span> freq);</div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160; </div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#ae93c99c85deb950fe9bc7101142b5f6a">setBandwidth</a>(<span class="keywordtype">float</span> bw);</div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160; </div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#ae435f57132f76f4283abb870176acf54">setSpreadingFactor</a>(uint8_t sf);</div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160; </div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a9da544e4a6120f73a078b46c6138505a">setCodingRate</a>(uint8_t cr, <span class="keywordtype">bool</span> longInterleaving = <span class="keyword">false</span>);</div>
-<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160; </div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#ad988727ea6c9b4e11562651d312514c0">setOutputPower</a>(int8_t pwr);</div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160; </div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a1984a405262f155f16a4759c5f6b0133">setPreambleLength</a>(uint32_t preambleLength);</div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160; </div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a465ac114dbe6844069b5cb989f87c3ee">setBitRate</a>(<span class="keywordtype">float</span> br);</div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160; </div>
-<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a26d0d02e5e53a3172df9208fa343a3f1">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160; </div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a99491c705e88dddc820f884b778f1660">setDataShaping</a>(uint8_t sh) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160; </div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a0efa595867624a54153d693d16f9f731">setSyncWord</a>(uint8_t* syncWord, uint8_t len);</div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160; </div>
-<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a0efa595867624a54153d693d16f9f731">setSyncWord</a>(uint8_t syncWord, uint8_t controlBits = 0x44);</div>
-<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160; </div>
-<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#aa4b1e0b96347011522e053f30202c0fe">setCRC</a>(uint8_t len, uint32_t initial = 0x1D0F, uint16_t polynomial = 0x1021);</div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160; </div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a8b3eea268f21bf911b6eaf37c5eb0b5f">setWhitening</a>(<span class="keywordtype">bool</span> enabled);</div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160; </div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a9346490a6c56edcff2e12ae0369a8df5">setAccessAddress</a>(uint32_t addr);</div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160; </div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a6e45fbfaec7063e52e188f47a3a585a5">setHighSensitivityMode</a>(<span class="keywordtype">bool</span> enable);</div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160; </div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a3837662441a9eb3f0a71f4f667db9e91">setGainControl</a>(uint8_t gain = 0);</div>
-<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160; </div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x128x.html#a94d3003277925e2dc3372548b3311008">getRSSI</a>();</div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160; </div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x128x.html#a89ebf1f4f227cd35c0799c06d5d9c1d2">getSNR</a>();</div>
-<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160; </div>
-<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x128x.html#a2b424000856a9dc212f571d0e8890635">getFrequencyError</a>();</div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160; </div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_s_x128x.html#a390fd0749b316eed67da7b54f4f24735">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160; </div>
-<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;    uint32_t <a class="code" href="class_s_x128x.html#a2361a94f2e12ebc93e750a027d633232">getTimeOnAir</a>(<span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160; </div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#ac69cc622020419cb3393eac5cc88915b">implicitHeader</a>(<span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160; </div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a94b7fb26cc99385d30b0c98b76d8188d">explicitHeader</a>();</div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160; </div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a8720a388d2cd10fac3112b89f4a80947">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160; </div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x128x.html#a5ba683fbc4a46418ce3736f224fb55f2">setRfSwitchPins</a>(uint32_t rxEn, uint32_t txEn);</div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160; </div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x128x.html#ad5789bd27d46b24f54aac9ca55ec9958">setRfSwitchTable</a>(<span class="keyword">const</span> uint32_t (&amp;pins)[<a class="code" href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a>], <span class="keyword">const</span> <a class="code" href="struct_module_1_1_rf_switch_mode__t.html">Module::RfSwitchMode_t</a> table[]);</div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160; </div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;    uint8_t <a class="code" href="class_s_x128x.html#a95637e8addc48b0e1c30c2cf6f54354a">randomByte</a>();</div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160; </div>
-<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a1463f0769b815e95d789fd708dc2ffe6">invertIQ</a>(<span class="keywordtype">bool</span> enable);</div>
-<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160; </div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;<span class="preprocessor">    #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x128x.html#aff1b549077b9d752f53bf9dfc6840236">setDirectAction</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span>));</div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160; </div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x128x.html#aceeb18acbfedb20c6cf60e26d5275793">readBit</a>(uint32_t pin);</div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160; </div>
-<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;    <a class="code" href="class_module.html">Module</a>* mod;</div>
-<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160; </div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160; </div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;    <span class="comment">// cached LoRa parameters</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;    <span class="keywordtype">float</span> bandwidthKhz = 0;</div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    uint8_t bandwidth = 0, spreadingFactor = 0, codingRateLoRa = 0;</div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;    uint8_t preambleLengthLoRa = 0, headerType = 0, payloadLen = 0, crcLoRa = 0;</div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160; </div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;    <span class="comment">// SX128x SPI command implementations</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;    uint8_t getStatus();</div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    int16_t writeRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);</div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    int16_t readRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);</div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    int16_t writeBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);</div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;    int16_t readBuffer(uint8_t* data, uint8_t numBytes);</div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;    int16_t setTx(uint16_t periodBaseCount = RADIOLIB_SX128X_TX_TIMEOUT_NONE, uint8_t periodBase = RADIOLIB_SX128X_PERIOD_BASE_15_625_US);</div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;    int16_t setRx(uint16_t periodBaseCount, uint8_t periodBase = RADIOLIB_SX128X_PERIOD_BASE_15_625_US);</div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    int16_t setCad();</div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;    uint8_t getPacketType();</div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    int16_t setRfFrequency(uint32_t frf);</div>
-<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;    int16_t setTxParams(uint8_t pwr, uint8_t rampTime = RADIOLIB_SX128X_PA_RAMP_10_US);</div>
-<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    int16_t setBufferBaseAddress(uint8_t txBaseAddress = 0x00, uint8_t rxBaseAddress = 0x00);</div>
-<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    int16_t setModulationParams(uint8_t modParam1, uint8_t modParam2, uint8_t modParam3);</div>
-<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    int16_t setPacketParamsGFSK(uint8_t preambleLen, uint8_t syncLen, uint8_t syncMatch, uint8_t crcLen, uint8_t whiten, uint8_t payLen = 0xFF, uint8_t hdrType = RADIOLIB_SX128X_GFSK_FLRC_PACKET_VARIABLE);</div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    int16_t setPacketParamsBLE(uint8_t connState, uint8_t crcLen, uint8_t bleTest, uint8_t whiten);</div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    int16_t setPacketParamsLoRa(uint8_t preambleLen, uint8_t hdrType, uint8_t payLen, uint8_t crc, uint8_t invIQ = RADIOLIB_SX128X_LORA_IQ_STANDARD);</div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    int16_t setDioIrqParams(uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask = RADIOLIB_SX128X_IRQ_NONE, uint16_t dio3Mask = RADIOLIB_SX128X_IRQ_NONE);</div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    int16_t clearIrqStatus(uint16_t clearIrqParams = RADIOLIB_SX128X_IRQ_ALL);</div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    int16_t setRangingRole(uint8_t role);</div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    int16_t setPacketType(uint8_t type);</div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160; </div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;    int16_t setHeaderType(uint8_t hdrType, <span class="keywordtype">size_t</span> len = 0xFF);</div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160; </div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
-<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160; </div>
-<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;    <span class="comment">// common low-level SPI interface</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;    <span class="keyword">static</span> int16_t SPIparseStatus(uint8_t in);</div>
-<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160; </div>
-<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;    <span class="comment">// common parameters</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;    uint8_t power = 0;</div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160; </div>
-<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;    <span class="comment">// cached LoRa parameters</span></div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    uint8_t invertIQEnabled = RADIOLIB_SX128X_LORA_IQ_STANDARD;</div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160; </div>
-<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;    <span class="comment">// cached GFSK parameters</span></div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    <span class="keywordtype">float</span> modIndexReal = 0;</div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    uint16_t bitRateKbps = 0;</div>
-<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    uint8_t bitRate = 0, modIndex = 0, shaping = 0;</div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;    uint8_t preambleLengthGFSK = 0, syncWordLen = 0, syncWordMatch = 0, crcGFSK = 0, whitening = 0;</div>
-<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160; </div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;    <span class="comment">// cached FLRC parameters</span></div>
-<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;    uint8_t codingRateFLRC = 0;</div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160; </div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;    <span class="comment">// cached BLE parameters</span></div>
-<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    uint8_t connectionState = 0, crcBLE = 0, bleTestPayload = 0;</div>
-<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160; </div>
-<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    int16_t config(uint8_t modem);</div>
-<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;};</div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160; </div>
-<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160; </div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160; </div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    <span class="comment">// configuration methods</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160; </div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a2043ef7bb806968b9d9dcb64561ca371">setFrequency</a>(<span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160; </div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#ae93c99c85deb950fe9bc7101142b5f6a">setBandwidth</a>(<span class="keywordtype">float</span> bw);</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160; </div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#ae435f57132f76f4283abb870176acf54">setSpreadingFactor</a>(uint8_t sf);</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160; </div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a9da544e4a6120f73a078b46c6138505a">setCodingRate</a>(uint8_t cr, <span class="keywordtype">bool</span> longInterleaving = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160; </div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#ad988727ea6c9b4e11562651d312514c0">setOutputPower</a>(int8_t pwr);</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160; </div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a1984a405262f155f16a4759c5f6b0133">setPreambleLength</a>(uint32_t preambleLength);</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160; </div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a465ac114dbe6844069b5cb989f87c3ee">setBitRate</a>(<span class="keywordtype">float</span> br);</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160; </div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a26d0d02e5e53a3172df9208fa343a3f1">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160; </div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a99491c705e88dddc820f884b778f1660">setDataShaping</a>(uint8_t sh) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160; </div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a0efa595867624a54153d693d16f9f731">setSyncWord</a>(uint8_t* syncWord, uint8_t len);</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160; </div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a0efa595867624a54153d693d16f9f731">setSyncWord</a>(uint8_t syncWord, uint8_t controlBits = 0x44);</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160; </div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#aa4b1e0b96347011522e053f30202c0fe">setCRC</a>(uint8_t len, uint32_t initial = 0x1D0F, uint16_t polynomial = 0x1021);</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160; </div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a8b3eea268f21bf911b6eaf37c5eb0b5f">setWhitening</a>(<span class="keywordtype">bool</span> enabled);</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160; </div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a9346490a6c56edcff2e12ae0369a8df5">setAccessAddress</a>(uint32_t addr);</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160; </div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a6e45fbfaec7063e52e188f47a3a585a5">setHighSensitivityMode</a>(<span class="keywordtype">bool</span> enable);</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160; </div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a3837662441a9eb3f0a71f4f667db9e91">setGainControl</a>(uint8_t gain = 0);</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160; </div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x128x.html#a94d3003277925e2dc3372548b3311008">getRSSI</a>();</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160; </div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x128x.html#a89ebf1f4f227cd35c0799c06d5d9c1d2">getSNR</a>();</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160; </div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_s_x128x.html#a2b424000856a9dc212f571d0e8890635">getFrequencyError</a>();</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160; </div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_s_x128x.html#a390fd0749b316eed67da7b54f4f24735">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160; </div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;    uint32_t <a class="code" href="class_s_x128x.html#a2361a94f2e12ebc93e750a027d633232">getTimeOnAir</a>(<span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160; </div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#ac69cc622020419cb3393eac5cc88915b">implicitHeader</a>(<span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160; </div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a94b7fb26cc99385d30b0c98b76d8188d">explicitHeader</a>();</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160; </div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a8720a388d2cd10fac3112b89f4a80947">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160; </div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x128x.html#a5ba683fbc4a46418ce3736f224fb55f2">setRfSwitchPins</a>(uint32_t rxEn, uint32_t txEn);</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160; </div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x128x.html#ad5789bd27d46b24f54aac9ca55ec9958">setRfSwitchTable</a>(<span class="keyword">const</span> uint32_t (&amp;pins)[<a class="code" href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a>], <span class="keyword">const</span> <a class="code" href="struct_module_1_1_rf_switch_mode__t.html">Module::RfSwitchMode_t</a> table[]);</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160; </div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;    uint8_t <a class="code" href="class_s_x128x.html#a95637e8addc48b0e1c30c2cf6f54354a">randomByte</a>();</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160; </div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    int16_t <a class="code" href="class_s_x128x.html#a1463f0769b815e95d789fd708dc2ffe6">invertIQ</a>(<span class="keywordtype">bool</span> enable);</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160; </div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;<span class="preprocessor">    #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x128x.html#aff1b549077b9d752f53bf9dfc6840236">setDirectAction</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span>));</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160; </div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_s_x128x.html#aceeb18acbfedb20c6cf60e26d5275793">readBit</a>(uint32_t pin);</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160; </div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;    <a class="code" href="class_module.html">Module</a>* mod;</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160; </div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160; </div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;    <span class="comment">// cached LoRa parameters</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    <span class="keywordtype">float</span> bandwidthKhz = 0;</div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;    uint8_t bandwidth = 0, spreadingFactor = 0, codingRateLoRa = 0;</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;    uint8_t preambleLengthLoRa = 0, headerType = 0, payloadLen = 0, crcLoRa = 0;</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160; </div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;    <span class="comment">// SX128x SPI command implementations</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    uint8_t getStatus();</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    int16_t writeRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    int16_t readRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;    int16_t writeBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;    int16_t readBuffer(uint8_t* data, uint8_t numBytes);</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;    int16_t setTx(uint16_t periodBaseCount = RADIOLIB_SX128X_TX_TIMEOUT_NONE, uint8_t periodBase = RADIOLIB_SX128X_PERIOD_BASE_15_625_US);</div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    int16_t setRx(uint16_t periodBaseCount, uint8_t periodBase = RADIOLIB_SX128X_PERIOD_BASE_15_625_US);</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;    int16_t setCad();</div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    uint8_t getPacketType();</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;    int16_t setRfFrequency(uint32_t frf);</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    int16_t setTxParams(uint8_t pwr, uint8_t rampTime = RADIOLIB_SX128X_PA_RAMP_10_US);</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    int16_t setBufferBaseAddress(uint8_t txBaseAddress = 0x00, uint8_t rxBaseAddress = 0x00);</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    int16_t setModulationParams(uint8_t modParam1, uint8_t modParam2, uint8_t modParam3);</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    int16_t setPacketParamsGFSK(uint8_t preambleLen, uint8_t syncLen, uint8_t syncMatch, uint8_t crcLen, uint8_t whiten, uint8_t payLen = 0xFF, uint8_t hdrType = RADIOLIB_SX128X_GFSK_FLRC_PACKET_VARIABLE);</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    int16_t setPacketParamsBLE(uint8_t connState, uint8_t crcLen, uint8_t bleTest, uint8_t whiten);</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    int16_t setPacketParamsLoRa(uint8_t preambleLen, uint8_t hdrType, uint8_t payLen, uint8_t crc, uint8_t invIQ = RADIOLIB_SX128X_LORA_IQ_STANDARD);</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    int16_t setDioIrqParams(uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask = RADIOLIB_SX128X_IRQ_NONE, uint16_t dio3Mask = RADIOLIB_SX128X_IRQ_NONE);</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    int16_t clearIrqStatus(uint16_t clearIrqParams = RADIOLIB_SX128X_IRQ_ALL);</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    int16_t setRangingRole(uint8_t role);</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;    int16_t setPacketType(uint8_t type);</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160; </div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    int16_t setHeaderType(uint8_t hdrType, <span class="keywordtype">size_t</span> len = 0xFF);</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160; </div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160; </div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;    <span class="comment">// common low-level SPI interface</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    <span class="keyword">static</span> int16_t SPIparseStatus(uint8_t in);</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160; </div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;    <span class="comment">// common parameters</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    uint8_t power = 0;</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160; </div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    <span class="comment">// cached LoRa parameters</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;    uint8_t invertIQEnabled = RADIOLIB_SX128X_LORA_IQ_STANDARD;</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160; </div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    <span class="comment">// cached GFSK parameters</span></div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    <span class="keywordtype">float</span> modIndexReal = 0;</div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    uint16_t bitRateKbps = 0;</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;    uint8_t bitRate = 0, modIndex = 0, shaping = 0;</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;    uint8_t preambleLengthGFSK = 0, syncWordLen = 0, syncWordMatch = 0, crcGFSK = 0, whitening = 0;</div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160; </div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;    <span class="comment">// cached FLRC parameters</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;    uint8_t codingRateFLRC = 0;</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160; </div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    <span class="comment">// cached BLE parameters</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    uint8_t connectionState = 0, crcBLE = 0, bleTestPayload = 0;</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160; </div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    int16_t config(uint8_t modem);</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;};</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160; </div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160; </div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="ttc" id="aclass_module_html"><div class="ttname"><a href="class_module.html">Module</a></div><div class="ttdoc">Implements all common low-level methods to control the wireless module. Every module class contains o...</div><div class="ttdef"><b>Definition:</b> Module.h:31</div></div>
 <div class="ttc" id="aclass_module_html_a0c11551e12579bbabf57b19e12555b3c"><div class="ttname"><a href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a></div><div class="ttdeci">static const size_t RFSWITCH_MAX_PINS</div><div class="ttdoc">The maximum number of pins supported by the RF switch code.</div><div class="ttdef"><b>Definition:</b> Module.h:42</div></div>
 <div class="ttc" id="aclass_physical_layer_html"><div class="ttname"><a href="class_physical_layer.html">PhysicalLayer</a></div><div class="ttdoc">Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....</div><div class="ttdef"><b>Definition:</b> PhysicalLayer.h:33</div></div>
diff --git a/_si443x_8h_source.html b/_si443x_8h_source.html
index e63f6a25..908a62ec 100644
--- a/_si443x_8h_source.html
+++ b/_si443x_8h_source.html
@@ -691,78 +691,78 @@ $(document).ready(function(){initNavTree('_si443x_8h_source.html',''); initResiz
 <div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160; </div>
 <div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    int16_t <a class="code" href="class_si443x.html#a10f886fc534a85bbf8c1aeb9b5ffe4f2">startReceive</a>(uint32_t timeout, uint16_t irqFlags, uint16_t irqMask, <span class="keywordtype">size_t</span> len);</div>
 <div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160; </div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    int16_t <a class="code" href="class_si443x.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160; </div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;    <span class="comment">// configuration methods</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160; </div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;    int16_t <a class="code" href="class_si443x.html#ad43575e731dd7e66d5ad9e6dccd27170">setBitRate</a>(<span class="keywordtype">float</span> br);</div>
-<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160; </div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    int16_t <a class="code" href="class_si443x.html#a7c4e6caa95e5622f6f515ba0339a1c66">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160; </div>
-<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;    int16_t <a class="code" href="class_si443x.html#a51e6b7c677e82042224798114f311175">setRxBandwidth</a>(<span class="keywordtype">float</span> rxBw);</div>
-<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160; </div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    int16_t <a class="code" href="class_si443x.html#a4ed0da298c2418db4a88a19ef8938e0a">setSyncWord</a>(uint8_t* syncWord, <span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160; </div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;    int16_t <a class="code" href="class_si443x.html#a4821a6141caf16141074615c976ecd91">setPreambleLength</a>(uint8_t preambleLen);</div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160; </div>
-<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_si443x.html#a2d944669dc69ccd47f9e6c360f2ffd10">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160; </div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;    int16_t <a class="code" href="class_si443x.html#a1382fc3b68f447e381613e6670747128">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160; </div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;    int16_t <a class="code" href="class_si443x.html#ade08c79074c7e4414d34eefa25cee168">setDataShaping</a>(uint8_t sh) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160; </div>
-<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_si443x.html#a43e7ceeff9114b35ab89f1d69916b375">setRfSwitchPins</a>(uint32_t rxEn, uint32_t txEn);</div>
-<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160; </div>
-<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_si443x.html#a8898f11cf9dabd9a5ad717376fdbffa6">setRfSwitchTable</a>(<span class="keyword">const</span> uint32_t (&amp;pins)[<a class="code" href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a>], <span class="keyword">const</span> <a class="code" href="struct_module_1_1_rf_switch_mode__t.html">Module::RfSwitchMode_t</a> table[]);</div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160; </div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;    uint8_t <a class="code" href="class_si443x.html#a74848176d435227e601c86ff37b0edbe">randomByte</a>();</div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160; </div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    int16_t <a class="code" href="class_si443x.html#a55252bda74e8c67636a8c1fa0e9f58d3">getChipVersion</a>();</div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160; </div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;<span class="preprocessor">    #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_si443x.html#a55fae20e81755c8b014d080741d61913">setDirectAction</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span>));</div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160; </div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_si443x.html#af23d8eb0f1c436e6cc60361df13c08f7">readBit</a>(uint32_t pin);</div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160; </div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;   int16_t <a class="code" href="class_si443x.html#ad2b3a961a99d9e8f3a7ead6e8b69e858">fixedPacketLengthMode</a>(uint8_t len = RADIOLIB_SI443X_MAX_PACKET_LENGTH);</div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160; </div>
-<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;   int16_t <a class="code" href="class_si443x.html#abcca8ab4a1229efb5e7c6b09e564a48a">variablePacketLengthMode</a>(uint8_t maxLen = RADIOLIB_SI443X_MAX_PACKET_LENGTH);</div>
-<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160; </div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;    <a class="code" href="class_module.html">Module</a>* mod;</div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160; </div>
-<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160; </div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    <span class="keywordtype">float</span> bitRate = 0;</div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    <span class="keywordtype">float</span> frequencyDev = 0;</div>
-<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    <span class="keywordtype">float</span> frequency = 0;</div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160; </div>
-<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;    <span class="keywordtype">size_t</span> packetLength = 0;</div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;    <span class="keywordtype">bool</span> packetLengthQueried = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;    uint8_t packetLengthConfig = RADIOLIB_SI443X_FIXED_PACKET_LENGTH_ON;</div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160; </div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;    int16_t setFrequencyRaw(<span class="keywordtype">float</span> newFreq);</div>
-<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    int16_t setPacketMode(uint8_t mode, uint8_t len);</div>
-<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160; </div>
-<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
-<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;    <span class="keywordtype">bool</span> findChip();</div>
-<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;    <span class="keywordtype">void</span> clearIRQFlags();</div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;    <span class="keywordtype">void</span> clearFIFO(<span class="keywordtype">size_t</span> count);</div>
-<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    int16_t config();</div>
-<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;    int16_t updateClockRecovery();</div>
-<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;    int16_t directMode();</div>
-<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;};</div>
-<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160; </div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160; </div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    int16_t <a class="code" href="class_si443x.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160; </div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;    <span class="comment">// configuration methods</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160; </div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;    int16_t <a class="code" href="class_si443x.html#ad43575e731dd7e66d5ad9e6dccd27170">setBitRate</a>(<span class="keywordtype">float</span> br);</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160; </div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;    int16_t <a class="code" href="class_si443x.html#a7c4e6caa95e5622f6f515ba0339a1c66">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160; </div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    int16_t <a class="code" href="class_si443x.html#a51e6b7c677e82042224798114f311175">setRxBandwidth</a>(<span class="keywordtype">float</span> rxBw);</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160; </div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;    int16_t <a class="code" href="class_si443x.html#a4ed0da298c2418db4a88a19ef8938e0a">setSyncWord</a>(uint8_t* syncWord, <span class="keywordtype">size_t</span> len);</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160; </div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    int16_t <a class="code" href="class_si443x.html#a4821a6141caf16141074615c976ecd91">setPreambleLength</a>(uint8_t preambleLen);</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160; </div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_si443x.html#a2d944669dc69ccd47f9e6c360f2ffd10">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160; </div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;    int16_t <a class="code" href="class_si443x.html#a1382fc3b68f447e381613e6670747128">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160; </div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;    int16_t <a class="code" href="class_si443x.html#ade08c79074c7e4414d34eefa25cee168">setDataShaping</a>(uint8_t sh) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160; </div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_si443x.html#a43e7ceeff9114b35ab89f1d69916b375">setRfSwitchPins</a>(uint32_t rxEn, uint32_t txEn);</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160; </div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_si443x.html#a8898f11cf9dabd9a5ad717376fdbffa6">setRfSwitchTable</a>(<span class="keyword">const</span> uint32_t (&amp;pins)[<a class="code" href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a>], <span class="keyword">const</span> <a class="code" href="struct_module_1_1_rf_switch_mode__t.html">Module::RfSwitchMode_t</a> table[]);</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160; </div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    uint8_t <a class="code" href="class_si443x.html#a74848176d435227e601c86ff37b0edbe">randomByte</a>();</div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160; </div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    int16_t <a class="code" href="class_si443x.html#a55252bda74e8c67636a8c1fa0e9f58d3">getChipVersion</a>();</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160; </div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;<span class="preprocessor">    #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_si443x.html#a55fae20e81755c8b014d080741d61913">setDirectAction</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span>));</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160; </div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_si443x.html#af23d8eb0f1c436e6cc60361df13c08f7">readBit</a>(uint32_t pin);</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160; </div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;   int16_t <a class="code" href="class_si443x.html#ad2b3a961a99d9e8f3a7ead6e8b69e858">fixedPacketLengthMode</a>(uint8_t len = RADIOLIB_SI443X_MAX_PACKET_LENGTH);</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160; </div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;   int16_t <a class="code" href="class_si443x.html#abcca8ab4a1229efb5e7c6b09e564a48a">variablePacketLengthMode</a>(uint8_t maxLen = RADIOLIB_SI443X_MAX_PACKET_LENGTH);</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160; </div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    <a class="code" href="class_module.html">Module</a>* mod;</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160; </div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160; </div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    <span class="keywordtype">float</span> bitRate = 0;</div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    <span class="keywordtype">float</span> frequencyDev = 0;</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;    <span class="keywordtype">float</span> frequency = 0;</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160; </div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;    <span class="keywordtype">size_t</span> packetLength = 0;</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;    <span class="keywordtype">bool</span> packetLengthQueried = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;    uint8_t packetLengthConfig = RADIOLIB_SI443X_FIXED_PACKET_LENGTH_ON;</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160; </div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    int16_t setFrequencyRaw(<span class="keywordtype">float</span> newFreq);</div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    int16_t setPacketMode(uint8_t mode, uint8_t len);</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160; </div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;    <span class="keywordtype">bool</span> findChip();</div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;    <span class="keywordtype">void</span> clearIRQFlags();</div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    <span class="keywordtype">void</span> clearFIFO(<span class="keywordtype">size_t</span> count);</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;    int16_t config();</div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;    int16_t updateClockRecovery();</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;    int16_t directMode();</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;};</div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160; </div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160; </div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="ttc" id="aclass_module_html"><div class="ttname"><a href="class_module.html">Module</a></div><div class="ttdoc">Implements all common low-level methods to control the wireless module. Every module class contains o...</div><div class="ttdef"><b>Definition:</b> Module.h:31</div></div>
 <div class="ttc" id="aclass_module_html_a0c11551e12579bbabf57b19e12555b3c"><div class="ttname"><a href="class_module.html#a0c11551e12579bbabf57b19e12555b3c">Module::RFSWITCH_MAX_PINS</a></div><div class="ttdeci">static const size_t RFSWITCH_MAX_PINS</div><div class="ttdoc">The maximum number of pins supported by the RF switch code.</div><div class="ttdef"><b>Definition:</b> Module.h:42</div></div>
 <div class="ttc" id="aclass_physical_layer_html"><div class="ttname"><a href="class_physical_layer.html">PhysicalLayer</a></div><div class="ttdoc">Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....</div><div class="ttdef"><b>Definition:</b> PhysicalLayer.h:33</div></div>
diff --git a/class_c_c1101.html b/class_c_c1101.html
index 6d64eb1f..b20131b8 100644
--- a/class_c_c1101.html
+++ b/class_c_c1101.html
@@ -188,7 +188,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a22ebe5b75a09c420cf6e6464dac3fe33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_c_c1101.html#a22ebe5b75a09c420cf6e6464dac3fe33">More...</a><br /></td></tr>
 <tr class="separator:a22ebe5b75a09c420cf6e6464dac3fe33"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a8c79975a7bbe8a37f8214ecd1f69ba22"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_c1101.html#a8c79975a7bbe8a37f8214ecd1f69ba22">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a8c79975a7bbe8a37f8214ecd1f69ba22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_c_c1101.html#a8c79975a7bbe8a37f8214ecd1f69ba22">More...</a><br /></td></tr>
+<tr class="memdesc:a8c79975a7bbe8a37f8214ecd1f69ba22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_c_c1101.html#a8c79975a7bbe8a37f8214ecd1f69ba22">More...</a><br /></td></tr>
 <tr class="separator:a8c79975a7bbe8a37f8214ecd1f69ba22"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9592c023556c38c2b8066a23da96ae5e"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_c1101.html#a9592c023556c38c2b8066a23da96ae5e">setFrequency</a> (float freq)</td></tr>
 <tr class="memdesc:a9592c023556c38c2b8066a23da96ae5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets carrier frequency. Allowed values are in bands 300.0 to 348.0 MHz, 387.0 to 464.0 MHz and 779.0 to 928.0 MHz.  <a href="class_c_c1101.html#a9592c023556c38c2b8066a23da96ae5e">More...</a><br /></td></tr>
@@ -871,7 +871,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 </table>
 </div><div class="memdoc">
 
-<p>Reads data received after calling startReceive method. </p>
+<p>Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData! </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">data</td><td>Pointer to array to save the received binary data. </td></tr>
diff --git a/class_l_l_c_c68.html b/class_l_l_c_c68.html
index 54b19485..c105c1bb 100644
--- a/class_l_l_c_c68.html
+++ b/class_l_l_c_c68.html
@@ -222,7 +222,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a9a9b090eddcb811ee19b595debfab1df inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current IRQ status.  <a href="class_s_x126x.html#a9a9b090eddcb811ee19b595debfab1df">More...</a><br /></td></tr>
 <tr class="separator:a9a9b090eddcb811ee19b595debfab1df inherit pub_methods_class_s_x126x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">More...</a><br /></td></tr>
+<tr class="memdesc:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">More...</a><br /></td></tr>
 <tr class="separator:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a10a0e75571350fb05fa100e5d5151be2 inherit pub_methods_class_s_x126x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">startChannelScan</a> (uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)</td></tr>
 <tr class="memdesc:a10a0e75571350fb05fa100e5d5151be2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected, or upon timeout.  <a href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">More...</a><br /></td></tr>
diff --git a/class_r_f69.html b/class_r_f69.html
index b0ca02df..10c1a2bd 100644
--- a/class_r_f69.html
+++ b/class_r_f69.html
@@ -215,7 +215,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:ae8b6f87d4b798dc8fcda07bfa5af5a66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_r_f69.html#ae8b6f87d4b798dc8fcda07bfa5af5a66">More...</a><br /></td></tr>
 <tr class="separator:ae8b6f87d4b798dc8fcda07bfa5af5a66"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3983b66c83818b4082805bcafc712f00"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_f69.html#a3983b66c83818b4082805bcafc712f00">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a3983b66c83818b4082805bcafc712f00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_r_f69.html#a3983b66c83818b4082805bcafc712f00">More...</a><br /></td></tr>
+<tr class="memdesc:a3983b66c83818b4082805bcafc712f00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_r_f69.html#a3983b66c83818b4082805bcafc712f00">More...</a><br /></td></tr>
 <tr class="separator:a3983b66c83818b4082805bcafc712f00"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab467f0fc318e651d0cdfbc0399d4c34b"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_f69.html#ab467f0fc318e651d0cdfbc0399d4c34b">setFrequency</a> (float freq)</td></tr>
 <tr class="memdesc:ab467f0fc318e651d0cdfbc0399d4c34b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets carrier frequency. Allowed values are in bands 290.0 to 340.0 MHz, 431.0 to 510.0 MHz and 862.0 to 1020.0 MHz.  <a href="class_r_f69.html#ab467f0fc318e651d0cdfbc0399d4c34b">More...</a><br /></td></tr>
@@ -1081,7 +1081,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 </table>
 </div><div class="memdoc">
 
-<p>Reads data received after calling startReceive method. </p>
+<p>Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData! </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">data</td><td>Pointer to array to save the received binary data. </td></tr>
diff --git a/class_r_f_m95.html b/class_r_f_m95.html
index 4064420b..5592005a 100644
--- a/class_r_f_m95.html
+++ b/class_r_f_m95.html
@@ -290,7 +290,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_s_x127x.html#a0ae533401c801f1d4034eb3db8b1f30c">More...</a><br /></td></tr>
 <tr class="separator:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
+<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
 <tr class="separator:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">startChannelScan</a> ()</td></tr>
 <tr class="memdesc:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected. DIO1 will be activated if there's no preamble detected before timeout.  <a href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">More...</a><br /></td></tr>
diff --git a/class_r_f_m96.html b/class_r_f_m96.html
index 13be6a5a..5b590d14 100644
--- a/class_r_f_m96.html
+++ b/class_r_f_m96.html
@@ -289,7 +289,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_s_x127x.html#a0ae533401c801f1d4034eb3db8b1f30c">More...</a><br /></td></tr>
 <tr class="separator:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
+<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
 <tr class="separator:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">startChannelScan</a> ()</td></tr>
 <tr class="memdesc:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected. DIO1 will be activated if there's no preamble detected before timeout.  <a href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">More...</a><br /></td></tr>
diff --git a/class_r_f_m97.html b/class_r_f_m97.html
index 555b5185..1a324e0d 100644
--- a/class_r_f_m97.html
+++ b/class_r_f_m97.html
@@ -297,7 +297,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_s_x127x.html#a0ae533401c801f1d4034eb3db8b1f30c">More...</a><br /></td></tr>
 <tr class="separator:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
+<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
 <tr class="separator:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">startChannelScan</a> ()</td></tr>
 <tr class="memdesc:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected. DIO1 will be activated if there's no preamble detected before timeout.  <a href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">More...</a><br /></td></tr>
diff --git a/class_s_t_m32_w_lx.html b/class_s_t_m32_w_lx.html
index afeb8742..b417e45e 100644
--- a/class_s_t_m32_w_lx.html
+++ b/class_s_t_m32_w_lx.html
@@ -244,7 +244,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a9a9b090eddcb811ee19b595debfab1df inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current IRQ status.  <a href="class_s_x126x.html#a9a9b090eddcb811ee19b595debfab1df">More...</a><br /></td></tr>
 <tr class="separator:a9a9b090eddcb811ee19b595debfab1df inherit pub_methods_class_s_x126x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">More...</a><br /></td></tr>
+<tr class="memdesc:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">More...</a><br /></td></tr>
 <tr class="separator:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a10a0e75571350fb05fa100e5d5151be2 inherit pub_methods_class_s_x126x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">startChannelScan</a> (uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)</td></tr>
 <tr class="memdesc:a10a0e75571350fb05fa100e5d5151be2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected, or upon timeout.  <a href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">More...</a><br /></td></tr>
diff --git a/class_s_x1231.html b/class_s_x1231.html
index 80b838aa..ec6704f9 100644
--- a/class_s_x1231.html
+++ b/class_s_x1231.html
@@ -222,7 +222,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:ae8b6f87d4b798dc8fcda07bfa5af5a66 inherit pub_methods_class_r_f69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_r_f69.html#ae8b6f87d4b798dc8fcda07bfa5af5a66">More...</a><br /></td></tr>
 <tr class="separator:ae8b6f87d4b798dc8fcda07bfa5af5a66 inherit pub_methods_class_r_f69"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3983b66c83818b4082805bcafc712f00 inherit pub_methods_class_r_f69"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_f69.html#a3983b66c83818b4082805bcafc712f00">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a3983b66c83818b4082805bcafc712f00 inherit pub_methods_class_r_f69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_r_f69.html#a3983b66c83818b4082805bcafc712f00">More...</a><br /></td></tr>
+<tr class="memdesc:a3983b66c83818b4082805bcafc712f00 inherit pub_methods_class_r_f69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_r_f69.html#a3983b66c83818b4082805bcafc712f00">More...</a><br /></td></tr>
 <tr class="separator:a3983b66c83818b4082805bcafc712f00 inherit pub_methods_class_r_f69"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab467f0fc318e651d0cdfbc0399d4c34b inherit pub_methods_class_r_f69"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_f69.html#ab467f0fc318e651d0cdfbc0399d4c34b">setFrequency</a> (float freq)</td></tr>
 <tr class="memdesc:ab467f0fc318e651d0cdfbc0399d4c34b inherit pub_methods_class_r_f69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets carrier frequency. Allowed values are in bands 290.0 to 340.0 MHz, 431.0 to 510.0 MHz and 862.0 to 1020.0 MHz.  <a href="class_r_f69.html#ab467f0fc318e651d0cdfbc0399d4c34b">More...</a><br /></td></tr>
diff --git a/class_s_x1261.html b/class_s_x1261.html
index 9ab41a28..40f25626 100644
--- a/class_s_x1261.html
+++ b/class_s_x1261.html
@@ -213,7 +213,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a9a9b090eddcb811ee19b595debfab1df inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current IRQ status.  <a href="class_s_x126x.html#a9a9b090eddcb811ee19b595debfab1df">More...</a><br /></td></tr>
 <tr class="separator:a9a9b090eddcb811ee19b595debfab1df inherit pub_methods_class_s_x126x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">More...</a><br /></td></tr>
+<tr class="memdesc:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">More...</a><br /></td></tr>
 <tr class="separator:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a10a0e75571350fb05fa100e5d5151be2 inherit pub_methods_class_s_x126x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">startChannelScan</a> (uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)</td></tr>
 <tr class="memdesc:a10a0e75571350fb05fa100e5d5151be2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected, or upon timeout.  <a href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">More...</a><br /></td></tr>
diff --git a/class_s_x1262.html b/class_s_x1262.html
index 553dd788..0bb835eb 100644
--- a/class_s_x1262.html
+++ b/class_s_x1262.html
@@ -211,7 +211,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a9a9b090eddcb811ee19b595debfab1df inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current IRQ status.  <a href="class_s_x126x.html#a9a9b090eddcb811ee19b595debfab1df">More...</a><br /></td></tr>
 <tr class="separator:a9a9b090eddcb811ee19b595debfab1df inherit pub_methods_class_s_x126x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">More...</a><br /></td></tr>
+<tr class="memdesc:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">More...</a><br /></td></tr>
 <tr class="separator:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a10a0e75571350fb05fa100e5d5151be2 inherit pub_methods_class_s_x126x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">startChannelScan</a> (uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)</td></tr>
 <tr class="memdesc:a10a0e75571350fb05fa100e5d5151be2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected, or upon timeout.  <a href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">More...</a><br /></td></tr>
diff --git a/class_s_x1268.html b/class_s_x1268.html
index 22bde2f6..575d0e21 100644
--- a/class_s_x1268.html
+++ b/class_s_x1268.html
@@ -208,7 +208,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a9a9b090eddcb811ee19b595debfab1df inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current IRQ status.  <a href="class_s_x126x.html#a9a9b090eddcb811ee19b595debfab1df">More...</a><br /></td></tr>
 <tr class="separator:a9a9b090eddcb811ee19b595debfab1df inherit pub_methods_class_s_x126x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">More...</a><br /></td></tr>
+<tr class="memdesc:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">More...</a><br /></td></tr>
 <tr class="separator:a3350cbfab628956c1a456383ac7bb2b2 inherit pub_methods_class_s_x126x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a10a0e75571350fb05fa100e5d5151be2 inherit pub_methods_class_s_x126x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">startChannelScan</a> (uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)</td></tr>
 <tr class="memdesc:a10a0e75571350fb05fa100e5d5151be2 inherit pub_methods_class_s_x126x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected, or upon timeout.  <a href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">More...</a><br /></td></tr>
diff --git a/class_s_x126x.html b/class_s_x126x.html
index 321c2fef..d2782ac9 100644
--- a/class_s_x126x.html
+++ b/class_s_x126x.html
@@ -194,7 +194,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a9a9b090eddcb811ee19b595debfab1df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current IRQ status.  <a href="class_s_x126x.html#a9a9b090eddcb811ee19b595debfab1df">More...</a><br /></td></tr>
 <tr class="separator:a9a9b090eddcb811ee19b595debfab1df"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3350cbfab628956c1a456383ac7bb2b2"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a3350cbfab628956c1a456383ac7bb2b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">More...</a><br /></td></tr>
+<tr class="memdesc:a3350cbfab628956c1a456383ac7bb2b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2">More...</a><br /></td></tr>
 <tr class="separator:a3350cbfab628956c1a456383ac7bb2b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a10a0e75571350fb05fa100e5d5151be2"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">startChannelScan</a> (uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)</td></tr>
 <tr class="memdesc:a10a0e75571350fb05fa100e5d5151be2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected, or upon timeout.  <a href="class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2">More...</a><br /></td></tr>
@@ -1134,7 +1134,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 </table>
 </div><div class="memdoc">
 
-<p>Reads data received after calling startReceive method. </p>
+<p>Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData! </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">data</td><td>Pointer to array to save the received binary data. </td></tr>
diff --git a/class_s_x1272.html b/class_s_x1272.html
index c552b3e3..eff773c9 100644
--- a/class_s_x1272.html
+++ b/class_s_x1272.html
@@ -276,7 +276,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_s_x127x.html#a0ae533401c801f1d4034eb3db8b1f30c">More...</a><br /></td></tr>
 <tr class="separator:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
+<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
 <tr class="separator:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">startChannelScan</a> ()</td></tr>
 <tr class="memdesc:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected. DIO1 will be activated if there's no preamble detected before timeout.  <a href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">More...</a><br /></td></tr>
diff --git a/class_s_x1273.html b/class_s_x1273.html
index 7fbc54de..b51739e4 100644
--- a/class_s_x1273.html
+++ b/class_s_x1273.html
@@ -286,7 +286,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_s_x127x.html#a0ae533401c801f1d4034eb3db8b1f30c">More...</a><br /></td></tr>
 <tr class="separator:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
+<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
 <tr class="separator:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">startChannelScan</a> ()</td></tr>
 <tr class="memdesc:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected. DIO1 will be activated if there's no preamble detected before timeout.  <a href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">More...</a><br /></td></tr>
diff --git a/class_s_x1276.html b/class_s_x1276.html
index 56a14349..d6b8bc97 100644
--- a/class_s_x1276.html
+++ b/class_s_x1276.html
@@ -289,7 +289,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_s_x127x.html#a0ae533401c801f1d4034eb3db8b1f30c">More...</a><br /></td></tr>
 <tr class="separator:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
+<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
 <tr class="separator:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">startChannelScan</a> ()</td></tr>
 <tr class="memdesc:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected. DIO1 will be activated if there's no preamble detected before timeout.  <a href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">More...</a><br /></td></tr>
diff --git a/class_s_x1277.html b/class_s_x1277.html
index dd863b52..2bb08796 100644
--- a/class_s_x1277.html
+++ b/class_s_x1277.html
@@ -295,7 +295,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_s_x127x.html#a0ae533401c801f1d4034eb3db8b1f30c">More...</a><br /></td></tr>
 <tr class="separator:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
+<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
 <tr class="separator:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">startChannelScan</a> ()</td></tr>
 <tr class="memdesc:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected. DIO1 will be activated if there's no preamble detected before timeout.  <a href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">More...</a><br /></td></tr>
diff --git a/class_s_x1278.html b/class_s_x1278.html
index daf4dc51..06896696 100644
--- a/class_s_x1278.html
+++ b/class_s_x1278.html
@@ -281,7 +281,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_s_x127x.html#a0ae533401c801f1d4034eb3db8b1f30c">More...</a><br /></td></tr>
 <tr class="separator:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
+<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
 <tr class="separator:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">startChannelScan</a> ()</td></tr>
 <tr class="memdesc:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected. DIO1 will be activated if there's no preamble detected before timeout.  <a href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">More...</a><br /></td></tr>
diff --git a/class_s_x1279.html b/class_s_x1279.html
index a2b5eb85..63d5aa1c 100644
--- a/class_s_x1279.html
+++ b/class_s_x1279.html
@@ -286,7 +286,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_s_x127x.html#a0ae533401c801f1d4034eb3db8b1f30c">More...</a><br /></td></tr>
 <tr class="separator:a0ae533401c801f1d4034eb3db8b1f30c inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
+<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
 <tr class="separator:abfc840e8d6fe5e222f0143be17876745 inherit pub_methods_class_s_x127x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">startChannelScan</a> ()</td></tr>
 <tr class="memdesc:a1d4631691c16d6ecf38815dc4e59a059 inherit pub_methods_class_s_x127x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected. DIO1 will be activated if there's no preamble detected before timeout.  <a href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">More...</a><br /></td></tr>
diff --git a/class_s_x127x.html b/class_s_x127x.html
index d921c57e..6506fae1 100644
--- a/class_s_x127x.html
+++ b/class_s_x127x.html
@@ -222,7 +222,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a0ae533401c801f1d4034eb3db8b1f30c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_s_x127x.html#a0ae533401c801f1d4034eb3db8b1f30c">More...</a><br /></td></tr>
 <tr class="separator:a0ae533401c801f1d4034eb3db8b1f30c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abfc840e8d6fe5e222f0143be17876745"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
+<tr class="memdesc:abfc840e8d6fe5e222f0143be17876745"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x127x.html#abfc840e8d6fe5e222f0143be17876745">More...</a><br /></td></tr>
 <tr class="separator:abfc840e8d6fe5e222f0143be17876745"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1d4631691c16d6ecf38815dc4e59a059"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">startChannelScan</a> ()</td></tr>
 <tr class="memdesc:a1d4631691c16d6ecf38815dc4e59a059"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is detected. DIO1 will be activated if there's no preamble detected before timeout.  <a href="class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059">More...</a><br /></td></tr>
@@ -1293,7 +1293,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 </table>
 </div><div class="memdoc">
 
-<p>Reads data that was received after calling startReceive method. This method reads len characters. </p>
+<p>Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData! </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">data</td><td>Pointer to array to save the received binary data. </td></tr>
diff --git a/class_s_x1280.html b/class_s_x1280.html
index ee3ef189..5c9164ed 100644
--- a/class_s_x1280.html
+++ b/class_s_x1280.html
@@ -208,7 +208,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:ae1f933f767161cc59fdaca816ab93e22 inherit pub_methods_class_s_x128x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current IRQ status.  <a href="class_s_x128x.html#ae1f933f767161cc59fdaca816ab93e22">More...</a><br /></td></tr>
 <tr class="separator:ae1f933f767161cc59fdaca816ab93e22 inherit pub_methods_class_s_x128x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a94bca43258b09217fb476a2d8db784bb inherit pub_methods_class_s_x128x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x128x.html#a94bca43258b09217fb476a2d8db784bb">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a94bca43258b09217fb476a2d8db784bb inherit pub_methods_class_s_x128x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_s_x128x.html#a94bca43258b09217fb476a2d8db784bb">More...</a><br /></td></tr>
+<tr class="memdesc:a94bca43258b09217fb476a2d8db784bb inherit pub_methods_class_s_x128x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x128x.html#a94bca43258b09217fb476a2d8db784bb">More...</a><br /></td></tr>
 <tr class="separator:a94bca43258b09217fb476a2d8db784bb inherit pub_methods_class_s_x128x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a2043ef7bb806968b9d9dcb64561ca371 inherit pub_methods_class_s_x128x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x128x.html#a2043ef7bb806968b9d9dcb64561ca371">setFrequency</a> (float freq)</td></tr>
 <tr class="memdesc:a2043ef7bb806968b9d9dcb64561ca371 inherit pub_methods_class_s_x128x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets carrier frequency. Allowed values are in range from 2400.0 to 2500.0 MHz.  <a href="class_s_x128x.html#a2043ef7bb806968b9d9dcb64561ca371">More...</a><br /></td></tr>
diff --git a/class_s_x1281.html b/class_s_x1281.html
index a6922731..d6dc8c45 100644
--- a/class_s_x1281.html
+++ b/class_s_x1281.html
@@ -195,7 +195,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:ae1f933f767161cc59fdaca816ab93e22 inherit pub_methods_class_s_x128x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current IRQ status.  <a href="class_s_x128x.html#ae1f933f767161cc59fdaca816ab93e22">More...</a><br /></td></tr>
 <tr class="separator:ae1f933f767161cc59fdaca816ab93e22 inherit pub_methods_class_s_x128x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a94bca43258b09217fb476a2d8db784bb inherit pub_methods_class_s_x128x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x128x.html#a94bca43258b09217fb476a2d8db784bb">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a94bca43258b09217fb476a2d8db784bb inherit pub_methods_class_s_x128x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_s_x128x.html#a94bca43258b09217fb476a2d8db784bb">More...</a><br /></td></tr>
+<tr class="memdesc:a94bca43258b09217fb476a2d8db784bb inherit pub_methods_class_s_x128x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x128x.html#a94bca43258b09217fb476a2d8db784bb">More...</a><br /></td></tr>
 <tr class="separator:a94bca43258b09217fb476a2d8db784bb inherit pub_methods_class_s_x128x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a2043ef7bb806968b9d9dcb64561ca371 inherit pub_methods_class_s_x128x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x128x.html#a2043ef7bb806968b9d9dcb64561ca371">setFrequency</a> (float freq)</td></tr>
 <tr class="memdesc:a2043ef7bb806968b9d9dcb64561ca371 inherit pub_methods_class_s_x128x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets carrier frequency. Allowed values are in range from 2400.0 to 2500.0 MHz.  <a href="class_s_x128x.html#a2043ef7bb806968b9d9dcb64561ca371">More...</a><br /></td></tr>
diff --git a/class_s_x1282.html b/class_s_x1282.html
index 7bbb3a09..ca33a8b3 100644
--- a/class_s_x1282.html
+++ b/class_s_x1282.html
@@ -212,7 +212,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:ae1f933f767161cc59fdaca816ab93e22 inherit pub_methods_class_s_x128x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current IRQ status.  <a href="class_s_x128x.html#ae1f933f767161cc59fdaca816ab93e22">More...</a><br /></td></tr>
 <tr class="separator:ae1f933f767161cc59fdaca816ab93e22 inherit pub_methods_class_s_x128x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a94bca43258b09217fb476a2d8db784bb inherit pub_methods_class_s_x128x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x128x.html#a94bca43258b09217fb476a2d8db784bb">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a94bca43258b09217fb476a2d8db784bb inherit pub_methods_class_s_x128x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_s_x128x.html#a94bca43258b09217fb476a2d8db784bb">More...</a><br /></td></tr>
+<tr class="memdesc:a94bca43258b09217fb476a2d8db784bb inherit pub_methods_class_s_x128x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x128x.html#a94bca43258b09217fb476a2d8db784bb">More...</a><br /></td></tr>
 <tr class="separator:a94bca43258b09217fb476a2d8db784bb inherit pub_methods_class_s_x128x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a2043ef7bb806968b9d9dcb64561ca371 inherit pub_methods_class_s_x128x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x128x.html#a2043ef7bb806968b9d9dcb64561ca371">setFrequency</a> (float freq)</td></tr>
 <tr class="memdesc:a2043ef7bb806968b9d9dcb64561ca371 inherit pub_methods_class_s_x128x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets carrier frequency. Allowed values are in range from 2400.0 to 2500.0 MHz.  <a href="class_s_x128x.html#a2043ef7bb806968b9d9dcb64561ca371">More...</a><br /></td></tr>
diff --git a/class_s_x128x.html b/class_s_x128x.html
index 754e36cf..280325b0 100644
--- a/class_s_x128x.html
+++ b/class_s_x128x.html
@@ -191,7 +191,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:ae1f933f767161cc59fdaca816ab93e22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current IRQ status.  <a href="class_s_x128x.html#ae1f933f767161cc59fdaca816ab93e22">More...</a><br /></td></tr>
 <tr class="separator:ae1f933f767161cc59fdaca816ab93e22"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a94bca43258b09217fb476a2d8db784bb"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x128x.html#a94bca43258b09217fb476a2d8db784bb">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a94bca43258b09217fb476a2d8db784bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="class_s_x128x.html#a94bca43258b09217fb476a2d8db784bb">More...</a><br /></td></tr>
+<tr class="memdesc:a94bca43258b09217fb476a2d8db784bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_s_x128x.html#a94bca43258b09217fb476a2d8db784bb">More...</a><br /></td></tr>
 <tr class="separator:a94bca43258b09217fb476a2d8db784bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a2043ef7bb806968b9d9dcb64561ca371"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_x128x.html#a2043ef7bb806968b9d9dcb64561ca371">setFrequency</a> (float freq)</td></tr>
 <tr class="memdesc:a2043ef7bb806968b9d9dcb64561ca371"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets carrier frequency. Allowed values are in range from 2400.0 to 2500.0 MHz.  <a href="class_s_x128x.html#a2043ef7bb806968b9d9dcb64561ca371">More...</a><br /></td></tr>
@@ -1048,7 +1048,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 </table>
 </div><div class="memdoc">
 
-<p>Reads data received after calling startReceive method. </p>
+<p>Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData! </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">data</td><td>Pointer to array to save the received binary data. </td></tr>
diff --git a/class_si4430.html b/class_si4430.html
index 17058cca..ccc0b9d2 100644
--- a/class_si4430.html
+++ b/class_si4430.html
@@ -205,7 +205,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a1070a6cde04a01d4a35da670f65ce539 inherit pub_methods_class_si443x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_si443x.html#a1070a6cde04a01d4a35da670f65ce539">More...</a><br /></td></tr>
 <tr class="separator:a1070a6cde04a01d4a35da670f65ce539 inherit pub_methods_class_si443x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad00ff8b58c68118ad74fee82028aa71e inherit pub_methods_class_si443x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:ad00ff8b58c68118ad74fee82028aa71e inherit pub_methods_class_si443x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e">More...</a><br /></td></tr>
+<tr class="memdesc:ad00ff8b58c68118ad74fee82028aa71e inherit pub_methods_class_si443x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e">More...</a><br /></td></tr>
 <tr class="separator:ad00ff8b58c68118ad74fee82028aa71e inherit pub_methods_class_si443x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad43575e731dd7e66d5ad9e6dccd27170 inherit pub_methods_class_si443x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_si443x.html#ad43575e731dd7e66d5ad9e6dccd27170">setBitRate</a> (float br)</td></tr>
 <tr class="memdesc:ad43575e731dd7e66d5ad9e6dccd27170 inherit pub_methods_class_si443x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets FSK bit rate. Allowed values range from 0.123 to 256.0 kbps.  <a href="class_si443x.html#ad43575e731dd7e66d5ad9e6dccd27170">More...</a><br /></td></tr>
diff --git a/class_si4431.html b/class_si4431.html
index 60bfc988..72a18c81 100644
--- a/class_si4431.html
+++ b/class_si4431.html
@@ -202,7 +202,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a1070a6cde04a01d4a35da670f65ce539 inherit pub_methods_class_si443x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_si443x.html#a1070a6cde04a01d4a35da670f65ce539">More...</a><br /></td></tr>
 <tr class="separator:a1070a6cde04a01d4a35da670f65ce539 inherit pub_methods_class_si443x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad00ff8b58c68118ad74fee82028aa71e inherit pub_methods_class_si443x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:ad00ff8b58c68118ad74fee82028aa71e inherit pub_methods_class_si443x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e">More...</a><br /></td></tr>
+<tr class="memdesc:ad00ff8b58c68118ad74fee82028aa71e inherit pub_methods_class_si443x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e">More...</a><br /></td></tr>
 <tr class="separator:ad00ff8b58c68118ad74fee82028aa71e inherit pub_methods_class_si443x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad43575e731dd7e66d5ad9e6dccd27170 inherit pub_methods_class_si443x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_si443x.html#ad43575e731dd7e66d5ad9e6dccd27170">setBitRate</a> (float br)</td></tr>
 <tr class="memdesc:ad43575e731dd7e66d5ad9e6dccd27170 inherit pub_methods_class_si443x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets FSK bit rate. Allowed values range from 0.123 to 256.0 kbps.  <a href="class_si443x.html#ad43575e731dd7e66d5ad9e6dccd27170">More...</a><br /></td></tr>
diff --git a/class_si4432.html b/class_si4432.html
index 92a7da40..91fc0b2f 100644
--- a/class_si4432.html
+++ b/class_si4432.html
@@ -193,7 +193,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a1070a6cde04a01d4a35da670f65ce539 inherit pub_methods_class_si443x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_si443x.html#a1070a6cde04a01d4a35da670f65ce539">More...</a><br /></td></tr>
 <tr class="separator:a1070a6cde04a01d4a35da670f65ce539 inherit pub_methods_class_si443x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad00ff8b58c68118ad74fee82028aa71e inherit pub_methods_class_si443x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:ad00ff8b58c68118ad74fee82028aa71e inherit pub_methods_class_si443x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e">More...</a><br /></td></tr>
+<tr class="memdesc:ad00ff8b58c68118ad74fee82028aa71e inherit pub_methods_class_si443x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e">More...</a><br /></td></tr>
 <tr class="separator:ad00ff8b58c68118ad74fee82028aa71e inherit pub_methods_class_si443x"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad43575e731dd7e66d5ad9e6dccd27170 inherit pub_methods_class_si443x"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_si443x.html#ad43575e731dd7e66d5ad9e6dccd27170">setBitRate</a> (float br)</td></tr>
 <tr class="memdesc:ad43575e731dd7e66d5ad9e6dccd27170 inherit pub_methods_class_si443x"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets FSK bit rate. Allowed values range from 0.123 to 256.0 kbps.  <a href="class_si443x.html#ad43575e731dd7e66d5ad9e6dccd27170">More...</a><br /></td></tr>
diff --git a/class_si443x.html b/class_si443x.html
index e0a32b9c..920dff2d 100644
--- a/class_si443x.html
+++ b/class_si443x.html
@@ -180,7 +180,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:a1070a6cde04a01d4a35da670f65ce539"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="class_si443x.html#a1070a6cde04a01d4a35da670f65ce539">More...</a><br /></td></tr>
 <tr class="separator:a1070a6cde04a01d4a35da670f65ce539"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad00ff8b58c68118ad74fee82028aa71e"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:ad00ff8b58c68118ad74fee82028aa71e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. This method reads len characters.  <a href="class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e">More...</a><br /></td></tr>
+<tr class="memdesc:ad00ff8b58c68118ad74fee82028aa71e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="class_si443x.html#ad00ff8b58c68118ad74fee82028aa71e">More...</a><br /></td></tr>
 <tr class="separator:ad00ff8b58c68118ad74fee82028aa71e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad43575e731dd7e66d5ad9e6dccd27170"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_si443x.html#ad43575e731dd7e66d5ad9e6dccd27170">setBitRate</a> (float br)</td></tr>
 <tr class="memdesc:ad43575e731dd7e66d5ad9e6dccd27170"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets FSK bit rate. Allowed values range from 0.123 to 256.0 kbps.  <a href="class_si443x.html#ad43575e731dd7e66d5ad9e6dccd27170">More...</a><br /></td></tr>
@@ -648,7 +648,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 </table>
 </div><div class="memdoc">
 
-<p>Reads data that was received after calling startReceive method. This method reads len characters. </p>
+<p>Reads data that was received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData! </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">data</td><td>Pointer to array to save the received binary data. </td></tr>
diff --git a/classn_r_f24.html b/classn_r_f24.html
index 4cfac686..24f9e796 100644
--- a/classn_r_f24.html
+++ b/classn_r_f24.html
@@ -170,7 +170,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memdesc:ad672f45f73267249265044063e19b4fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt-driven receive method, implemented for compatibility with <a class="el" href="class_physical_layer.html" title="Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....">PhysicalLayer</a>.  <a href="classn_r_f24.html#ad672f45f73267249265044063e19b4fa">More...</a><br /></td></tr>
 <tr class="separator:ad672f45f73267249265044063e19b4fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a410fb78acb4ed358818c132687b8857a"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classn_r_f24.html#a410fb78acb4ed358818c132687b8857a">readData</a> (uint8_t *data, size_t len) override</td></tr>
-<tr class="memdesc:a410fb78acb4ed358818c132687b8857a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method.  <a href="classn_r_f24.html#a410fb78acb4ed358818c132687b8857a">More...</a><br /></td></tr>
+<tr class="memdesc:a410fb78acb4ed358818c132687b8857a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!  <a href="classn_r_f24.html#a410fb78acb4ed358818c132687b8857a">More...</a><br /></td></tr>
 <tr class="separator:a410fb78acb4ed358818c132687b8857a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a408278336cdf25fd205ecffea86c26e8"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classn_r_f24.html#a408278336cdf25fd205ecffea86c26e8">setFrequency</a> (float freq)</td></tr>
 <tr class="memdesc:a408278336cdf25fd205ecffea86c26e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets carrier frequency. Allowed values range from 2400 MHz to 2525 MHz.  <a href="classn_r_f24.html#a408278336cdf25fd205ecffea86c26e8">More...</a><br /></td></tr>
@@ -588,7 +588,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 </table>
 </div><div class="memdoc">
 
-<p>Reads data received after calling startReceive method. </p>
+<p>Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData! </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">data</td><td>Pointer to array to save the received binary data. </td></tr>
diff --git a/n_r_f24_8h_source.html b/n_r_f24_8h_source.html
index 8947b99f..be3e98f2 100644
--- a/n_r_f24_8h_source.html
+++ b/n_r_f24_8h_source.html
@@ -321,67 +321,67 @@ $(document).ready(function(){initNavTree('n_r_f24_8h_source.html',''); initResiz
 <div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160; </div>
 <div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#af4f443da5d90e032e5f2f65420515f9c">startReceive</a>(uint32_t timeout, uint16_t irqFlags, uint16_t irqMask, <span class="keywordtype">size_t</span> len);</div>
 <div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160; </div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160; </div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    <span class="comment">// configuration methods</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160; </div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a408278336cdf25fd205ecffea86c26e8">setFrequency</a>(<span class="keywordtype">float</span> freq);</div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160; </div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a0873f58ae62e41cff99813e21cc8b02a">setBitRate</a>(<span class="keywordtype">float</span> br);</div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160; </div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#ad9859fa54aed7d3cd82839bad9d7d33a">setOutputPower</a>(int8_t pwr);</div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160; </div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a5b01677f5ce6bee54da8fc7098c339f4">setAddressWidth</a>(uint8_t addrWidth);</div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160; </div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#aa0e1f2dddf810213410a420205bbd8af">setTransmitPipe</a>(uint8_t* addr);</div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160; </div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a31bcc5a8c3747bf08a273dbdadc5481a">setReceivePipe</a>(uint8_t pipeNum, uint8_t* addr);</div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160; </div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a31bcc5a8c3747bf08a273dbdadc5481a">setReceivePipe</a>(uint8_t pipeNum, uint8_t addrByte);</div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160; </div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a4dd39e5c0efee1f0c2a14f729eb4426a">disablePipe</a>(uint8_t pipeNum);</div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160; </div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a3f0b08fd8e58db36f6c1926cc3eac6a9">getStatus</a>(uint8_t mask = 0xFF);</div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160; </div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classn_r_f24.html#ad9204ee787b425e2c9e8422bb7939a37">isCarrierDetected</a>();</div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160; </div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a5170284f0a5535de7d00216d450b87a4">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160; </div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="classn_r_f24.html#a23ea1749c21863ebc5bd3a2b08d64f3b">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160; </div>
-<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a3eb45884a5730ac1c339c7ba4f7b5282">setCrcFiltering</a>(<span class="keywordtype">bool</span> crcOn = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160; </div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#aca941c9235ba1212257288554eb4b7fe">setAutoAck</a>(<span class="keywordtype">bool</span> autoAckOn = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160; </div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#aca941c9235ba1212257288554eb4b7fe">setAutoAck</a>(uint8_t pipeNum, <span class="keywordtype">bool</span> autoAckOn);</div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160; </div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a0db248d2bcdb4ca2b401e8e638442916">setDataShaping</a>(uint8_t sh) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160; </div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a0429a9d6524005065e6fac21aaebdcbf">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160; </div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    <a class="code" href="class_module.html">Module</a>* mod;</div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160; </div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    <span class="keywordtype">void</span> SPIreadRxPayload(uint8_t* data, uint8_t numBytes);</div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <span class="keywordtype">void</span> SPIwriteTxPayload(uint8_t* data, uint8_t numBytes);</div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    <span class="keywordtype">void</span> SPItransfer(uint8_t cmd, <span class="keywordtype">bool</span> write = <span class="keyword">false</span>, uint8_t* dataOut = NULL, uint8_t* dataIn = NULL, uint8_t numBytes = 0);</div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160; </div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;  <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160; </div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    int16_t frequency = RADIOLIB_NRF24_DEFAULT_FREQ;</div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    int16_t dataRate = RADIOLIB_NRF24_DEFAULT_DR;</div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    int8_t power = RADIOLIB_NRF24_DEFAULT_POWER;</div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    uint8_t addressWidth = RADIOLIB_NRF24_DEFAULT_ADDRWIDTH;</div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160; </div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    int16_t config();</div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    <span class="keywordtype">void</span> clearIRQ();</div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;};</div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160; </div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a3563453988a83d22dd07d4691543a300">readData</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160; </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;    <span class="comment">// configuration methods</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160; </div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a408278336cdf25fd205ecffea86c26e8">setFrequency</a>(<span class="keywordtype">float</span> freq);</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160; </div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a0873f58ae62e41cff99813e21cc8b02a">setBitRate</a>(<span class="keywordtype">float</span> br);</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160; </div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#ad9859fa54aed7d3cd82839bad9d7d33a">setOutputPower</a>(int8_t pwr);</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160; </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a5b01677f5ce6bee54da8fc7098c339f4">setAddressWidth</a>(uint8_t addrWidth);</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160; </div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#aa0e1f2dddf810213410a420205bbd8af">setTransmitPipe</a>(uint8_t* addr);</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160; </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a31bcc5a8c3747bf08a273dbdadc5481a">setReceivePipe</a>(uint8_t pipeNum, uint8_t* addr);</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160; </div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a31bcc5a8c3747bf08a273dbdadc5481a">setReceivePipe</a>(uint8_t pipeNum, uint8_t addrByte);</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160; </div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a4dd39e5c0efee1f0c2a14f729eb4426a">disablePipe</a>(uint8_t pipeNum);</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160; </div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a3f0b08fd8e58db36f6c1926cc3eac6a9">getStatus</a>(uint8_t mask = 0xFF);</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160; </div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classn_r_f24.html#ad9204ee787b425e2c9e8422bb7939a37">isCarrierDetected</a>();</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160; </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a5170284f0a5535de7d00216d450b87a4">setFrequencyDeviation</a>(<span class="keywordtype">float</span> freqDev) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160; </div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="classn_r_f24.html#a23ea1749c21863ebc5bd3a2b08d64f3b">getPacketLength</a>(<span class="keywordtype">bool</span> update = <span class="keyword">true</span>) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160; </div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a3eb45884a5730ac1c339c7ba4f7b5282">setCrcFiltering</a>(<span class="keywordtype">bool</span> crcOn = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160; </div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#aca941c9235ba1212257288554eb4b7fe">setAutoAck</a>(<span class="keywordtype">bool</span> autoAckOn = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160; </div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#aca941c9235ba1212257288554eb4b7fe">setAutoAck</a>(uint8_t pipeNum, <span class="keywordtype">bool</span> autoAckOn);</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160; </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a0db248d2bcdb4ca2b401e8e638442916">setDataShaping</a>(uint8_t sh) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160; </div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    int16_t <a class="code" href="classn_r_f24.html#a0429a9d6524005065e6fac21aaebdcbf">setEncoding</a>(uint8_t encoding) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160; </div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE) &amp;&amp; !defined(RADIOLIB_LOW_LEVEL)</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    <a class="code" href="class_module.html">Module</a>* mod;</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160; </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <span class="keywordtype">void</span> SPIreadRxPayload(uint8_t* data, uint8_t numBytes);</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    <span class="keywordtype">void</span> SPIwriteTxPayload(uint8_t* data, uint8_t numBytes);</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    <span class="keywordtype">void</span> SPItransfer(uint8_t cmd, <span class="keywordtype">bool</span> write = <span class="keyword">false</span>, uint8_t* dataOut = NULL, uint8_t* dataIn = NULL, uint8_t numBytes = 0);</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160; </div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="preprocessor">#if !defined(RADIOLIB_GODMODE)</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160; </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    int16_t frequency = RADIOLIB_NRF24_DEFAULT_FREQ;</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    int16_t dataRate = RADIOLIB_NRF24_DEFAULT_DR;</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    int8_t power = RADIOLIB_NRF24_DEFAULT_POWER;</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    uint8_t addressWidth = RADIOLIB_NRF24_DEFAULT_ADDRWIDTH;</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160; </div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    int16_t config();</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    <span class="keywordtype">void</span> clearIRQ();</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;};</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160; </div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="ttc" id="aclass_module_html"><div class="ttname"><a href="class_module.html">Module</a></div><div class="ttdoc">Implements all common low-level methods to control the wireless module. Every module class contains o...</div><div class="ttdef"><b>Definition:</b> Module.h:31</div></div>
 <div class="ttc" id="aclass_physical_layer_html"><div class="ttname"><a href="class_physical_layer.html">PhysicalLayer</a></div><div class="ttdoc">Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....</div><div class="ttdef"><b>Definition:</b> PhysicalLayer.h:33</div></div>
 <div class="ttc" id="aclass_physical_layer_html_a3563453988a83d22dd07d4691543a300"><div class="ttname"><a href="class_physical_layer.html#a3563453988a83d22dd07d4691543a300">PhysicalLayer::readData</a></div><div class="ttdeci">virtual int16_t readData(uint8_t *data, size_t len)</div><div class="ttdoc">Reads data that was received after calling startReceive method.</div><div class="ttdef"><b>Definition:</b> PhysicalLayer.cpp:209</div></div>