For CC1101 Transceiver, should we migrate to the RadioLib library?

@DigiH @1technophile

Question / Discussion point

Within OpenMQTTGateway should we switch to the RadioLib library for CC1101 support ? Am asking as it would allow us to support more Transceiver modules in the future, like the sx127x I have been working with this month.

I have RadioLib working with a CC1101 and rtf_433_ESP.

Obliviously the transition would require significant regression testing, but their is future value with additional module support

I think yes when I see that RadioLib is actively maintained and supports a wide range of RF modules.

+1

and with a possible nRF24L01 module support it could mean getting closer to

which would make me think of switching my mysensors gateway over to an ethernet OMG version as well.

Okay, let me spend some time on design and transition planning for this

4 Likes

If I have read this correclty, the CC1101 should also gain a much better reception range thanks to Radiolib, is that right?

Hello,
I found this conversation while searching for RadioLib in the topics …
I use openmqttgateway and rtl_433 with CC1101 module and found the receive range short. As i understood there are settings such data rate, bandwidth which can affect the receiving range.

Long story short - was able to find few “magic” registry settings, and indeed they improve the range in my case. As i understood these settings were calculated and calibrated with SmartRF tool and debugging device. Most important is that they are for data rate and RxBandwidth.

Recently found that RadioLib can now provide calculation related to them, for example autoSetRxBandwidth [CC1101] 3 New CC1101 Functions (#1038) · jgromes/RadioLib@1fb5100 · GitHub

Using latest RadioLib (7.1.2) within rtl_433_ESP (at least for RF_CC1101 ) is almost straightforward : just to add value to a define (#define RADIOLIB_LOW_LEVEL 1)

What is the interest to investigate further the possibility to update to it?
Probably there will be benefits, as for example right now i am using this lines (in rtl_433_ESP/src/rtl_433_ESP.cpp) to initialize the module

#ifdef RF_CC1101
  if (ookModulation) {
    // set mode to standby
//    radio.SPIsendCommand(RADIOLIB_CC1101_CMD_IDLE);
      radio.standby();
      radio.packetMode(); //enter packet mode
      radio.setOutputPower(-30); // just in case limit output power to min
      radio.setBitRate(4.8); // 4.8 kbps/ probably 4.8 kbaud - read that this provides better sensitivity
      radio.setBitRateTolerance(3); // 3 is maximum, means 12.5%
      radio.autoSetRxBandwidth(); // let the library calculate the rx bandwith according baud rate and frequency
3 Likes

Hello,

Thanks for your research.
I think transitioning to Radiolib for the CC1101 will be a good addition to OpenMQTTGateway and I suppose for RTL_433 ESP too (@NorthernMan54)

1 Like

rtl_433_ESP is using RadioLib, so no need to transition. rtl_433_ESP/library.json at 93ad856c155f200286ac9085b4a0578657a1e4a1 · NorthernMan54/rtl_433_ESP · GitHub

But looks like something to investigate further, thanks for pointing this out.

Timing for this is a few months out, as I’m currently backpacking thru Asia to avoid the Canadian winter, and do not have access to the technology to investigate further.

Thanks for this information. I can confirm that the latest Radiolib library works with rtl_433_ESP by adding the #define RADIOLIB_LOW_LEVEL 1 line.

I am using a 868 Mhz CC1101 module with an ESP32 WROOM board. I have found reception Ecowitt (Fine Offset) sensors to be poor and tried numerous settings for frequency, bandwidth and bit rate. The default settings from the library work best for me:

frequency 868.35 MHz
bit rate: 17.24 kbps
frequency deviation: 40 kHz
rx bandwidth: 270.0 kHz

I replaced the helical wire antenna on the module with a 1/4 wave monopole (82 mm of copper wire) and this improved the reception considerably.

The autoSetRxBandwidth method runined reception for me.