RF module query

I am thinking about starting a project in which one RF receiver needs to receive signals from multiple transmitters. I am thinking of using these as my receiver and transmitter.

I have worked with the arduino on a few projects but i have not worked with RF modules. So before I start on the project and buy all the stuff I would like to clear one doubt. Since the receiver and transmitter work at common frequencies and donot have IDs so I am thinking of setting up a receiver and having it receive signals from with multiple transmitters that are within range. Each transmitter will send data that would include a signature so that it can be made out(by the receiver) from which transmitter the signal is being sent.

Is this doable? Or will it be difficult to accomplish as all the transmitters will be transmitting at the same frequency and there might be interference. If there are say 10 transmitters and i synchronize them in such a way so that they send out their signals at different times then i guess it will work perfectly. But what happens if two of then send out signals very closely or at the same time?

The real project would have 1000s of transmitters, transmitting continuously, and a receiver which would be 'looking out' for these signals and when one or more transmitter is within range, it will be able to get their signature and be able to tell who that transmitter is.

I think anyone who has worked with RF modules would be able to help me here. Forgive me if my requirement is unclear. It is actually part of a long project and i have tried to write about the relevant part here. Any help will be much appreciated.

Iv never used those RF breakouts before but it seams to be possible being as there is no pairing built in. They will probably have problems all talking at once and since there is no 2 way communication it will likely be a pain trying to time the signals. you may look into some 2way modules so the master can time the signals. Even at that if you dont know the ones its looking for at any given time it may still be tricky. As for the final project where there may be 1000s im not sure that is reasonable (probably doable somehow tho).

Those simple receivers have no ability to receive multiple transmissions at the same time .
Depending on the relative variations of the incoming signal strengths, the receiver may receive one transmission
but not the other, or more likely, it will receive nothing at all.
If you want to use multiple transmitters with one receiver, the transmitters must be synchronised, so that only 1 is transmitting
at any one time.

In addition to the above, those simple transmitters and receivers do not have any message processing ability -- the microcontroller has to do all the encoding and decoding. VirtualWire is popular with the Arduino and works well.

Furthermore since there is only one channel, if you have multiple transmitters and one receiver, you have to adopt a strategy that minimizes overlap in transmissions, like very short, infrequent data bursts, possibly with random burst timing. Some data will get lost, but that is how remote sensors for home weather stations usually work.

For a little bit more you can buy inexpensive transceiver modules that contain a microprocessor for message encoding, decoding and error checking. Many of those also offer hundreds of independent channels within one band. The Pololu Wixel (256 channels in the 2.4 GHz band), and the HopeRF RFM12B or RFM69 (315, 433, 868 and 915 MHz) are some possibilities.

The range is 20 meters to 100 meters for those I think. It depends on the antenna.
When you have 1000s transmitters, and all are transmitting now and then, these cheap ones are a good choice.
For a higher bitrate and a two-way communication there are better modules, but if the range is okay, these cheap ones will do.

Using VirtualWire is a must for those cheap transmitters. VirtualWire has a checksum, so you are (almost) sure that a message is good when you receive one.
http://www.airspayce.com/mikem/arduino/VirtualWire/

You can create a structure with data elements. One for the ID of the transmitter, and more for data or so.

jremington:
In addition to the above, those simple transmitters and receivers do not have any message processing ability -- the microcontroller has to do all the encoding and decoding. Virtual Wire is popular with the Arduino and works well.

Furthermore since there is only one channel, if you have multiple transmitters and one receiver, you have to adopt a strategy that minimizes overlap in transmissions, like very short, infrequent data bursts, possibly with random burst timing. Some data will get lost, but that is how remote sensors for home weather stations usually work.

For a little bit more you can buy inexpensive transceiver modules that contain a microprocessor for message encoding, decoding and error checking. Many of those also offer hundreds of independent channels within one band. The Pololu Wixel (256 channels in the 2.4 GHz band), and the HopeRF RFM12B or RFM69 (315, 433, 868 and 915 MHz) are some possibilities.

I would be using an arduino for the processing part so that us not an issue. Thank you very much for your advice. Let me look up these devices.

mauried:
Those simple receivers have no ability to receive multiple transmissions at the same time .
Depending on the relative variations of the incoming signal strengths, the receiver may receive one transmission
but not the other, or more likely, it will receive nothing at all.
If you want to use multiple transmitters with one receiver, the transmitters must be synchronised, so that only 1 is transmitting
at any one time.

That is indeed my major concern. If there were only 10 then synchronization would have been possible. But as i said there would be 1000s such transmitters out there in the real project. Maybe only around 5-6 would be within range of the receiver but I would not know which 5 so I would have to get down to synchronizing all the transmitters which sound quite impossible. Are there modules that can receive multiple signals at once?

In short the answer is no.
Some radio transmission technologies , such as CDMA which is used by the mobile phone system can do what you want
but its beyond the scope of the hardware that you want to use.
What is the application that requires so many transmitters and 1 receiver?

In essence I am trying to develop a communicating system between a number of(say 1000) people of a society or club who are scattered in a large area but will require to be notified when one or more of their fellow members come within the range of the RF module (20 to 100m). The bare minimum necessity is to be notified when there is at least 1 person within range. But if it can be advanced, then I would also like to incorporate features like HOW MANY are there within range and WHO are they and WHAT duty they are assigned to at present.
This would of course require clear data transmission between each transmitter and receiver.

My idea had been to incorporate each user with a transmitter and receiver. The transmitter would send data containing the signature(designated to that user) and some other data at fixed intervals and the receivers would be continuously scanning for signals from other transmitters.

So in a way each receiver has to scan for data from several transmitters. At any point of time it is not expected that more than 10 transmitters would be within range but it cant be known which 10 would be in range so the transmitters cant be timed to send data at different points and prevent interference.

This is a huge roadblock i am facing. If anyone can think of a solution to this or a different way in which this can be done then i would be very grateful.

Suppose you use 2400 baudrate for those cheap transmitters (4800 is the limit and reduces the range).
With VirtualWire (I think 27 byte) and let's say 6 bytes for yourself.
That will take ( 27 + 6 ) * 8 / 4800 = 55ms. That is a long time.
For example a transmission every 2 seconds.
You will get 50% filling of RF in the air with 18 transmitters (not really, the collisions reduces the filling).

So with 18 transmitters together, they will fill 50% of RF in the air, causing extremely many collisions, but after a few minutes a receiver should be able to distinguish them all.

I thought you had just one receiver, but now you tell us that every person should detect the surroundings.
So the cheap ones are no longer a good choice, you need one of the better "tranceiver" modules. So it is out with the cheap ones, and choose a transceiver module. Those have a higher bitrate (sometimes a lot higher), so you will have less collisions.

This is a huge roadblock i am facing.

Very true, however I think it can be done, even with the cheap TX and RX modules. You will need quite a bit of experience to implement this fully, so I suggest to start right now with a cheap TX/RX pair and a pair of Arduinos to learn how the process might work, before deciding how best to proceed.

Google nrf2401 or nrf24L01 that may fit better and if you buy in bulkbu can get them really cheap too.

Peter_n:
I thought you had just one receiver, but now you tell us that every person should detect the surroundings.
So the cheap ones are no longer a good choice, you need one of the better "tranceiver" modules. So it is out with the cheap ones, and choose a transceiver module. Those have a higher bitrate (sometimes a lot higher), so you will have less collisions.

Yeah i think i should have put down the main idea in the first post itself. I figured if i can solve it for one receiver, I could use the same logic for all of them. That is why i just mentioned one receiver. Anyway thanks for the analysis.

drksam:
Google nrf2401 or nrf24L01 that may fit better and if you buy in bulkbu can get them really cheap too.

Thanks a lot. Yes they are very cheap. But I think their range is too small. Have you worked with these? I need a range of around 50 meters on an average. I can actually spend a few more bucks but i would need a better range. Any ideas?

jremington:
Very true, however I think it can be done, even with the cheap TX and RX modules. You will need quite a bit of experience to implement this fully, so I suggest to start right now with a cheap TX/RX pair and a pair of Arduinos to learn how the process might work, before deciding how best to proceed.

Yes i understand this is a big and advanced project and some experience with these RF modules would be great. I think I still have a couple of weeks before i can begin my project. I am trying to spend this time gathering as much info as possible and trying to determine the best way.

I am sure this can be done with these cheap RFs if i am dealing with a few transmitters. Anyway unless I find something way better I think i would follow your advice and use these cheap RFs as a starting point.

I have only used the small ones and I believe I read somewhere that the range is 40ft but I haven't had a long range use for them. I do know that there are long range boards that have an external antenna. An i think they may do it but I'm not 100% sure what the range is.

I routinely get about 300 meters of range with the little 433 MHz TX/RX modules, in unobstructed open space. I use a 17 cm vertical antenna wire on each unit.

This one has 1.8km!!!
http://m.ebay.com/itm?itemId=141016840740

This one has 100m
http://m.ebay.com/itm/140575879710?cmd=VIDESC&gxo=true

When you read 1.8km on Ebay, it might be 800 meters. And that power is also not legal.

Did you click it? I haven't acually read all of it but it says 1.8km in the title and again in the description.

The shop is "elechouse" and is on Ebay since 2010 and has a score of 99.4%.
That is all good, so perhaps the range is far, but I doubt if in normal conditions 1.5km can be achieved.

Normally when you read on Ebay about power supplies and ranges, divide it at least by two.