1
\$\begingroup\$

I built a simple one-way RF communication system, using a couple of cheap 433 MHz transimtter/receiver modules. Some experienced people told me to change them because they're worth nothing, and so will I do. But I'll not be able to purchase new modules in the next couple of months, so I would like to improve the existing system to be able to continue working on my project.

I need the rf signal to be as strong as possible, because the receiver is in a noisy environment (surrounded by small and fast-spinning brushed motors without terminal-case capacitor). At this very moment the transimtter module is connected to a straight single-core insulated copper wire quarter-wave lenght antenna and is powered by a 9V battery; the receiver has a symilar antenna and is powered at 3.7V (I can't change this voltage).

I transmit 48-72 bits data packets. The transmitter generates a 433 MHz signal during x microseconds if the bit is 1 and nothing (for the same time) if it is 0, where x can be any value (I set it to 1000, but it can be higher (or lower)). I'll always transmit within less than 4-6 meters, and I don't need the transmission to be 100% reliable (even if, say, a packet every two gets lost it would not be a problem... but the other 50% must reach the receiver!)

Any suggestions?

here are my modules

\$\endgroup\$
  • \$\begingroup\$ What is the legal power limits for this frequency in your country? \$\endgroup\$ – Andy aka Dec 4 '16 at 12:32
  • \$\begingroup\$ I think 10mW (does this make sense?); I live in Switzerland. \$\endgroup\$ – noearchimede Dec 4 '16 at 13:32
  • 3
    \$\begingroup\$ How are you deciding that these low cost modules need to be higher RF power? Is it because you do not get reliable communications within 10 meters? Is it because you want to have it work for >100 meters? Please parameterize your concerns by editing this type of detail into your question. \$\endgroup\$ – Michael Karas Dec 4 '16 at 13:35
  • 1
    \$\begingroup\$ It would also be very advisable to provide some information on just how you are modulating the transmitter signal. There is a lot that can be done to make RF links with these modules work better if it is done correctly. But unless you share what you are trying I cannot give any guidance as to if improvement is possible. \$\endgroup\$ – Michael Karas Dec 4 '16 at 13:56
  • \$\begingroup\$ @MichaelKaras , I added some information as you suggested \$\endgroup\$ – noearchimede Dec 4 '16 at 15:05
3
\$\begingroup\$

For a distance of 4 to 6 meters there should be no need to change the characteristics of the pictured type of RF transmitter and receiver. Please reference my detailed answer on this question to get some good information.

Using 433 MHz Tx/Rx without encoders/decoders

Key points that you need to keep in mind:

  1. Keep your transmitted bit rate in the 500 bits per second range.
  2. It is really important to use a balanced energy protocol so there is no net DC offset imposed into the receiver during a transmission. Biphase or Manchester encoding is a really good way to go because a simple protocol allows for net 50% duty cycle of the modulation waveform.
  3. It is very important to use a long preamble in your protocol to allow the receiver to lock onto the signal and set its AGC (automatic gain control) before you try to decode valid data in the packet.
  4. It is important to design the receiver decoding protocol to be tolerant of a wide range of the receiver output pulses. Multi path, noise and other factors cause transmitted modulation pulse width distortion and wide tolerance allows successful decoding of the packets a higher percentage of the time.

The scheme I used sent 64 bit data packets reliably if up to 100 meters. In an office environment with lots of florescent lights it was 100% reliable at 30 to 50 meters. You can use 12V on the transmitter and that is what I used to get the 100 meter type of range.

That previous post gives a lot of info on my protocol implementation. If you want to try your hand at adapting my implementation to your application you can access the diagrams and C code for the transmitter and receiver microcontroller encoders and decoders here:

http://www.carousel-design.com/ManchesterDesignDocs.zip

\$\endgroup\$
  • \$\begingroup\$ Great answer, OP is using the best type of cheap ASK Tx/Rx with about 20-30 mW transmit power. If he has built it and it works don't change it just because of advice they are worthless modules. If he is using a drone, the likelihood is he already has a 2.4GHz controller and if he wanted to get about the same range as his remote control then it would be worth moving to that band for a solution. There are plenty of pre configured RC data logging units such as this: rclogger.com/Add-On-Modules/RC-Logger-LC/RC-Logger-LC.html ....this is self powered at both ends. \$\endgroup\$ – Jack Creasey Dec 4 '16 at 19:24
  • \$\begingroup\$ @Jack I don't have any 2.4 ghz modules because I built that quadcopter starting from four motors, an IMU and an ATmega328 microcontroller. I think I'll change them to get a best range; but you're right, it works, so I don't really need to change them \$\endgroup\$ – noearchimede Dec 4 '16 at 20:35
  • \$\begingroup\$ @MichaelKaras Thak you for your useful answer. Only, I didn't understand the second point... what is a balanced energy protocol? \$\endgroup\$ – noearchimede Dec 4 '16 at 20:36
  • \$\begingroup\$ A balanced protocol is like what you get with Manchester Encoding. The duty cycle of the waveform on/off (high/low) times is 50%. The protocol that you described is an NRZ pattern where if you have a variation of number of 1's sent in a row or 0's sent in a row the net equivalent bandwidth and duty cycle varies over a wide range. Manchester formatting forces the frequency and bandwidth to a narrow range and there is no net average DC component in the transmit waveform. This lends itself to AC coupled receiver circuitry. Manchester protocol also permits a self clocking in the (continued) \$\endgroup\$ – Michael Karas Dec 4 '16 at 20:59
  • \$\begingroup\$ (continued from above) receive channel. And when decoding is done the way I described by tolerance checking the width of every pulse received you do not suffer from error accumulation. This leads to much increased reliability in receive decoding. Decoding NRZ (which is the way UART protocol works) is very susceptible to error accumulation and the sampling rate being progressively greater out of sync with receive packet stream. It is common for folks using these cheap 433MHz transmitter / receiver pairs to think of them as an RF link for a UART data path. Unfortunately this very unreliable. \$\endgroup\$ – Michael Karas Dec 4 '16 at 21:08
2
\$\begingroup\$

Don't mess with the transimitter. That very likely violates rules in whatever jurisdiction you are in. However, if the "receiver" module is truly only a reciever (some "receivers" are really transceivers to implement ACK/NACK and retry), then you are free to do whatever with it since it's not radiating.

You can put whatever antenna you like on the receiver. Something directional might help, but if the noise source is physically close to the transmitter then it won't.

If the noise can't be separated from the RF signal, then you have to deal with this at the protocol level. You can get more effective signal to noise ratio by using more signal to send the same information. There are also various modulation schemes that are good at getting past specific types of noise. Basically, they all come down to trading off bandwidth to get higher signal/noise.

If you're just plugging in modules, then none of this is available to you, and off topic here anyway.

Maybe IR is a better choice. It is quite doable at 6 meters, if the transmitter and receiver can be within line of sight.

\$\endgroup\$
  • \$\begingroup\$ Sorry, I didn't wrote that the noise is near to the receiver, not the transmitter (I just edited). The receiver is truly a receiver. As said, the noise is not nera to the transmitter, but I can't use a directional antenna because the transmitter isn't always in the same direction (the receiver is on a quadcopter, the transmitter is on the remote control). Lastly, do you think that the transmitter's power is near to the legal limits? I found on my country's official site that the limit is 10 mW, but I have no idea about what this means... \$\endgroup\$ – noearchimede Dec 4 '16 at 16:05
1
\$\begingroup\$

You need a better receiver.

Those receivers use a super-regenerative detector. The technique was invented by Armstrong about 100 years ago. They give extremely high gain from simple circuitry but do have their downsides.

They have been used for decades for things like garage door openers although not now because of other disadvantages such as interference generation, lack of selectivity and frequency stability.

That receiver will probably respond to interference over a few MHz either side of the transmitter frequency reducing the signal to noise ratio.

If you have to use wireless communication then you need a superset based receiver - that will reduce the amount of interference picked up.

Can you reduce the amount of interference? You mention that there are no suppression capacitors on the motors - why not put some there?

The you need to improve the rejection of interference by improving the communication protocol as others have suggested.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.