I have been doing this for a few months. My requirement was for a UHF link over a few metres capable of tramsmitting channels from a 12bit ADC (temperature actually) along with a 3 bit channel-id. I originally had a lot of trouble with noise pickup, but that's fixed now. What I did was to use a pulse-width modulation method at 1200 bit/ second with a 5 mSec carrier before the data to settle the data slicer on the receiver. The data format is 1 bit-width of carrier (logic 1), followed by either a data 0 (no carrier) or data 1, finally followed by a data 0. This gives a data rate of 1200 / 3 = 400. I use a 32 bit packet, made up of an 8 bit address, 16 bits of data (as 4 bits of channel number followed by 12 bits of data) and an 8 bit checksum. So far the noise immunity has been good. The transmitters and receivers use 16c84's though I have also implemented the transmitter with a 12c509, using 5 of its pins as logic inputs (no ADC). For the 12c509 solution, I need only a uP, and the UHF key-fob transmitter. The uP sleeps most of the time and draws an average current of < 5uA from 2 AAA cells. hope this helps Pete .............................................................................. . Never trust a man who, when left alone in ....... Pete Lynch . . a room with a tea cosy, doesn't try it on ....... Marlow, England . ..........Billy Connolly. ......................... pic@beowulf.demon.co.uk .. On Fri, 6 Mar 1998, Randie Ohtsji [4555] wrote: > Hi Niel, > > Please let me know of your findings as I will be implementing this > as well, in the near future. I was thinking of sending packets > of between 10 to 50 bytes. Each packet would have a start bit, > data, crc, and stop bit. > > I was thinking of doing a start byte and stop byte instead of only > a bit width to avoid misinterpreting noise as a start. Like you, > I was thinking of syncing up with the start bit/byte and then > sampling in the middle of the next bit. Don't know what to do > about noise - perhaps sampling more than once for each bit and > then determining the level of the bit by choosing the majority level > (e.g. you sample 4x for each bit, and if you sample 3 highs and 1 low, > then chances are the bit is high and the low sample was due to noise). > I guess this would be determined by the speed of your transmission > and the speed of your processor. > > I was thinking of using the Linx modules (another thread that just > started). > > Good luck! > > -Randie > rohtsji@glenayre.com > > > > > From Fri Mar 6 10:06:47 1998 > > Encoding: 19 TEXT > > Date: Fri, 6 Mar 1998 14:52:00 PST > > From: "STRONG, Neil -Syntegra" > > > > Subject: Decoding 12 bit radio data using PIC > > To: PICLIST@MITVMA.MIT.EDU > > > > I've written PIC code to decode a serial 12 bit word received via a radio > > module. > > > > My problem is noise - I'm decoding the signal by looking for a start bit > > of 2ms high, then sampling in the middle of the data bit, then > > re-synchronising on the start of the next data bit by waiting for the > > signal to go high