This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1101: Reading Sharky 775 wMBus with a Raspberry Pi

Part Number: CC1101
Other Parts Discussed in Thread: WMBUS,

Hi all, first time here. Slight smile

I have been using a Nooelec USB RTL-based SDR (NESDR SMArTee XTR) with a Raspberry Pi (Zero 2 W) to capture wMBus readings off my Sharky 775 heat meter. This works perfectly fine with RTL-SDR (piped through rtl-wmbus by wmbusmeters) using 868.625MHz and 1.6e6 sample rate. I'm configuring wmbusmeters in T1 and that works perfectly.

I'm now trying to use the CC1101 as a replacement for the Nooelec and I need some help. I got a board off Aliexpress which has an SPI interface and is (allegedly) tuned for 868 MHz with the CC1101.

Somewhat frustratingly, the whole opensource ecosystem around this seems exclusively coded for RTL and USB transceivers. I found a Python3 library which appears to work really well with the CC1101. I believe I'm wiring and configuring it right, yet I can't read the meter. This is how I'm using it:

#!/usr/bin/env python3
from pycc1101.pycc1101 import TICC1101
dev = TICC1101()
dev.reset()
dev.setDefaultValues()
dev.setCarrierFrequency(868)
dev.setSyncMode(0) # Disables syncword filtering
dev.configureAddressFiltering() # Disables address filtering
dev.setPacketMode("PKT_LEN_FIXED")
#dev.setPacketMode("PKT_LEN_VARIABLE")

while True:
    dev._setRXState()
    dev.recvData() # I corrected some Python3 errors here; will file a pull request

With PKT_LEN_FIXED, I can't receive anything. With PKT_LEN_VARIABLE, I receive a flood of data none of which seems valid.

What am I missing?

Thanks!
F.

  • Meaning that you are not setting the exact frequency, nor the datarate and deviation? See https://www.ti.com/lit/an/swra234a/swra234a.pdf for more details on how the registers has to be set up to receive wMBUS T mode. 

  • Many thanks for the application notes! It helped me realise how much I have to learn in the area. Slight smile

    I read through it and applied the register settings from Appendix D (I'm in Radio Link B as I'm trying to only receive from a meter). I'm now getting readings every few seconds which is great! I just don't know how to parse them as the output is not what rtl_wmbus expects. I need a few more days of tinkering and I'll come back to this thread with my findings. Any extra pointers (or reading material) you (or anyone) have in the meantime are very welcome!