dauhee
Posts: 59
Joined: Fri Sep 07, 2012 1:50 pm

Re: NRF24L01 RF Transceiver

Thu Feb 14, 2013 8:54 pm

OK arduino to arduino comms is flawless. RPi to arduino is also flawless!

I believe what the problem was, I used the scanner program to check what channels were free. Unfortunately the scanner changes some "default" settings that only get changed on power cycle.

So not I'm going to try IRQ for the RPi and save my poor CPU :)

dauhee
Posts: 59
Joined: Fri Sep 07, 2012 1:50 pm

Re: NRF24L01 RF Transceiver

Sun Feb 17, 2013 12:08 am

For those that are interested - when testing, the RPi will drop about 1 in 10 messages for me. But by using an interrupt, it is now as flawless as arduino to arduino.

Interrupt is done via wiringPi:
o git clone git://git.drogon.net/wiringPi
o cd wiringPi
o ./build

then add following to setup (where BCM pin is 4, being RPi pin 7):
system ("gpio unexport 4");
system ("gpio export 4 in");
system ("gpio edge 4 falling");
wiringPiSetupSys () ;
wiringPiISR (4, INT_EDGE_FALLING, &gotData)

then handle the event in void gotData(void)

I am very excited as there is no need to purchase wifi shields for arduino units (>$60) so this will save me lots of money for my home automation project.

bcatalin
Posts: 22
Joined: Mon Jan 30, 2012 9:45 am

Re: NRF24L01 RF Transceiver

Sun Feb 17, 2013 8:50 am

When you had dropped packets your RPI was sending pings and arduino echoes them back?

gnulnulf
Posts: 32
Joined: Sat Oct 06, 2012 12:04 pm

Re: NRF24L01 RF Transceiver

Sun Feb 17, 2013 9:53 am

dauhee wrote:For those that are interested - when testing, the RPi will drop about 1 in 10 messages for me. But by using an interrupt, it is now as flawless as arduino to arduino.

Interrupt is done via wiringPi:
o git clone git://git.drogon.net/wiringPi
o cd wiringPi
o ./build

then add following to setup (where BCM pin is 4, being RPi pin 7):
system ("gpio unexport 4");
system ("gpio export 4 in");
system ("gpio edge 4 falling");
wiringPiSetupSys () ;
wiringPiISR (4, INT_EDGE_FALLING, &gotData)

then handle the event in void gotData(void)
You kinda lost me here...
In the wiringPI I don't see anything pointing to the nrf..
in the nrf I don't see the gotData()...

dauhee
Posts: 59
Joined: Fri Sep 07, 2012 1:50 pm

Re: NRF24L01 RF Transceiver

Sun Feb 17, 2013 11:23 am

The arduino was pinging and the RPi was pongback - I have a few things running on the RPi so I think it was loosing messages due to OS doing other stuff.

the gotData is my custom function thats passed into the wiringPi interrupt call (wiringPiISR). The NRF pin 8 is used for IRQ - the edge falls when something is ready for notification. So I connected pin 8 on NRF to pin 7 on RPi (BCM pin 4 in code). So rather than polling in a loop, it will call the getData method (or whatever it is called). I coped code from pingpair.pde for IRQ stuff. I've just modified it to pass strings. I will send my finished code onto gnulnulf you might have interest.

bcatalin
Posts: 22
Joined: Mon Jan 30, 2012 9:45 am

Re: NRF24L01 RF Transceiver

Sun Feb 17, 2013 11:25 am

GotData is an user defined handler that is mapped on the IRQ pin from nrf. When the interrupt pin goes from high to low that got data is called. You can rename this function with what name you want.

rbe
Posts: 1
Joined: Sun Feb 17, 2013 4:02 pm

Re: NRF24L01 RF Transceiver

Sun Feb 17, 2013 4:14 pm

Hi

could you share some working source code of raspberry+arduino communication over RF24 ? I've been playing with some different codes but haven't got it working yet. My radio.write(...) returns false and I do not know the reason... If I touch wires by hand, radio.write(...) returns true but is not functioning as expected. I hope that there some improvements could be in place as I've seen you're using some code with ...crc... .

R

bcatalin
Posts: 22
Joined: Mon Jan 30, 2012 9:45 am

Re: NRF24L01 RF Transceiver

Sun Feb 17, 2013 6:59 pm

https://github.com/gnulnulf/RF24

You will find good examples for pi and arduino.

nielsoe
Posts: 4
Joined: Mon Jan 28, 2013 3:36 pm

Re: NRF24L01 RF Transceiver

Sun Feb 17, 2013 10:25 pm

matheusbrat wrote:Hey guys,

I have been working on other Network Protocol based on RF24 library [snip]

The down point is, since we need to fix one channel the numbers of nodes connected to the network are limited to 254 but I prefer to say it is 250.

It is a under development library and I still have a lot of work to do, but the basic codes are working with examples.

It has support to Arduino/Teensy/RPi.

I tested it with 5 stations (1 master and 4 regular stations), I have plans to go with more node testing.
This is really great. Looking forward to learn about your progress in this project!

pygmy_giant
Posts: 1562
Joined: Sun Mar 04, 2012 12:49 am

Re: NRF24L01 RF Transceiver

Sun Feb 17, 2013 10:35 pm

I've got some of these transceivers comming in the post - Im hoping I can use them to control an Attacknid.

gnulnulf
Posts: 32
Joined: Sat Oct 06, 2012 12:04 pm

Re: NRF24L01 RF Transceiver

Mon Feb 18, 2013 3:46 pm

@rbe, can you use the ping/pong tests to seebif the hardware is connected correct? If the addresses are all zero/FF the connection is incorrect.

stanley
Posts: 33
Joined: Fri Feb 01, 2013 7:38 pm
Location: Kuala Lumpur, Malaysia
Contact: Website

Re: NRF24L01 RF Transceiver

Tue Feb 19, 2013 5:34 pm

Thanks to maniacbug libraries and people here, I have written a HOWTO with pictures & download links to get Arduino UNO & Raspberry Pi communicating with each other using the nRF24L01 RF module...

http://arduino-for-beginners.blogspot.c ... es-to.html
Stanley
blog :- http://arduino-for-beginners.blogspot.com/
fb group :- https://www.facebook.com/groups/arduino.for.beginners/

freerpg
Posts: 14
Joined: Sat Nov 24, 2012 6:43 am

Re: NRF24L01 RF Transceiver

Tue Feb 19, 2013 11:54 pm

OK I need to start out by saying I am a NOOOOOOOOOB. but I had this idea I just didn't want to post an idea and not be able to contribute.
does anyone have this working with multiple arduino yet?
does anyone have the Pi sending info to an arduino remote controlfor a TV?
has anyone tried transfering raw data over the nrf pi to pi? if so what rates you getting?

I mean the possibilities for this is nowunlimitedifwe can can use the multiple cannels. you can automate your house AND havethe remote in a creditcard size controller ie the Pi.

to anyone that has contributed THANK YOU right now a tear forms in my eye seeing a large community acting as one and acting in an area I am interested in.
THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU
I will be very intrigued to see peoples answers to this as I have a gaming idea that would be better suited to the pi than arduino

ffimon
Posts: 7
Joined: Tue Feb 19, 2013 9:55 pm

Re: NRF24L01 RF Transceiver

Wed Feb 20, 2013 1:20 am

Having seen this http://maniacbug.wordpress.com/2011/10/19/sensor-node/ I wondered if it may be possible to let the Atmels do the talking and just comunicate to the pi via the I2C bus. Also you would then also have the advantage of accessing the analogue input pins of the 328p too. Also as the Atmel is handling all the coms even "Though Traffic" the Pi is only disturbed by traffic for it.

As a test to refine my eagle skills I did a PCB design And it looks like the whole thing could be constructed for £12-15 as a Kit.

At least this way you would not have to worry about the PI doing other OS stuff and missing the transmission.
Attachments
test.png
test.png (61.91 KiB) Viewed 11487 times

freerpg
Posts: 14
Joined: Sat Nov 24, 2012 6:43 am

Re: NRF24L01 RF Transceiver

Fri Feb 22, 2013 6:13 am

ok i got this working and i got a programmer coming aroud today. hopefully I can get something real world applicable happening soon with it and I will make sure to always credit everyone in this thread cos damn you guys did some good work. thank you so much again

dauhee
Posts: 59
Joined: Fri Sep 07, 2012 1:50 pm

Re: NRF24L01 RF Transceiver

Fri Feb 22, 2013 9:16 pm

NRF24L01 is great for always listening/always sending type of comms. I was looking for 2 way comms between RPi and arduino at random intervals. Unfortunately its just not reliable as they both clash and fail at regular intervals. Even if only sending every 10 seconds each way, they end up missing a message every 3-4 minutes (timings drift).

I tried putting in a retry but because both have stopped listening, it still fails. so would need to put a retry on 1 side, and let the other side fail. . . . . . am thinking of throwing the towel in on this as its not able to do what I had intended.

Also for some reason, the CONFIG register on the RPi changes from 0x0f to 0x7f sometimes which halts all communications. The only way I can restore it is to power cycle the NRF chip.

dauhee
Posts: 59
Joined: Fri Sep 07, 2012 1:50 pm

Re: NRF24L01 RF Transceiver

Sat Feb 23, 2013 1:46 am

I can do the following to reset the config:
radio.write_register(0x00,0x0f);
only after modifying the RF24.h file to make the method public instead of protected - this enables comms to resume without power cycle.

still no joy with consistant 2-way comms however.

bcatalin
Posts: 22
Joined: Mon Jan 30, 2012 9:45 am

Re: NRF24L01 RF Transceiver

Sat Feb 23, 2013 3:35 pm

Post your project maybe, we can help you.

From I can understand you want an async communications between two devices.

dauhee
Posts: 59
Joined: Fri Sep 07, 2012 1:50 pm

Re: NRF24L01 RF Transceiver

Sat Feb 23, 2013 3:53 pm

Thank you very much bcatlin. Yes async is my goal.

RPi code is:

Code: Select all

/*
 Copyright (C) 2011 J. Coliz <[email protected]>

 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 version 2 as published by the Free Software Foundation.
 */

/**
 * Example RF Radio Ping Pair
 *
 * This is an example of how to use the RF24 class.  Write this sketch to two different nodes,
 * connect the role_pin to ground on one.  The ping node sends the current time to the pong node,
 * which responds by sending the value back.  The ping node can then see how long the whole cycle
 * took.
 */
#include <wiringPi.h>
#include <cstdlib>
#include <iostream>
#include "../librf24/RF24.h"


// Set up nRF24L01 radio on SPI bus plus pins 9 & 10
RF24 radio("/dev/spidev0.0",8000000 , 25);  //spi device, speed and CSN,only CSN is NEEDED in RPI

char receive_payload[32+1];
uint8_t intResult;

void gotData(void)
{

  bool rx, blnTXOK, blnTXFail;

  radio.whatHappened(blnTXOK,blnTXFail,rx);

if(blnTXFail){
intResult = 2;
}else if(blnTXOK){
intResult = 1;
}else if ( rx )
  {
intResult = 3;
uint8_t len = radio.getDynamicPayloadSize();

      bool done = false;
      while (!done)
      {
        // Fetch the payload, and see if this was the last one.
      done = radio.read( receive_payload, len );

      // Put a zero at the end for easy printing
      receive_payload[len] = 0;

        // Spew it
	printf("Got data size=%i value=%s\n\r",len,receive_payload);

      }

     fflush (stdout) ;
	}

}

void setup(void)
{

  printf("\n\rRF24/examples/pingpair/\n\r");
  radio.begin();
  radio.setRetries(10,15);
radio.setAutoAck(true);
radio.enableDynamicPayloads();
 radio.setChannel(90);
     radio.setPALevel(RF24_PA_MAX);
    radio.openWritingPipe(0xF0F0F0F0D2LL);
    radio.openReadingPipe(1,0xF0F0F0F0E1LL);

	system ("gpio unexport 4");

	system ("gpio export 4 in");
	system ("gpio edge 4 falling");
  wiringPiSetupSys () ;

    if (wiringPiISR (4, INT_EDGE_FALLING, &gotData) <0 )	// Got it
    {

printf ("error setting interrupt: \n") ;
    }

  radio.startListening();
  radio.printDetails();

}


int main(int argc, char** argv)
{
 char chrSend[] = "hello arduino";
int intLoop;
        setup();
  for (;;)
  {

	intResult = 0;
intLoop = 0;

      radio.stopListening();
    radio.write(&chrSend, sizeof(chrSend) ); 

/*
    while ((intResult != 1)&&(intLoop < 10)){
	radio.write(&chrSend, sizeof(chrSend));
      radio.startListening();
      delay(10);
      radio.stopListening();
	intLoop++;
    }
*/
      radio.startListening();
	//printf("Main thread send OK: %s\r\n",(blnTXOK)?"true":"false");  
printf("Main thread send return %i \r\n", intResult);
/*
    if ( radio.available() ){
      delay(5);
      uint8_t len = radio.getDynamicPayloadSize();

      bool done = false;
      while (!done)
      {
        // Fetch the payload, and see if this was the last one.
      done = radio.read( receive_payload, len );

      // Put a zero at the end for easy printing
      receive_payload[len] = 0;

        // Spew it
	printf("Got data fromn RPi size=%i value=%s\n\r",len,receive_payload);

	// Delay just a little bit to let the other unit
	// make the transition to receiver
	//delay(20);
      }

      
    }
*/
	//printf("Main thread send OK: %s\r\n",(ret)?"true":"false");
//uint8_t tst = radio.get_status();

//radio.write_register(0x00,0x0f);

     fflush (stdout) ;

	sleep (1) ;
  }

        return 0;
}
RPi code uses wiringPi and interrupt connected on pin 4. Arduino code is as follows:

Code: Select all

/*
 Copyright (C) 2011 J. Coliz <[email protected]>
 
 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 version 2 as published by the Free Software Foundation.
 */

/**
 * Example RF Radio Ping Pair
 *
 * This is an example of how to use the RF24 class.  Write this sketch to two different nodes,
 * connect the role_pin to ground on one.  The ping node sends the current time to the pong node,
 * which responds by sending the value back.  The ping node can then see how long the whole cycle
 * took.
 */

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"

RF24 radio(9,10);

int intCounter = 0;

// Radio pipe addresses for the 2 nodes to communicate.
const uint64_t pipes[2] = { 
  0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
unsigned long lngTime = 0;
char receive_payload[32+1];

void setup(void)
{

  Serial.begin(57600);
  printf_begin();
  printf("\n\rRF24/examples/pingpair/\n\r");
  radio.begin();
  radio.setRetries(20,15);

  radio.setAutoAck(true);
  radio.enableDynamicPayloads();
  //radio.setDataRate(RF24_250KBPS);
  radio.setPALevel(RF24_PA_MAX);
  radio.setChannel(90);

  //
  // Open pipes to other nodes for communication
  //

  radio.openWritingPipe(pipes[0]);
  radio.openReadingPipe(1,pipes[1]);
  radio.startListening();
  radio.printDetails();
}

void loop(void)
{
  int intLoop;

  if (lngTime < millis()){
    lngTime =  millis()  + 1000;

    intCounter++;
    String strData = "hello RPi " + String(intCounter);
    char chrSend[32];
    strData.toCharArray(chrSend, strData.length() + 1);
    chrSend[strData.length() + 1] = 0;
    intLoop = 0;

    // First, stop listening so we can talk.
    radio.stopListening();
    while ((!radio.write(&chrSend, strData.length() + 1))&&(intLoop < 2)){
      delay(50);
      intLoop++;
    }
    radio.startListening();
    if (intLoop < 2){
      printf("ok..(%i) .%i\n", intLoop, intCounter);
    }
    else{
      printf("---------------------------------failed ...%i\n", intCounter);
    }
    //delay(20);
  }

  if ( radio.available() ){
    delay(5);
    uint8_t len = radio.getDynamicPayloadSize();

    bool done = false;
    while (!done)
    {
      // Fetch the payload, and see if this was the last one.
      done = radio.read( receive_payload, len );

      // Put a zero at the end for easy printing
      receive_payload[len] = 0;

      // Spew it
      printf("Got data fromn RPi size=%i value=%s\n\r",len,receive_payload);

    }

  }

}
I've tried various things like putting in delays and retries etc

bcatalin
Posts: 22
Joined: Mon Jan 30, 2012 9:45 am

Re: NRF24L01 RF Transceiver

Sat Feb 23, 2013 4:06 pm

Read few minutes about the ALOHA protocol, maybe is fine for your project. How time sensitive is your project?


In few words, if we have a collision, retransmit the packet after a random period of time. If I remember correctly the frame size need to be fixed.

dauhee
Posts: 59
Joined: Fri Sep 07, 2012 1:50 pm

Re: NRF24L01 RF Transceiver

Sat Feb 23, 2013 6:03 pm

thats a very interesting protocol alright but am not seeing any arduino implementations. I have spent a few months working with RF433 and the nRF24 and haven't had anything I could have solid async comms. RF433 was very bad with high losses. nRF24 will give intermittent "collisions". I also spent a bit of time on encryption and managed to get AES working on arduino but it was too much for its poor processor and would frequently hang. I then moved onto ARC4 which worked nicely.

At this stage I'm leaning twords just having a model A RPi with usb wireless dongle in each room and just let the wifi handle all the messaging. If I encounter anything that has too much demands on the RPi GPIO, or needs real time, I can attach a arduino nano (clone is < €8 on ebay).

bcatalin
Posts: 22
Joined: Mon Jan 30, 2012 9:45 am

Re: NRF24L01 RF Transceiver

Sat Feb 23, 2013 6:46 pm

When you want transmit something use testRPD function (on nrf24l01+) or testCarrier (on nrf24l01) to check if someone is transmitting something to you. If that is the case, delay your transmission on a random time (kind of aloha protocol).
If you have more devices you can combine maybe with a token that is passed between stations, and only the station that has the token can transmit....

dauhee
Posts: 59
Joined: Fri Sep 07, 2012 1:50 pm

Re: NRF24L01 RF Transceiver

Sat Feb 23, 2013 8:12 pm

Much appreciated bcatalin

The clash happens after radio.stopListening() and before/during radio.write so I fear even testing testRPD beforehand may not prevent message clashing.

Building in a random retry or tokens would work but am not sure if I could overcome the complications i.e. hold onto transaction(s), resume listening, then retry transaction later - the concept is simple but my less than adequate coding overwhelms the arduino - I encountered this when trying RF433 :(

stanley
Posts: 33
Joined: Fri Feb 01, 2013 7:38 pm
Location: Kuala Lumpur, Malaysia
Contact: Website

Re: NRF24L01 RF Transceiver

Wed Feb 27, 2013 11:06 am

Hi,

I re-wrote the code to accept sensor data from multiple Arduino nodes with different addresses but I find that I get a lot of FFFFFFFFFFFF from the radio.available ....

Is it normal for the NRF24 to think those FFFFFFFFFFFF as normal payload ?

The code will return back the payload to the sender for calculating the rtt... I use strcmp and discard those "FFFFFFFFFFFFFFF" payloads...

Sample output...

Code: Select all


Recv: size=20 payload=F0E2,439,145,145,834 Send: size=20 payload=F0E2,439,145,145,834
Recv: size=20 payload=FFFFFFFFFFFFFFFFFFFF 
Recv: size=20 payload=F0E1,512,233,232,296 Send: size=20 payload=F0E1,512,233,232,296
Recv: size=20 payload=F0E3,322,180,179,699 Send: size=20 payload=F0E3,322,180,179,699
Recv: size=20 payload=F0F1,253,195,199,993 Send: size=20 payload=F0F1,253,195,199,993
Recv: size=20 payload=F0E1,513,233,232,255 Send: size=20 payload=F0E1,513,233,232,255
Recv: size=20 payload=F0E3,323,171,172,642 Send: size=20 payload=F0E3,323,171,172,642
Recv: size=20 payload=F0E2,441,220,214,753 Send: size=20 payload=F0E2,441,220,214,753
Recv: size=20 payload=F0E1,514,232,231,801 Send: size=20 payload=F0E1,514,232,231,801
Recv: size=20 payload=F0E3,324,177,177,889 Send: size=20 payload=F0E3,324,177,177,889
Recv: size=20 payload=F0E1,515,233,232,200 Send: size=20 payload=F0E1,515,233,232,200
Recv: size=20 payload=FFFFFFFFFFFFFFFFFFFF 
Recv: size=20 payload=F0E1,516,233,232,890 Send: size=20 payload=F0E1,516,233,232,890
Recv: size=20 payload=F0F1,257,407,383,123 Send: size=20 payload=F0F1,257,407,383,123
Recv: size=20 payload=FFFFFFFFFFFFFFFFFFFF 
Recv: size=20 payload=F0E3,328,379,367,396 Send: size=20 payload=F0E3,328,379,367,396
Recv: size=20 payload=F0E2,446,203,192,436 Send: size=20 payload=F0E2,446,203,192,436
Recv: size=20 payload=FFFFFFFFFFFFFFFFFFFF 
Recv: size=20 payload=F0E1,521,234,232,588 Send: size=20 payload=F0E1,521,234,232,588
Recv: size=20 payload=F0E3,330,283,277,774 Send: size=20 payload=F0E3,330,283,277,774
Recv: size=20 payload=F0E2,449,143,144,984 Send: size=20 payload=F0E2,449,143,144,984
Recv: size=20 payload=FFFFFFFFFFFFFFFFFFFF 
Recv: size=20 payload=FFFFFFFFFFFFFFFFFFFF 
Recv: size=20 payload=F0E1,523,231,230,025 Send: size=20 payload=F0E1,523,231,230,025
Recv: size=20 payload=F0F1,262,222,217,616 Send: size=20 payload=F0F1,262,222,217,616
Recv: size=20 payload=FFFFFFFFFFFFFFFFFFFF 
Recv: size=20 payload=FFFFFFFFFFFFFFFFFFFF 
Recv: size=20 payload=F0F1,265,326,328,241 Send: size=20 payload=F0F1,265,326,328,241

Code: Select all

#include <cstdlib>
#include <iostream>
#include "lib/RF24/RF24.h"
#include "lib/RF24/compatibility.h"

using namespace std;

// Radio pipe addresses for the 2 nodes to communicate.
// First pipe is for writing, 2nd, 3rd, 4th, 5th & 6th is for reading...
const uint64_t pipes[6] = { 0xF0F0F0F0D2LL, 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL, 0xF0F0F0F0F1, 0xF0F0F0F0F2 };

// CE and CSN pins On header using GPIO numbering (not pin numbers)
RF24 radio(23,24);  // Setup for GPIO 23 CE and 24 CSN

// Receive payload size
char receivePayload[32];

void setup(void)
{
	//
	// Refer to RF24.h or nRF24L01 DS for settings
	radio.begin();
	radio.enableDynamicPayloads();
	radio.setRetries(15,15);
	radio.setDataRate(RF24_1MBPS);
	radio.setPALevel(RF24_PA_MAX);
	radio.setChannel(76);
	radio.setCRCLength(RF24_CRC_16);

	// Open 6 pipes for readings ( 5 plus pipe0, also can be used for reading )
	radio.openWritingPipe(pipes[0]);
	radio.openReadingPipe(1,pipes[1]);
	radio.openReadingPipe(2,pipes[2]);
	radio.openReadingPipe(3,pipes[3]);
	radio.openReadingPipe(4,pipes[4]);
	radio.openReadingPipe(5,pipes[5]);

	//
	// Start listening
	//

	radio.startListening();

	//
	// Dump the configuration of the rf unit for debugging
	//

	radio.printDetails();
}

void loop(void)
{
	
	char blank[21]="FFFFFFFFFFFFFFFFFFFF";

	// Start listening
	radio.startListening();

	 while ( radio.available() ) {
		uint8_t len = radio.getDynamicPayloadSize();
		radio.read( receivePayload, len );

		// Display it on screen
		printf("Recv: size=%i payload=%s ",len,receivePayload);

		// Send back payload to sender
		radio.stopListening();

		// Match for blank and do not re-send it out
		if ( strcmp(receivePayload,blank)  ) {
			radio.write(receivePayload,len);
			printf("Send: size=%i payload=%s\n\r",len,receivePayload);
		} else {
			printf("\n\r");
                }
	}
	usleep(20);
}


int main(int argc, char** argv) 
{
	setup();
	while(1)
		loop();
	
	return 0;
}

Stanley
blog :- http://arduino-for-beginners.blogspot.com/
fb group :- https://www.facebook.com/groups/arduino.for.beginners/

dauhee
Posts: 59
Joined: Fri Sep 07, 2012 1:50 pm

Re: NRF24L01 RF Transceiver

Wed Feb 27, 2013 11:24 am

give it another go with:
char receivePayload[32 + 1];

instead of:
char receivePayload[32];

need null terminator in array. It took me a couple of weeks to find out this very valuable lesson previously! could be the issue.

Return to “HATs and other add-ons”