Some clients, let's say 5 <= x <= 10, have to send information wirelessly to a server. Transmission does not need to be reliable (ACK).

The range would be between 50 and 100m, and may include soft obstacles like trees, cars, etc, but not major ones like whole buildings or concrete walls.

Also, as I plan to build about 20 clients, the price should be as low as possible.


  • 3
    Packet size? Transmission interval/rate? Try looking at the NRF24L01+. These are pretty damn cheap, and will probably do what you want and more. – Gerben Aug 18 '14 at 19:38
  • @Gerben Can I have multiple messages on the air at once with those? – Roberto Santalla Aug 19 '14 at 20:03
  • No. Not sure if anything exists that does that, unless it's using multiple frequencies. But they have an auto-resend function. Also transmission rate is pretty fast so the chances of collisions are low. – Gerben Aug 20 '14 at 15:53

Depends on how much data you're sending, what packet structure you want to use, whether you want to spin your own PCBs or use a plug-in module, whether you need a low-power solution, etc..

For that distance, probably a sub-1GHz solution would work best.

I've had good results with the TI range of Value Line transceivers as they offload all the packet-handling, sync-words, CRC etc. from the microcontroller. The modules also handle addressing, and have a "listen before talking" functionality - both of which could be useful with your physical architecture.

Down sides:

  • You'd probably need to spin your own PCB - they have good reference designs.
  • No library for Arduino... but I'd personally rather use a transceiver that manages all the low-level comms between the modules so I can focus on the application.

RF433 modules are about as cheap as you get. You can get a tx/rx pair(separate modules) for 1-2 USD on ebay. Just search for "433mhz module". 100m or longer range should be possible with a proper antenna - a wire of the correct length. Use wavelength / 4, for 433MHz that is ~173mm.

The modules just communicate over a serial interface and they send the data straight to the air. But for better transmission the 1's and 0's need to be balanced and a "training preamble" before a data transmit balances the receiver for better noise immunity. Use a library such as virtualwire to take care of data decoding/encoding.

The common cheap transmitters on ebay allow you to supply a higher voltage to the module for increased transmission power.

Alternatively if you want transmitter and receiver in the same module you could go for nrf24l01 based modules. I haven't yet used them myself but they are dirt cheap as well. They operate at 2.4Ghz using a proprietary protocol with retransmit etc built-in. The modules have way more pins than the cheap RF433 modules, but you can also find arduino libraries to interface with them. The cheap kind use an antenna etched straight on to the print board. According to this article the open air range is 50-80m depending in the data payload in a transmission.

  • You can build a mesh with e.g. 433MHz- or NRF24L01+-modules to cover bigger areas when direct communication is not possibe: airspayce.com/mikem/arduino/RadioHead – gone Aug 19 '14 at 13:13
  • Just connect a NRF24L01 module with amplifier to the base-station. They are like $5,- but you only need 1. – Gerben Aug 19 '14 at 14:20
  • I already have some of these modules, and the range they reach is poor. After 50m I got no signal. – Roberto Santalla Aug 19 '14 at 20:00

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.