rtl_433 ported to ESP32 microcontrollers with CC1101 or SX127X Transceiver Chips

Receiving wireless sensors operating in the unlicensed ISM band has been made almost universal with rtl_433 and RTL-SDRs. However, recently rtl_433 has been ported over for use on ESP32 microcontrollers that are combined with CC1101 or SC127X transceiver chips.

PCB boards that combine these two chips can be found cheaply on Aliexpress as LoRa boards, under the name "LILYGO LoRa 32". If you are unaware, ESP32 chips cheaply combine a WiFi and Bluetooth modem with a microcontroller that is capable of hosting a webserver. CC1101 and SC127X are low cost low power hardware transceiver chips made for IOT devices. We've posted about LILYGO boards in the past as they've been used with interesting projects such as Meshtastic, and for weather balloon tracking.

This project could be useful for home automation as a module has been made available for openMQTTGateway. Instead of dedicating a more powerful Raspberry Pi and RTL-SDR, you can now dedicate a much cheaper and much lower power device to the task. 

[Also seen on Hackaday.]

RTL_433 running on a LILYGO LoRa V2 Board
RTL_433 running on a LILYGO LoRa V2 Board


  1. Kjetil

    I can also confirm that the LILYGO® TTGO LoRa32 V2.1_1.6 Ver. 433MHz performs much better compared to the ESP32 with CC1101 combo. I get expected range for my sensors now.

  2. Tamadite

    I am using LILYGO® TTGO LoRa32 V2.1_1.6 Ver. 433MHz and I am getting signals from all over the place, some home-alarm system from some neighbor, thermometers, grill thermometers, etc. Be sure you are using a calibrated 433 antenna. Do not use those 4 cm long ones, a 16.5 cm long straight piece of wire makes a big difference. In 24 hours I’ve collected more than 60 different topics using OMG.

    • james m

      any shot u can post how you went about doing this? im not sure how or what software to upload to these boards? I uploaded the opemmqttgateway to the board – but all that is allowing me to do is see the board on my network and when going to mqtt explorer – I don’t see anything being received by the board. do I have to to the board to look in the 915mhz freq? how do I do this? I know I have devices in the area as I can see them w my usb rtl-sdr devic.

  3. Zulea

    I made a lot of tests with CC1101 and SX1278 modules using this library. First test was with OpenMqttGateway then later I integrated this in Tasmota firmware for personal use to receive different 433 MHz RF meteo sensors in more locations. Also extended the receive/decode to Oregon Scientific v2, v3 sensors (OOK_PULSE_MANCHESTER_ZEROBIT) and on RF gate opener Nice Flor-S. Both modules I used with cable/external high gain (tuned to 433 MHz) omnidirectional antennas. The radio sensitivity of this modules (at least in ASK/OOK mode and with settings from this library) is VERY bad (compared with old analog SH receivers). So I ended using the old SRX882S v2.0 (and modified this library to receive from data pin of this module). The con thing is I no more have RSSI information, but compared to higher sensitivity of SRX882S, I choose this solution.
    Many thanks to NorthernMan54 for this great library, but unfortunately I was not able to use any of this modules (CC1101 or SX1278) to get good signal from my spreaded RF sensors. I supose this is because both modules was not designed for this kind of job (ASK/OOK “blind” receiver).

    • camiot

      I am in the same situation. I tried only with CC1101 to get data from WH1080 Weather station. The result is bad even if I am very near to the weather station(5 meters)–I can only get 1 success packet after 2 hours. Thus I go back to old RXB6 which can reach longer distance.
      I have no idea why too.

    • Kjetil


      Also experienced very poor range with CC1101 and ESP32 Dev module, less than 5 meters and even then not all packets were received. I thought it had to be a fault on the CC1101 module, or that the Wifi radio on the ESP32 interfared. What changes did you do in the lib to use the SRX882S v2.0?


Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>