This is an old revision of the document!
Universal RF Rx
The idea behind the URF-Rx service is to enable you to use ANY RF remote as a controller for ANY xAP service.
The receiver
The hardware to slurp and detect what looks like a valid RF signal from all the background noise. With this hardware we don't pre-code what RF signals we are going to look for, which is what most purpose built RF receivers do.
The beautiful part of this design is the separation of the signal gatherer from the decoder. We simply look for a signal that has a lead-in >10ms and repeats more than once. If this condition is met we emit the pulse stream for a repeating block out to the serial port for the decoder to deal with.
Here is a pulse train that meet this condition.
The first block would be stored and when the 2nd block is encountered its compared to the 1st, as they match it would then be emitted as sequence of pulse durations, -ve for LO and +ve for high, down the serial port to a decoder.
Sample output.
-11248,384,-1072,1120,-352,384,-1072,384,-1072,384,-1072,384,-1072,384,-1072,384, -1072,384,-1072,384,-1072,400,-1056,1120,-352,384,-1072,384,-1072,384,-1072,384, -1088,368,-1088,368,-1088,368,-1088,1120,-352,384,-1088,1120,-352,384,-1072,384, -1072,384,-10016
This pulse sequence be visualized using a helper:
and if all has gone well it should look like the picture we captured using our Logic Analyzer directly attached to the RF receiver pin.
We then take this pulse sequence and use some magic to convert it into a URF string using this web page
If you are going to use this to transmit you'll need to adjust the burstcount which using the HTML form above will always default to 1. The signal analyzer won't detect how many times this pattern repeats.
This gives us the following packed URF hex string:
0101017E0434046001600A01271018401014
This is used by the Decoder explained in the next section. It may also be used by the RF Tx unit to generate the same pulse sequence for control too.
The decoder
The signal processor to match a signal against a list of pre-configured patterns.