This is the RadioHead Packet Radio library for embedded microprocessors. It provides a complete object-oriented library for sending and receiving packetized messages via a variety of common data radios on a range of embedded microprocessors.
RH_RF69 Works with Hope-RF RF69B based radio modules, such as the RFM69 module, (as used on the excellent Moteino and Moteino-USB boards from LowPowerLab All about Moteino | LowPowerLab ) and compatible chips and modules such as RFM69W, RFM69HW, RFM69CW, RFM69HCW (Semtech SX1231, SX1231H). Supports GFSK, FSK.
RH_NRF24 Works with Nordic nRF24 based 2.4GHz radio modules, such as nRF24L01 and others. Also works with Hope-RF RFM73 and compatible devices (such as BK2423). nRF24L01 and RFM73 can interoperate with each other.
RH_NRF905 Works with Nordic nRF905 based 433/868/915 MHz radio modules.
RH_ASK Works with a range of inexpensive ASK (amplitude shift keying) RF transceivers such as RX-B1 (also known as ST-RX04-ASK) receiver; TX-C1 transmitter and DR3100 transceiver. Supports ASK (OOK).
RH_Serial Works with RS232, RS422, RS485, RS488 and other point-to-point and multidropped serial connections, or with TTL serial UARTs such as those on Arduino and many other processors, or with data radios with a serial port interface. RH_Serial provides packetization and error detection over any hardware or virtual serial connection.
RH_TCP For use with simulated sketches compiled and running on Linux. Works with tools/etherSimulator.pl to pass messages between simulated sketches, allowing testing of Manager classes on Linuix and without need for real radios or other transport hardware.
I am particularly interested in using this with the low-cost nRF24L01 radios. Lots of Info HERE:
Any experiences, comments, suggestions appreciated.
Hi,
I have run some successful tests at short range with the single-board nRF24L01 modules.
Can you point to the units you used? Did they have Power Amplifier / Low Noise Amplifier (for receiver), like these: 2.4GHz Transceiver w/ Power Amp ??
I would like to test that version. Some have reported 1000 Meter + range with other software.
I think I use the same units as shown in the link, from ebay, for < $6.
I don't think the software is really going to matter to be honest. You set up the module, send packets, the other end receives them. That's it.
1000+ meters with 2.4 GHz, could be all WiFi signals from the houses along the road I used for testing interfere some with my experiment, but couldn't say for sure. Might be the 1000 meters is just a boast.
For what it is worth, I'm about to give up with the NRF24L01 boards (green, Chinese, £2 or thereabouts). I've been through the steep learning curve, put caps on the boards, keep the leads short, I've had Radiohead send packages from one to another utterly reliably thousands of times... on the bench. I even take into account that these boards cannot transmit and receive at the same time.
In practice however, multiple units on location... no. I get extremely poor reliability even with a simple base unit feeding one intermediate relay to two others. The range of these units is ATROCIOUS in real life use, maybe sitting in a cupboard with your WIFI router or near a telephone... any of these utterly kill the signal - even the presence or absence of people makes a difference.
Here's what I have - ethernet remote control of a "master" board (a 1284 based unit hence plenty of memory). That master unit is generally in control except when new remote units "sign in". So generally the master is polling one after another, often constantly as the user might be looking at their remote phone and wanting to see the status of various inputs etc... with 2 or 3 "slave" units in close proximity, the library and hardware work well together for hour after hour - but put any distance - and I'm talking sometimes as little as 15ft - and the reliability drops through the floor. I've even instigated software to ensure that the "master" has several attempts before giving up (because Radiohead cannot guarantee end to end reliability - only node-to-node) - makes no difference. I'm seriously considering sticking a twisted pair around the building and going RS485.
There are of course other radio units on the market- 433Mhz - but nearly all of these require 3v3 signals whereas the NRF24L01 while needing 3v3 power will happily work with 5v signals from Arduino.. shame about the range and susceptibility to interference.
Do you know if the radiohead library will work with the servo library. Right now im beginning learning arduino with 433mhz rf but virtualwire and servo libraries dont mix because they both use the "timer1".
If someone can confirm me we can use radiohead and servo together i will maybe swtich to 2.4ghz.
Unless someone known an alternate way to use 433mhz rf, which is enough for my project, with servo.
I've been playing with these now for a while. I have almost all the various flavors of these boards working together. I am working to address the range issues by proliferation of nodes.
Like +Scargill mentions, I had to play with decoupling on all the radios. The SMA versions were the most finicky (but you need to strategically place them for range).
The issues I see are that nodes have trouble talking to each other when several pairs of server/clients are trying to talk with each other. This is, for example, server/client pair #1 conversing with each other. Server/client pair #2 conversing with each other, ...
I have tried two methods of functionality with the Mesh implementation, I think l need to do some more studying.
I implemented a Master/slave version where the slave boots and queries the Master for work. The problem with this path was it seemed to "bind" the two together and didn't allow the random connectivity I want.
The second implementation I have is the Server/client setup. In this scenario the server boots and responds to various client requests. This methods allows a single client to be serviced by different servers.
It seems there is a place for both, maybe even on the same network. The master/slave implementation allows two nodes to be in their own little world on the network. An example of this is a remote control and TV pair. The Server/client implementation allows nodes to be social in that they can converse with other nodes as needed. An example of this is remote temperature sensors (servers) being pinged for temperature periodically (by a client) to log the data.
I have a node (client) that has WiFi and NRF24L01 on board. The WiFi will be used to log to database on my remote server.
I am not sold on either implementation just yet, and would welcome discussion on topology implementation.
My experience thus far has not been a good one. I uploaded the Radiohead NRF24 client to my Arduino Pro Mini ATMega328, and opened up the serial monitor. Got no output. I hit reset on my mini, and then got the following:
The client and server examples provided simply do not work. There are no errors being reported but there is not data being sent between the two stations either.