Maker Pro
Maker Pro

Beyond Help?

sirch

Dec 6, 2012
109
Joined
Dec 6, 2012
Messages
109
I recently bought these RF modules.

The RX module outputs rail to rail square wave "noise" at around 6kHz. When the TX sends the noise stops and an obvious TX pulse appears, it then drops back to being noisy.

I want to use this to send a pulse that triggers an interrupt on an Arduino. Obviously with the noise it is impossible to use it directly, so I created a simple RC low pass filter (4kHz cut off) which works. But there is a big BUT here, my application is time sensitive (I am sending a sonar pulse to measure distance, see this thread for more details) and the low pass filter introduces a delay.

Can anyone think of any other way of distinguishing the signal from the noise, or should I just bin this device and get something better?
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,752
Joined
Nov 17, 2011
Messages
13,752
What is the quality of your power supply? Are all voltages properly bypassed by capacitors (electrolytics for low frequency plus some ceramics for high frequency)?
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,510
Joined
Jan 21, 2010
Messages
25,510
Yes, this is typical for most simple TX/RX pairs.

What you should find is that you get a nice clean logic level from the receiver while the transmitter is transmitting. Furthermore, that nice clean signal (let's call it a 1) will become a nice clean 0 for s short time after the transmitter stops transmitting. After a brief interval the AGC will open up and you'll see noise again.

The trick is to send a pulse train that can be interpreted by the arduino as being distinct from noise.

So maybe what you need to send is a series of 10 pulses that the arduino can detect. The time delay should be similar. Even better, send the distance encoded in the signal.

I have found NRF24L01 modules to be very effective and easy to use. Make sure you get 8 pin versions, not 10 pin versions!

With appropriate software (easily available) you can send error-corrected data between 2 systems with very little effort. Note that because the devices do error correction, you cannot guarantee the latency will be fixed, however they do offer an IRQ output and you might be able to use that to trigger a second arduino when a message is received (as opposed to polling the module)
 

sirch

Dec 6, 2012
109
Joined
Dec 6, 2012
Messages
109
Thanks for the info, very helpful. Steve you are correct that I get a nice clean signal when transmitting but I had not considered an AGC. I had briefly thought about some kind of encoding but concluded that it would still be hard to separate from the noise.

I don't need to transmit data, just a single trigger - the situation is
  • module A sends a radio signal and starts listening for an ultrasonic pulse;
  • module B receives the radio signal and emits an ultrasonic pulse;
  • module A measures the time between sending the radio signal and receiving the ultrasound

I guess a pulse train that is faster than the 6kHz noise signal for a number of pulses and then B sends the ultrasound would do it.
 
Top