I am using the simple combo of the TLP and RLP 434 to make to PICs communicate. I have the 16F628A transmit data (manchester encoded) at 1200 baud to the receiver. Using a scanner (I don’t have anything else to test this stuff really) I found that the transmitter was working (or at least transmitting). I have the receiving end constantly receiving the data from the Data Output Pin on the RLP using the RXREG on the receiving 16F628A. Unfortunately, the PICs can only communicate if I directly connect the TX from the transmitting PIC to the RX of the receiving PIC. I can’t seem to get the radio link to work. Any help would be greatly appreciated.
Try inverting the baud rate on one end only, either on the receiver code or the transmitter code and see if this works. By this I mean if your receiver code uses non inverted 2400 baud then change your transmitter code to inverted 2400 baud.
I had similar problems with the cheaper 434 Mhz modules. They also worked direct connect with the same baud setup but when I went over an RF path I had to invert the transmit baud rate opposite from that of the receive baud rate and everything started working great.
Something wierd happened last night. I was sitting down trying to get it to work when I just gave up and put everything back to how it was. Then I just applied power and hit the button and it received! It is really bad, I probably have to make more of a preamble, but nevertheless it received and the LED received indicator flashed every now and then. I have to hold the transmit button down for about three seconds then every once and awhile it gets a valid data byte. Interesting, there were no loose wires and the connections were always fine. I guess I just had to let it transmit for awhile…
Here are examples from my serin, serout routines which I am using and found to work very well.
Serin Ser_in, tx_Baud,[Wait (“H”), stat_us]
Serout Ser_out, tx_Baud,[15,“H”, stat_us]
Serout sends a preamble, in this case simply the letter H and then the variable stat_us is sent and the receiver program acts on this of course to determine what it should do .
Serin waits for this preamble in a endless wait, in my application the receiver is always listening for the tx signal.
Also I found that I absolutely had to put my serout routine in a for next loop and send it at least 5 times due to so much RF interference in the 434 MHz band.
Also with a receiver that uses low side local oscillator injection you will need to invert the baud rate at one end as opposed to the other end as was mentioned in my first post.
Another thing that I found was that the receivers overload easily, especially if placed within a foot or two of the transmitter. Try spacing your setup about 10 feet apart to start with and see what results you get.
When I was working with mine I found it was a lot of trial and error finding the best code to enable the receiver. I actually set up switches on my transmit PIC and depending on which one was pressed, it would either send normal or inverted baud rates and this was how I found the best combination that worked. I also experimented with slower rates from 1200 to 2400 to get the best range for my applications.
Wow. I moved the transmitter breadboard across the room like you said Mike and I got about a 95% valid transmittion rate. I am using C to program so I’ll have to translate your BASIC snippets.
I wasn’t sure how to send the data at first so I tried (and still am using) this method:
Send three preamble bytes (10101010)
Send the data (10011010, 10100110, etc.)
The receiver just looks for the data (not the preamble) and it seems to work fine - it never receives any data unless the transmitter is sending valid data. I haven’t had any problems with noise so I think I will keep with this method unless someone could post some C code for a better transmittion method.