From 3a34f8beaff09f494e3996f059737d10d3af75f0 Mon Sep 17 00:00:00 2001 From: Tom <116762865+Nestpebble@users.noreply.github.com> Date: Mon, 3 Feb 2025 12:16:35 +0000 Subject: [PATCH] E80 promicro update (#5967) * add readme and update rfswitch * Updated readme to include all data from Ebyte * Added results from switch testing & notes thereon * fixed picture * Whoops! Forgot to uncomment some settings from test. * Update readme.md * Delete variants/diy/nrf52_promicro_diy_tcxo/E80_RSSI_per_case.png * Add webp image to appease trunk * Update readme.md * Trunky trunk trunk * Clang and the trunk is done --- .../E80_RSSI_per_case.webp | Bin 0 -> 10512 bytes .../diy/nrf52_promicro_diy_tcxo/readme.md | 107 ++++++++++++++++++ .../diy/nrf52_promicro_diy_tcxo/rfswitch.h | 11 +- .../diy/nrf52_promicro_diy_tcxo/variant.h | 2 +- 4 files changed, 115 insertions(+), 5 deletions(-) create mode 100644 variants/diy/nrf52_promicro_diy_tcxo/E80_RSSI_per_case.webp create mode 100644 variants/diy/nrf52_promicro_diy_tcxo/readme.md diff --git a/variants/diy/nrf52_promicro_diy_tcxo/E80_RSSI_per_case.webp b/variants/diy/nrf52_promicro_diy_tcxo/E80_RSSI_per_case.webp new file mode 100644 index 0000000000000000000000000000000000000000..825c3cbc04ac6bc3f08cb824750e8fa171bd06b3 GIT binary patch literal 10512 zcmbVw<8vhrtoCWQcDuE0Z*AK=wY_z>wr$(Cjje6l*48}l@4j>Yf}6=RnM^(;Gs!%e zL`7Oc0)_?v&=eO@(oo_8!T|sP?Ei2J4j2Rj2+Ju+ng8d3Q4y09e+#0EGi`;3uff1= zNJZWNz@!HHCh{a6{lK;5-cdhiLH~F4V`6No{qbLZVsmN$K4ee zMQIT!$^1L>92%^d-KV${oENxmfu|+!rrqbu$E~4!SG?-p&m&EXjlM!Z3Xtf)`3gwq zGx1w9fxoC*@8Q=&-zRh}(L-)N{(*PDA1X-t;_0mHTr=kM4ODI**Y}d0u}cUt_$+)i z*t0(YwSRAc3?FBQ>S`Z)-_pjI#J`6;3qG5!!!887ywtv$K4+h9w`Q+<(?4}UcuQET zf~S7X9;{bE3w<+w8z6=&_=~ogzIBj4h~$ImEaq!8e>dOH7i50}_PP4L`dO#ZxBDvo zwfn7EulUGxllRm&_|fRc4vPA8I}vQ{oAaCTy8@}-;e76XP<=Dq_f+<|_oVp!27#hT z!3+%jGKVjz`6IYM*Tzj=D1spNs1+qIG)K_Juqjc|`i6}(l{lu9(!+hji{X_uEv8FY z)EXt1wJF2M-u_yPiul6-SYeLnlR1j%)vM0LVe1sN3OfGvlDjRGaOS>$Nyt8%?ay6mmXFz!A$kIH9BOgHN<@0N>}+ zP*6{SaZH#&ygD`)D{JpmCj!k*Ks+@Rx<+(B7=D}Z@!koMS6Xg5ruGXKroCC`QYdxGy|Aqqp6Zf;l|cR#`$J@ObC7*Z&$x2dFEfueHo~{kn&g41I?qP!l?hLugUnl z2Jeqj)yiOB%u+E7TD&ehoH*C5Nz8BCSLTZecHBFNwah(87ORR1Le)U$;sK8>KN)JG z4eGw7u}LJc!jq#^ZSp-6eOS@Z#PO_E%OpZh=upxQNkz8(CS3Mo>QssBza0= zBLb=Y0`GtslTjC88spoQ#Uy6*CzfmmHGcP|*fB6QvPg%Q;pfhKp(?-10wu*%mT3Zf zRDJ0w9vGiI<8sI@dL2|dXTAC^;&Vt6!5xkzZ=DtRK;;Z>4ZLjQhiBJUNWr5nPeFUg zf1(~8X3ThGTCoT(WV$vyqwqCKc**S3Su>o=&7w4aIqEOH2e2o<@^If5m@!?e! z^)El&H|qvN1InD4R6N6o#Y~hSjDHWf7#6wyg47#L0Cw?_O4A`r{CM%Az3mAnF8BdUr7{B(Wf!sjtR-_NYhZb)C4a-O9KC6< z0%dT?Py>PLS4-E`U*HW3NPSfxK}H4c)F9ym6*1CRU81$3Z&1pSyxUt9}>F4zA1mg$@ccuZODVqcD0}?*nA*PpxpZaG zM1-)qY^_R34YhwRqHwsdfA(!IBc2H%<6oC%_ep9|a4I3yVVV1fhXiBTrcsOjY6ocM z@ky7QZw{QhnWj~hIOY$)(8xG1bp!;sWsAS%J2S~D2wr#{YHF%cM~M4<+hB4m*UFs{ zJt4wJMW_yJhU!bx6?0*1ac?~}M6@S8m2bl1F=!zL6ASEIe#E>K_FZx7`&N<6QEH|Y z3nM^A2EF*NGKRBFqK-v>%t1CC=wt0Oljb?*ThW9mQJ|igq5yuH+L;a5l}LFO9%J*< zXKhX8KjZ8Wj3T6@1Qq;&+qxxiMR-Uqr5EBs2iiqSgwQu#Nb*5KQu0NZw#Irgmg8my@1s=N3Sb%1hwZq zaDrqWJ(}u<{4I9=wTqMxD~Sq`^ylO&X#Ghi4eqqa#=@E(z>-n--ksX!L>H=5-hL11 zCfk{lm<+JwAzrB!dV@oiHEMPt_AF2AVWtdh0Hz1jdg4Pv>X-nG4eM;yL8QXnkm9#lvVT|Feqz>#bN0 zqBO_`BWo=H^j59k7_^oY_q{^L+3*AO0PHb?u6P&o006!teE@<{%wT205d{za066H% zhA}pLaviRHJ}@FaMTIye*e;fR_%kn9%2Ra-3#YmT_{bigXX|^_``-`elTFp4=0>e0 zQBqW$Y;juz_X}2wqgKct2lZjmc&Kih^B$?b;*VFD+9888IlY?=*m{JONq@=-a?D%g z^qGvUP&|Vmrw`STRx&#z?k#1$uDvM`UesMo-sp$U$j3&cmuekp44^|q6)fz9cx+cc zW;@nLRZo_om9Z{sQ|*SLO17s*WxEU&L`;Y!hW&o~1NbqR-Xf%M0?WF0Uza8N^%sKwm(EHuWDFA!6{B6G(U*#1cvlC_}QoooOQOHvm*c z_B5g(m;3FCsc+gX=xYql?WZi%Cc{t8Kp$gkRj4TV6T#aeSQk+}o{3G%m>`Q&Ht^SQ zAiSVcIB~`!Do0RZ-vqlq7I>JKfVb5Iz8Q+L5M}|!mc?rHjtCGPDpo>`Y%!yY{jYX! z1=P*xpwRVNy9n$&Tccou(hF;>g_5GG+|qsoH@$s9G{uM?`fE8uima)aL$RVwroJHG zcEn_vBo*N3=J1x39a$$Q`ySE^hvGJjo@^sC|4lbNk}=^4^`_qP>MpdWX=}6DL|mW> zerG0hNekkk#w9|Dx~`I~f9REXnf}8z_isQEmxeYsBeT4OYeezERK<==4oN%5W4Y@}#YQ+-W#FNDr#svDRw$L-*ogv1xtNxcb z*x0YAQ6s*DLm4}XZA9>iT~y{5_U@fM=UX|dB)Ygify|JwZ+V>wZHzyz3_^}vsXD)T zEzY^O8LIa#`S*HOr-O>j$$1@T2rfxTjl^rbJ+EbGha4C9I9%0ACt7_&<2f9OIt%BE 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 + + The table of known modules is at the bottom of the variant.h, and reproduced here for convenience. + +| Mfr | Module | TCXO | RF Switch | Notes | +| ------------ | ---------------- | ---- | --------- | ------------------------------------- | +| Ebyte | E22-900M22S | Yes | Ext | | +| Ebyte | E22-900MM22S | No | Ext | | +| Ebyte | E22-900M30S | Yes | Ext | | +| Ebyte | E22-900M33S | Yes | Ext | MAX_POWER must be set to 8 for this | +| Ebyte | E220-900M22S | No | Ext | LLCC68, looks like DIO3 not connected | +| AI-Thinker | RA-01SH | No | Int | SX1262 | +| Heltec | HT-RA62 | Yes | Int | | +| NiceRF | Lora1262 | yes | Int | | +| Waveshare | Core1262-HF | yes | Ext | | +| Waveshare | LoRa Node Module | yes | Int | | +| Seeed | Wio-SX1262 | yes | Int | Sooooo cute! | +| AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** | +| RF Solutions | RFM95 | No | Int | Untested | +| Ebyte | E80-900M2213S | Yes | Int | LR1121 radio | + + + +## LR1121 modules - E80 is the default + +The E80 from CDEbyte is the most obtainable module at present, and has been selected as the default option. + +Naturally, CDEbyte have chosen to ignore the generic Semtech impelementation of the RF switching logic and have supplied confusing and contradictory documentation, which is explained below. + +tl;dr: The E80 is chosen as the default. **If you wish to use another module, the table in `rfswitch.h` must be adjusted accordingly.** + +### E80 switching - the saga + +The CDEbyte implementation of the LR1121 is contained in their E80 module. As stated above, CDEbyte have chosen to ignore the generic Semtech implementation of the RF switching logic and have their own table, which is located at the bottom of the page [here](https://www.cdebyte.com/products/E80-900M2213S/2#Pin), and reflected on page 6 of their user manual, and reproduced below: + +| DIO5/RFSW0 | DIO6/RFSW1 | RF status | +| ---------- | ---------- | ----------------------------- | +| 0 | 0 | RX | +| 0 | 1 | TX (Sub-1GHz low power mode) | +| 1 | 0 | TX (Sub-1GHz high power mode) | +| 1 | 1 | TX(2.4GHz) | + +However, looking at the sample code they provide on page 9, the values would be: + +| DIO5/RFSW0 | DIO6/RFSW1 | RF status | +| ---------- | ---------- | ----------------------------- | +| 0 | 1 | RX | +| 1 | 1 | TX (Sub-1GHz low power mode) | +| 1 | 0 | TX (Sub-1GHz high power mode) | +| 0 | 0 | TX(2.4GHz) | + +The Semtech default, the values are (taken from [here](https://github.com/Lora-net/SWSD006/blob/v2.6.1/lib/app_subGHz_config_lr11xx.c#L145-L154)): + +
+ +```cpp + .rfswitch = { + .enable = LR11XX_SYSTEM_RFSW0_HIGH | LR11XX_SYSTEM_RFSW1_HIGH | LR11XX_SYSTEM_RFSW2_HIGH, + .standby = 0, + .rx = LR11XX_SYSTEM_RFSW0_HIGH, + .tx = LR11XX_SYSTEM_RFSW0_HIGH | LR11XX_SYSTEM_RFSW1_HIGH, + .tx_hp = LR11XX_SYSTEM_RFSW1_HIGH, + .tx_hf = 0, + .gnss = LR11XX_SYSTEM_RFSW2_HIGH, + .wifi = 0, + }, +``` + +
+ +| DIO5/RFSW0 | DIO6/RFSW1 | RF status | +| ---------- | ---------- | ----------------------------- | +| 1 | 0 | RX | +| 1 | 1 | TX (Sub-1GHz low power mode) | +| 0 | 1 | TX (Sub-1GHz high power mode) | +| 0 | 0 | TX(2.4GHz) | + +It is evident from the tables above that there is no real consistency to those provided by Ebyte. + +#### An experiment + +Tests were conducted in each of the three configurations between a known-good SX1262 and an E80, passing packets in both directions and recording the reported RSSI. The E80 was set at 22db and 14db to activate the high and low power settings respectively. The results are shown in the chart below. + +![Chart showing RSSI readings in each configuration and setting](./E80_RSSI_per_case.webp) + +## Conclusion + +The RF switching is based on the code example given. Logically, this shows the DIO5 and DIO6 are swapped compared to the reference design. + +If future DIYers wish to use an alternative module, the table in `rfswitch.h` must be adjusted accordingly. diff --git a/variants/diy/nrf52_promicro_diy_tcxo/rfswitch.h b/variants/diy/nrf52_promicro_diy_tcxo/rfswitch.h index 2258c3135..71508c037 100644 --- a/variants/diy/nrf52_promicro_diy_tcxo/rfswitch.h +++ b/variants/diy/nrf52_promicro_diy_tcxo/rfswitch.h @@ -1,17 +1,20 @@ #include "RadioLib.h" +// This is rewritten to match the requirements of the E80-900M2213S +// The E80 does not conform to the reference Semtech switches(!) and therefore needs a custom matrix. +// See footnote #3 in "https://www.cdebyte.com/products/E80-900M2213S/2#Pin" // RF Switch Matrix SubG RFO_HP_LF / RFO_LP_LF / RFI_[NP]_LF0 // DIO5 -> RFSW0_V1 // DIO6 -> RFSW1_V2 -// DIO7 -> ANT_CTRL_ON + ESP_IO9/LR_GPS_ANT_DC_EN -> RFI_GPS (Bias-T GPS) (LR11x0 only) +// DIO7 -> not connected on E80 module - note that GNSS and Wifi scanning are not possible. static const uint32_t rfswitch_dio_pins[] = {RADIOLIB_LR11X0_DIO5, RADIOLIB_LR11X0_DIO6, RADIOLIB_LR11X0_DIO7, RADIOLIB_NC, RADIOLIB_NC}; static const Module::RfSwitchMode_t rfswitch_table[] = { // mode DIO5 DIO6 DIO7 - {LR11x0::MODE_STBY, {LOW, LOW, LOW}}, {LR11x0::MODE_RX, {HIGH, LOW, LOW}}, - {LR11x0::MODE_TX, {LOW, HIGH, LOW}}, {LR11x0::MODE_TX_HP, {LOW, HIGH, LOW}}, + {LR11x0::MODE_STBY, {LOW, LOW, LOW}}, {LR11x0::MODE_RX, {LOW, HIGH, LOW}}, + {LR11x0::MODE_TX, {HIGH, HIGH, LOW}}, {LR11x0::MODE_TX_HP, {HIGH, LOW, LOW}}, {LR11x0::MODE_TX_HF, {LOW, LOW, LOW}}, {LR11x0::MODE_GNSS, {LOW, LOW, HIGH}}, {LR11x0::MODE_WIFI, {LOW, LOW, LOW}}, END_OF_MODE_TABLE, -}; \ No newline at end of file +}; diff --git a/variants/diy/nrf52_promicro_diy_tcxo/variant.h b/variants/diy/nrf52_promicro_diy_tcxo/variant.h index 5e939c023..b74b100a3 100644 --- a/variants/diy/nrf52_promicro_diy_tcxo/variant.h +++ b/variants/diy/nrf52_promicro_diy_tcxo/variant.h @@ -193,4 +193,4 @@ settings. * Arduino objects - C++ only *----------------------------------------------------------------------------*/ -#endif \ No newline at end of file +#endif