CC1101 transceivers

Hey,

first of all, very nice project. Very much looking forward to my first installation.

My question is related to the CC1101 transceivers. Inside the wiki it’s mentioned that one should be able to connect any CC1100/CC1101 transceiver to the Pi via SPI. I’d like to do that. Can anybody recommend a webshop that sells 868M transceivers that are known to work? A quick check on Ebay brought up a few for as cheap as 5 Euro [1], or for 9 Euro [2] with shipping from Germany. However, they only mention 433 MHz support. The CC1101 IC can do 433 MHz and the sub-GHz band but the circuitry differs a bit [3]. So I am unsure if the one’s I found can do it. Any recommendations?

Thanks
Andre

[1] ebay.de/itm/NEW-CC1101-wirel … 2c78aa16e0
[2] ebay.de/itm/433Mhz-Wireless- … 3f32e106ec
[3] ti.com/lit/ds/symlink/cc1101.pdf

Hey Andre,

sadly until now I haven’t found cheap TI CC110X modules which support 868MHz. The modules you found on ebay won’t work - I already tested a bunch of them. The problem is the balun, which has to be designed for a specific frequency. But the seller of the module states that modules which support 868MHz “can be made”. Maybe ask him, if it would be possible to buy a 868MHz module?
And please tell me, when you find a 868MHz module :wink:.

Cheers,

Sathya

Hey Sathya,

thanks for your prompt reply. Yeah, sure we need to make sure that the transceiver board has been designed with 868MHz operation in mind. I think one of the vendors (www.rfinchina.com) does have boards with 868MHz support. But on the other hand, we may not just look for the CC1101. Maybe we can user other boards like the CC1120 or CC1121, maybe even the nrf905. They are all very similar and may work seamlessly if they use the same configuration. Is there anything known about the air-interface, i.e. actual frequency, modulation, bandwidth, sync-byte, crystal frequency, CRC? Would be nice to have this information.

Thanks
Andre

Hey Andre,

of course other boards would work. I just just used the TI CC1101, because it was easy to implement as it is used by most (one year ago by all) HomeMatic devices. I can’t tell you much about the configuration. When I started about a year ago I could have told you a little, but I forgot most of it already :blush:. I’m pretty much setting the registers as the HM-CC-VD (the old valve drive) does (I sniffed the SPI communication). The settings are (copied from https://github.com/hfedcba/Homegear/blob/master/Libraries/Systems/HomeMaticBidCoS/PhysicalDevices/TICC1100.cpp):

0x46, //00: IOCFG2 (GDO2_CFG)
0x2E, //01: IOCFG1 (GDO1_CFG to High impedance (3-state))
0x2E, //02: IOCFG0 (GDO0_CFG, GDO0 is not connected)
0x07, //03: FIFOTHR (FIFO threshold to 33 (TX) and 32 (RX)
0xE9, //04: SYNC1
0xCA, //05: SYNC0
0xFF, //06: PKTLEN (Maximum packet length)
0x0C, //07: PKTCTRL1: CRC_AUTOFLUSH | APPEND_STATUS | NO_ADDR_CHECK
0x45, //08: PKTCTRL0
0x00, //09: ADDR
0x00, //0A: CHANNR
0x06, //0B: FSCTRL1
0x00, //0C: FSCTRL0
0x21, //0D: FREQ2
0x65, //0E: FREQ1
0x6A, //0F: FREQ0
0xC8, //10: MDMCFG4
0x93, //11: MDMCFG3
0x03, //12: MDMCFG2
0x22, //13: MDMCFG1
0xF8, //14: MDMCFG0
0x34, //15: DEVIATN
0x07, //16: MCSM2
0x00, //17: MCSM1: IDLE when packet has been received, RX after sending
0x18, //18: MCSM0
0x16, //19: FOCCFG
0x6C, //1A: BSCFG
0x43, //1B: AGCCTRL2
0x40, //1C: AGCCTRL1
0x91, //1D: AGCCTRL0
0x87, //1E: WOREVT1
0x6B, //1F: WOREVT0
0xF8, //20: WORCRTL
0x56, //21: FREND1
0x10, //22: FREND0
0xA9, //23: FSCAL3
0x0A, //24: FSCAL2
0x00, //25: FSCAL1
0x11, //26: FSCAL0
0x41, //27: RCCTRL1
0x00, //28: RCCTRL0

And:
FSTEST (0x29): 0x59
TEST2 (0x2C): 0x81
TEST1 (0x2D): 0x35
PATABLE (0x3E): 0xC3

For update mode I’m setting:

writeRegister(Registers::Enum::FSCTRL1, 0x08, true);
writeRegister(Registers::Enum::MDMCFG4, 0x5B, true);
writeRegister(Registers::Enum::MDMCFG3, 0xF8, true);
writeRegister(Registers::Enum::DEVIATN, 0x47, true);
writeRegister(Registers::Enum::FOCCFG, 0x1D, true);
writeRegister(Registers::Enum::BSCFG, 0x1C, true);
writeRegister(Registers::Enum::AGCCTRL2, 0xC7, true);
writeRegister(Registers::Enum::AGCCTRL1, 0x00, true);
writeRegister(Registers::Enum::AGCCTRL0, 0xB2, true);
writeRegister(Registers::Enum::FREND1, 0xB6, true);
writeRegister(Registers::Enum::FSCAL3, 0xEA, true);

In combination with the datasheet of the TI CC1101 you should be able to figure out all the information you need. When you find a suitable module, I will implement it (the SPI communication will be different). The CCU2 for example uses the Silicon Labs Si4431. Maybe there are modules available with that chip (I haven’t searched yet)? After my exams end of April, I will look into it, too :wink: .

Cheers,

Sathya

Hi,

excellent. I checked the datasheet and compared the modem settings to your register settings. From what I can see the Homematic uses 2-FSK modulation which the nrf905 doesn’t support (only GFSK). So this guy is out I believe. With which CC1101 device have you tested the driver that you wrote (i.e. the github link you posted)?

Thanks
Andre

I tested it with a CRC (homegear.eu/index.php/File:COC.jpg).

Hi again,

I did some more googling and figured that the HomeMatic USB Adapter HM-CFG-USB is probably the cheapest 868M transceiver. Have you ever tried to use that one, for example with this daemon [1]?
Btw. I emailed one of the Chinese ebay shop and asked for a 868M version, I keep you updated.

Thanks
Andre

[1] git.zerfleddert.de/cgi-bin/gitweb.cgi/hmcfgusb

Hey,

it is possible to implement the HM-CFG-USB in Homegear, but it’s not the optimal solution - it’s a USB device without real antenna, so packet timing and range might be a problem. There might even be some communication limitations, because you can’t fully control it. But there is also one big advantage: The HM-CFG-USB can generate AES handshakes. I will put the implemenation on my todo list. It will take some time though, because currently Homegear requires full control over the BidCoS communication.

Cheers,
Sathya

Hey,
well, yes, it just has a wire-antenna but this can be changed if needed. Regarding the protocol timings and USB, I was wondering how severe this is. The CUL should have the same timing issues then. I don’t think the hmland daemon adds much latency. What do you think? Second, USB bus latency is roughly 1ms, so actual latency maybe 2-3ms, depending on the system performance/load etc. How tight are the timing constraints of BidCos?

Maybe I should just get a CUL too to compare.

Thanks
Andre

The only really timing sensitive communication is the direct control of the valve drives. There the packet has to be sent within about 1ms. Constant latency is no problem, but changes in latency due to a high CPU load can really mess up the communication. For all other packets, a latency of 10ms or more (up to 100ms?) is no problem. So it should definitely work with a HM-CFG-USB. The main problem currently is, that I think a lot of source code changes are necessary for it to work. After my exam I will look into it - it shouldn’t be too much work.

Hi,

I am looking in a similar direction.

Atm. I consider to order something like this:
http://www.aliexpress.com/item/2pcs-lot-CC1101-868MHz-module-Support-FSK-GFSK-ASK-OOK-and-MSK-modulation-free-shipping/760913548.html

An other approach could by to modify an 433Mhz module.
In the datasheet (page 25ff) is an example circuit for 868Mhz. Maybe it is possible to cut of pin 12 and 13 an pipe it to an “custom board”…

ti.com/lit/ds/symlink/cc1101.pdf

Just my two cents,
Sven

Hey,

the module looks perfect! I just ordered one for testing :wink:. If it is possible to change the circuit of a 433MHz module, I don’t know. I will ask Christian, he is the hardware expert :wink:.

Cheers,
Sathya

Hi Sathya,

I did some more googling looking after some information about the Silicon Labs RF chip you mentioned. There seems to be a company called HopeRf [1] that has 868M transceiver chips based on a variety of SL ICs. There is not much information about this and HopeRF seems to hide that their chips are based on the SI ICs. Nonetheless, they are very cheap, approx. 5€ [2]. There is a huge variety of them, the RFM69HW seems to be very interesting having a high power power amplifier. There is also a library for Arduino [4] that should be easy to port to any other platform including Homegear. What do you think?

Thanks
Andre

[1] hoperf.com/
[2] rf-store.com/index.php?view=2&pv … 868MHz_FSK
[3] hoperf.com/upload/rf/RFM69HW-V1.3.pdf
[4] lowpowerlab.com/blog/2013/06/20/rfm69-library/

Hey Andre,

sorry for the late reply - I had my written exams the last three days. If the transceiver is really based on the Silicon Labs IC, it should definitely work and it should be very easy to implement it as we don’t have to figure out anything. We can just sniff the SPI communication on the CCU2 :wink:. I just ordered the module (RFM69HW) and will check it out.

Cheers,

Sathya

Hi,

Did you have any luck with the RFM69HW module? I have the same module and would like to use it with Homegear.

Regards,

Mat.

The module is not implemented yet.

Cheers,

Sathya

Hi…I received a question from a customer and I was wondering if any could tell me the minimum, maximum, and Typical values for current consumption running at a supply voltage of 3.0 Volts for the CC1101 Transceiver.

pcb assembly

Well, have a look at the datasheet, Page 9 and following: https://www.ti.com/lit/ds/symlink/cc1101.pdf