1
\$\begingroup\$

I am working on a project which requires multiple RF working together (around 100). This will be one way communication from TX -> RX.

I will be setting up multiple cheap 433/315 Mhz in one particular area. How can I make sure that particular pair of RF doesn't clash/interfere with other pair. For every transmitter, there will receiver. No central receiver there.

I will add 8 bit Microcontroller on Transmitter side which will be connected to RF Transmitter and send data when required.

On receiver side I will add another micro controller to decode the packet and perform task accordingly.

I have read that upto 500 different channels can be selected which will avoid the interference, but couldn't find much info on that.

How can I solve the problem? Cost is a big factor or else I would have used HopeRF module in which network ID can be set and works with particular network.

\$\endgroup\$
  • 1
    \$\begingroup\$ I would recommend a superhet receiver , not the super-regenerative one you have shown - they are only slightly more expensive. How many receivers are there? Just a central one \$\endgroup\$ – Kevin White Aug 23 '17 at 20:26
  • \$\begingroup\$ For every transmitter, there will be a receiver. If there are 10 Transmitters, then there will be 10 receivers. \$\endgroup\$ – Embedded Geek Aug 23 '17 at 20:31
  • \$\begingroup\$ @KevinWhite You are talking about this one [link] (aliexpress.com/store/product/…) \$\endgroup\$ – Embedded Geek Aug 23 '17 at 20:33
  • 1
    \$\begingroup\$ There aren't 500 channels in that band, at least not RF channels. And if there were, the receivers for these bands are usually too simple to separate those channels. You can however have 500 or even more different devices and address them individually. This is done by transmitting long codes of for example 20 bits where 10 of the bits are an address. With 10 bits you can address 2^10 = 1024 devices just not at the same time. \$\endgroup\$ – Bimpelrekkie Aug 23 '17 at 20:40
  • 1
    \$\begingroup\$ @KevinWhite has pointed out that those look like super-regenerative receivers. They are notorious for creating interference on their receive channel and on adjacent receive channels, which will reduce sensitivity of any nearby receivers. You may find that of many available channels, you cannot use adjacent channels. Your 100-set receivers would be like listening to a frog chorus, and that's with no transmitters active. \$\endgroup\$ – glen_geek Aug 23 '17 at 21:31
4
\$\begingroup\$

How can I make sure that particular pair of RF doesn't clash/interfere with other pair.

Send as little data as possible in as short a time as possible and live with inevitable transmission clashes by making timing gaps between transmissions pseudo random. Else put a receiver with the transmitter and use a single-master to multiple-slave topology.

I have read that upto 500 different channels can be selected which will avoid the interference, but couldn't find much info on that.

Those modules you have selected are not capable of being reliably used with different carrier frequencies.

Will it work? It all boils down to how little data needs to be sent and how often you can live with corruption due to statistical clashes.

\$\endgroup\$
  • \$\begingroup\$ Single Master and multiple slave topology is not possible. In comments section @Bimpelrekkie mentioned, is it possible to address like that transmit data? \$\endgroup\$ – Embedded Geek Aug 23 '17 at 20:51
  • \$\begingroup\$ It virtually goes without saying that each transmission MUST have a unique address. I guess you are a novice in this. If there is no means of synchronising the transmitters that overlap their field of transmission you have to rely on statistical probability that some transmissions will not get through i.e. they will be corrupted by another transmission. This then boils down to minimising data sent but an address is necessary and so is a checksum. \$\endgroup\$ – Andy aka Aug 23 '17 at 21:47
  • \$\begingroup\$ @Andyaka not willing to do the product support for ebay/aliexpress, but: Many of these are totally non FCC/Ofcom/BNetzA compatible OOK senders that are nothing more than a BJT + Oscillator, controlled by the TXD pin. Stupid as that. So, you might actually build CDMA from that shit, in software on the transmitter side. On the receiver side, a binary receiver won't do, but software + RTL dongle could. OP would of course need to implement the coding on the transmitter side and the CDMA receiver on the receiver side... Which will be hard for him. \$\endgroup\$ – Marcus Müller Aug 23 '17 at 22:15
0
\$\begingroup\$

As this is quite an old thread, you may not be interested in an answer anymore, either you have resolved or abandoned the the problem. Anyway, I have a very similar problem, that's why I found this thread. IMO the only solution to the interference problem is make sure that no single transmitter transmits at the same time as any other. As the 433MHz RF sensors all transmit an ASK modulated carrier on the same frequency, contemporaneous sending any data makes them unreadable. There are basically 2 ways to avoid jamming:

  • have all tx synchronised to a central clock and each tx having a precise time slot when they can transmit.
  • a variation of this could consist in each tx unit having also an rx module and it will only transmit after the rx has been addressed with its individual address code. The central "clock" may be one central tx that sends sequential address codes to each of the tx-rx combinations in a certain rhythm. Once a tx-rx module receives its address code, it sends its data which will be received by all receivers but used only by the one that is paired with this particular tx. The central clock tx may also be paired with its own receiver which will also receive the acknowledgement transmission and thus knows that the receiving module has been addressed successfully. If this module does not reply at all, this shows that it may be missing or not have received the request correctly. The "clock" tx may then try again for a number of times and eventually mark this model as missing. The advantage of this system is that no module will ever jam any other. The disadvantage is that the complete cycle may be quite long, depending on the duration of each request-acknowledge-data transmission interval and the number of modules. If most of the modules have no data to send, this is quite a waste of time. This could be avoided with another variation of this idea:
  • again, add an rx to each tx module. If this module wants to send data, it will first check if any other module is sending. If not, send a request addressing the central "clock" module. There is still the possibility that two or more modules make the same request at the same time, but these requests will not be readable due to the interference. If the central module receives an identifiable (not jammed) request from any module,it will send an "allowed" code to the requesting module (including the address and a certain data code). All modules will receive this string but only the one addressed will know that it may start to transmit now. All others have to wait a determined amount of time to make sure no one jams this transmission. Only when all modules see that this transmission has ended they may try and send their own allowance request.

This is just a possible solution but not necessarily a practical one as you need to ad a small processor like attiny85 and a rx to each tx module.

\$\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.