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 . 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 .
Cheers,
Sathya