Testing CC1101 vs SX1278 reception on ESP32 + RTL_433 FSK

I’ve built 3 different ESP32 + OMG combinations and a Raspberry Pi Zero running RTL_433, to test my Ecowitt FSK temperature sensors (one WH32_EP outside and one WN34L inside, both 433MHz).

  1. The Pi is running RTL_433 with a USB SDR radio, using a magnetic-base omnidirectional antenna:

  2. ESP32 + CC1101 with a coil antenna:

  3. ESP32 + CC1101 with a rubber ducky antenna:

  4. ESP32 + SX1278 (AiThinker Ra-02) with a magnetic-base omnidirectional antenna:
    41FmdAioUkL.AC

Comparing the performance of these, I see that the CC1101 with the coil antenna is surprisingly doing the best. The SX1278 performs the worst (I tried switching the omnidirectional antenna with the rubber ducky but it still performed the worst).

Reliability of reception with the same outdoor sensor:

Reliability of reception with the same indoor sensor:

Thanks @NorthernMan54 for getting FSK to work with rtl_433_ESP. Last time I tried this a couple years ago, it wasn’t working, but looks like the CC1101 + coil antenna can safely replace my Pi + SDR setup. I’m surprised the SX1278 didn’t do better considering its fancier antenna, but I haven’t actually tested the viability of these antennae with Nanovna (nor would I know how to).

5 Likes

This is a really interesting work thank you! I too am trying to get FSK demodulation working on an ESP32 with the CC1101 however there doesn’t seem to be any documentation how to do this via the console or MQTT as far as I can see. How did you manage to achieve it?

Welcome @Vinblastine

Which binary did you install on your ESP32 with the CC1101 connected, and which version of OpenMQTTGateway?

And which device are you trying to receive and have decoded?

Thanks for getting back to me. So I initially tried esp32dev-multi_receiver 1.70 and then the esp32dev-rtl_433 1.7 from the web upload.
I have today tried the “Build from web” with the esp32dev-rtl_433 about an hour ago.
I am trying to decode a simplisafe v3 door contact sensor. Its listed on @NorthernMan54 rtl_433_ESP page as " Registering protocol [58] “SimpliSafe Gen 3 Home Security System” so I think it should be supported. What I think I am struggling with is change the modulation from OOK to FSK. (Or even if that is possible after the build process)
I can see the CC1101 ignoring the FSK signals via serial connection.

I would suggest you try the esp32dev-rtl_433 binary of the current development version.

Then you should be able to set the FSK modulation in the WebUI.

Sorry, my bad, the OOK/FSK switching is actually not possible in the WebUI.

Can you try the “Build from web” with the esp32dev-rtl_433 option, but also add the FSK required build_flag to the esp32dev-rtl_433 environment:

…
'-DOOK_MODULATION=false' 
…

which makes the FSK modulation activated.

Ah! I was going to say I have just installed the dev version and couldn’t see it in RF configuration. Is it possible to set it via MQTT command or does it have do be done during the build process?

I have just seen your reply! Thanks I will give it a go.

I’ve been trying to find the best CC1101 antenna for FSK and bought like 6 different ones.

I have the original coil one I got from Amazon 2 years ago (SOLU is the brand). I got 2 more of them last month. I bought one with an SMA connector and antenna from AliExpress. I bought 2 from Tindie with SMA connectors and a high gain antenna.

Surprisingly, the old SOLU coil one does much better than the others every time.

  • The new SOLU ones look darker, the coil is less shiny, and the solders look cold, but otherwise identical to my older one, but perform markedly worse.
  • The SMA one from AliExpress is terrible
  • The SMA ones from Tindie have highest RSSI but still have twice as many missed signals as the original coil one

I even tried soldering my own straight wire 17.3cm antenna to one of the SOLU ones and it still did worse than the original SOLU. At a loss with this magic CC1101 I can’t seem to replicate