RF24Ethernet - TCP/IP over RF24Network v1.6.14
TMRh20 - Pushing the practical limits of RF24 modules
No Matches

Installation & Compilation Errors:


Report issues with the installer at https://github.com/TMRh20/RF24/issues


Ensure proper library installation.

Test hardware configuration


  1. Navigate to the rf24libs/RF24/examples_RPi folder
  2. Configure the correct pins in gettingstarted.cpp (See general Linux/RPi setup)
  3. Build the examples: make
  4. Run an example sudo ./gettingstarted


  1. Open the GettingStarted example sketch (File > Examples > RF24 > GettingStarted)
  2. Configure the appropriate CE and CS pins in the example as desired (RF24 radio(7, 8);)
  3. Configure the assigned radio number in the example
  4. Upload to Arduino to test

Testing RF24Gateway and RF24Ethernet

Troubleshooting steps assume a fresh library install with the default configuration, using RF24Mesh/TUN
The maximum payload size configured in RF24Network_config.h will determine the maximum size of TCP or UDP segments. Set to 1514 (TAP) or 1500 (TUN) on Raspberry Pi/Linux devices for full TCP/IP capabilities. TCP+IP+LL headers add 54 bytes of overhead to each payload with TAP/Ethernet, and 40 bytes with TUN/RF24Mesh

RPi (RF24Gateway)

See also
Documentation for RF24Gateway
  1. Run the included RF24Gateway_ncurses example sudo ./RF24Gateway_ncurses
  2. Test connectivity: ping 10.10.3.<IP_TO_PING-last-octet>
  3. If connectivity fails, ensure IP information is accurate. Forwarding is required if pinging from a device other than the RPi.
  4. If using pins connections other than the default, edit the RF24 constructor in the example file: ie: RF24 radio(22, 0);
  5. Optional: For RPi to RPi communication over RF24, edit the rf24libs/RF24Network/RF24Network_config.h file. Set #define MAX_PAYLOAD_SIZE 1514

Arduino (RF24Ethernet)

  1. Update all RF24 libraries (RF24, RF24Network, RF24Mesh, RF24Ethernet) http://tmrh20.github.io
  2. Open, configure and upload one of the included examples to Arduino. (File > Examples > RF24Ethernet)
  3. Ensure example hardware and pin configuration matches CE and CS pins selected in step 2
  4. If switching between TAP(Ethernet) & TUN(RF24Mesh), ensure the LLHL is defined appropriately in RF24Ethernet/uip-conf.h: #define UIP_CONF_LLH_LEN 14