gnulnulf / rf24 Goto Github PK
View Code? Open in Web Editor NEWThis project forked from maniacbug/rf24
Arduino driver for nRF24L01
Home Page: http://maniacbug.github.com/RF24
This project forked from maniacbug/rf24
Arduino driver for nRF24L01
Home Page: http://maniacbug.github.com/RF24
I am trying to establish a connection between my Arduino Uno and RPi.
I followed the connections and run the Getting Started example on the Arduino and "pongtest" on the Pi
Output on Arduino -
�¼8)>±û8<«<²)=��á'kmcû»%?'ãpdq1>6ãh>1>�ñ4{"j#bca(�&UOê��eTY)`
RF24/examples/GettingStarted/
ROLE: Pong back
*** PRESS 'T' to begin transmitting to the other node
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 � = 0xf0f0f0f0e1 0xf0f0f0f0d2
RX_ADDR_P2-5 � = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xf0f0f0f0e1
RX_PW_P0-6 � = 0x20 0x20 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR � = 0x03
RF_CH = 0x4c
RF_SETUP � = 0x07
CONFIG = 0x0f
DYNPD/FEATURE � = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_HIGH
*** CHANGING TO TRANSMIT ROLE -- PRESS 'R' TO SWITCH BACK
Now sending 7010...failed.
Failed, response timed out.
Now sending 8286...failed.
Failed, response timed out.
Now sending 9560...failed.
Failed, response timed out.
Now sending 10833...failed.
Failed, response timed out.
Output on Pi -
RF24/examples/pingpair/
ROLE: Pong back
SPI device = /dev/spidev0.0
SPI speed = 8000000
CE GPIO = 25
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xf0f0f0f0d2 0xf0f0f0f0e1
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xf0f0f0f0d2
RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00
EN_AA = 0x00
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x03
CONFIG = 0x0f
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_LOW
Now when I change to "R" mode, output on Arduino :
*** CHANGING TO RECEIVE ROLE -- PRESS 'T' TO SWITCH BACK
Output on Pi running "pingtest"
RF24/examples/pingpair/
ROLE: Ping out
SPI device = /dev/spidev0.0
SPI speed = 8000000
CE GPIO = 25
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xf0f0f0f0e1 0xf0f0f0f0d2
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xf0f0f0f0e1
RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00
EN_AA = 0x00
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x0f
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
Now sending 3411559399...ok...Failed, response timed out.
Now sending 3411560616...ok...Failed, response timed out.
Now sending 3411561831...ok...Failed, response timed out.
I cannot establish communication between the 2 devices. I have checked, double checked and triple checked the connections. They're all correct. Using connections as mentioned in http://hack.lenotta.com/arduino-raspberry-pi-switching-light-with-nrf24l01/
Also, both devices are in the same room so range is not a problem.
after the scanner example in rpi the nrf needs to be resetted to make it work in the other examples.
by dauhee » Sat Feb 23, 2013 3: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.
This seems not to work
Rename functions or, when the functions and classes are the same, use the wiring option.
It would be nice to have a clean compile without the "hide warnings" option.
root@raspberrypi:/usr/src/rf24-gnulnulf/RF24/librf24-rpi/librf24# make
g++ -Wall -fPIC -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -c RF24.cpp
RF24.h: In constructor âRF24::RF24(std::string, uint32_t, uint8_t)â:
RF24.h:60:11: warning: âRF24::spispeedâ will be initialized after [-Wreorder]
RF24.h:51:11: warning: âuint8_t RF24::csn_pinâ [-Wreorder]
RF24.cpp:241:1: warning: when initialized here [-Wreorder]
g++ -Wall -fPIC -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -c gpio.cpp
g++ -Wall -fPIC -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -c spi.cpp
gcc -Wall -fPIC -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -c compatibility.c
g++ -shared -Wl,-soname,librf24.so.1 -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -o librf24.so.1.0 compatibility.o gpio.o spi.o RF24.o
root@raspberrypi:/usr/src/rf24-gnulnulf/RF24/librf24-rpi/librf24#
Hi,How into the next cross compiler environment in centos 6?
I'm testing RPi pongtest and Arduino pingtest.
It seems that RPi is able to receive but not to send data back. I tested with 2 arduino communicating, and it works. But when I use RPi it doesn't. Here is my printDetails, and a part of the output. Other thing that is strange is that RPi doesn't receive a lot of messages on arduino it receive all of then, maybe because RPi is executing more tasks on background and receiving messages while pongtest is sleeping?
You can see that Pipes 0 and 1 are correct since they are invert from one to other. So do you have any idea what could this be? I'm thinking that maybe a RPi timing issue. Mine RPi is Version 1.0 with 256 ram running "Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux"
RPi pongtest:
RF24/examples/pingpair/
ROLE: Pong back
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xf0f0f0f0d2 0xf0f0f0f0e1
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xf0f0f0f0d2
RX_PW_P0-6 = 0x08 0x08 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x0f
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_HIGH
RF24/examples/pingpair/
ROLE: Ping out
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xf0f0f0f0e1 0xf0f0f0f0d2
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xf0f0f0f0e1
RX_PW_P0-6 = 0x08 0x08 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x0f
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_HIGH
RPi output:
Got payload 1359...Sent response.
Got payload 12790...Sent response.
Got payload 14060...Sent response.
Got payload 16601...Sent response.
Got payload 17870...Sent response.
Got payload 19140...Sent response.
Arduino Output:
Failed, response timed out.
Now sending 1359...failed.
Failed, response timed out.
Now sending 2629...failed.
Failed, response timed out.
Now sending 3900...failed.
Failed, response timed out.
Now sending 5171...failed.
Failed, response timed out.
Now sending 6440...failed.
Failed, response timed out.
Now sending 7710...failed.
Failed, response timed out.
Now sending 8980...failed.
Failed, response timed out.
Now sending 10251...failed.
Failed, response timed out.
Now sending 11521...failed.
Failed, response timed out.
Now sending 12790...failed.
the cs is toggled during multi byte spi. The one in PinDA works better but needs some cleanup. The GPIO is not needed for CS when using the hardware spi.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.