Hi All,
I am very new to the CC1101 with about 2 weeks worth of experience. I originally purchased it to complete a specific project and have come a long way in those 2 weeks.
My project is getting an Arduino (actually Teensy) to communicate with some TPMS external valve sensors. They are not going to be used as TPMS sensors as such but the sensors themselves suit my purpose perfectly. I got the sensors as a kit (with a receiver) and used an SDR dongle to decode the data. The next step was getting the Teensy to read the data from the sensors and that’s where the CC1101 comes in.
The sensors send 433.920Mhz FSK Manchester Encoded data that is essentially a 7 byte preamble (10 10 10 10 etc), a sync word and 9 bytes of data. This is after it has been Manchester decoded. Unfortunately, I have had to read it unencoded and decode the Manchester decoding in software as the sensor does not send the preamble Manchester encoded and the CC1101 can’t handle that.
The above has been successful and I can read the packets on the Teensy.
Then I ran in to a problem. This all worked fine on the first sensor but then the other 3 sensors I could not read at all on the CC1101. I sat for hours playing with the settings in SmartRF but could not get anything from the other 3 sensors even though I could see them on continuous RX (the blips) and also see them on a spectrum analyser and read them from SDR and they were all sending the same data format and the receiver that comes with them could pick them all up.
After some more playing, I eventually found out the reason why. The first sensor was sending at a data rate of 19.2k but from the other 3, 2 of them were transmitting at a data rate of 18.1k and the fourth was transmitting at 18.4k data rate. These are cheap sensors so I guess the tolerances of the RF transmitter or crystals are not that accurate. But the receiver that came with it can pick all 4 up even though the data rates are slightly different.
Is there anyway I can get the CC1101 to just demodulate the signal and send me the raw 1s and 0s and I will have to piece it together myself in software. I guess I mean ignore the data rates and packet handling and just give me binary data. If so, how would I connect this to something like an Arduino or Teensy and set it up on the CC1101? Or indeed, is there a way this can be done through the CC1101?
Many thanks in advance for any help or advice you can give me.