Uzzors2k Banner

8 Channel RF Remote Control

Car ready for a hit and run

After much work I finally got the noisy RF link to work reliably. I had originally thought to make my own RF modules from scratch, but I later scrapped the idea when I found out how cheap real RF modules can be had on ebay. So I bought a TM1000-1 transmitter and RM1SG receiver for a few dollars. The modules weren't as easy to use as I had thought, and unlike a IR modules they send out lots of noise without a steady input signal. Also the RF module I used had long start-up and power down period after receiving a high pulse. To counter all of this I kept the receiver in constant standby mode, but sending a information all the time. That way the noise is flooded out, and the receiver will always respond. I had been trying all sorts of error detection methods and different ways of encoding the bytes, when I just gave up. Since the link is so noisy I decided to cut out all of the error detection methods and just make it accept anything it receives, and see what happened from there. But what do you know, it worked!

Here are the source files, firmware and schematic.

How it works:

Unlike the IR transmitter I made, the RF transmitter is designed to constantly send the status of it's inputs. 1) because the link is noisy, and there is a good chance the byte will be corrupted. 2) the receiver passes out if no input is received within a few milliseconds of a previous input, and doesn't accept new input until a few hundred milliseconds afterwards. So the receiver is made to recognize a startbit so it knows where the transmission began, it then measures the pulse length, and determines whether it's a 1 or 0. Just like the IR controller. Unlike the IR controller, if a false bit length is sensed the RF receiver ignores it and leaves the value of the array as it was. Meaning if the RC car is moving forward, and the bit which corresponds to forward it corrupt the car will keep moving forward. The benefit of this is that with bytes being sent constantly corrupt bits will be replaced by correct ones quickly. So even if an entire transmission fails, a new transmission comes right afterwards. Sort of a brute-force method, but it gets the job done quickly and simply.

Graphic explanation

I think I commented the code even better than the IR controller, so just check the source for a more in depth explanation. (It's in basic, written with Mikrobasic) The firmware is designed for two PIC16F88's, but with very few software changes any PIC can be used.

To test the setup I modded the RC car I used with the IR remote control system. The range seems to be good, although I haven't tested it at more than 15 meters yet. The transmitter boasts 1km of range under ideal conditions, so I can count on this working anywhere in the house at least. Plus I don't have to run after the car and point at the IR module anymore.

Youtube Flickr Twitter LinkedIn To top

Disclaimer: I do not take responsibility for any injury, death, hurt ego, or other forms of personal damage which may result from recreating these experiments. Projects are merely presented as a source of inspiration, and should only be conducted by responsible individuals, or under the supervision of responsible individuals. It is your own life, so proceed at your own risk! All projects are for noncommercial use only.

Creative Commons License This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.