No communication with NRF24L01 on RPi3 64bit [SOLVED]
-
Hi!
Just recently discovered MySensors and this is what I was looking for!
Unfortunately I can't get communications my RPI3 to communicate with a NRF24L01.My setup: RPi3 with a custom kernel 4.13.16 using 64bit, with loaded kernel module spi_bcm2835.
$ uname -r 4.13.16-v8+ $ cat /boot/config.txt dtparam=spi=on $ lsmod [...] spi_bcm2835 20480 0 $ ls /dev/spidev0.* /dev/spidev0.0 /dev/spidev0.1I use the dev-branch (also tried stable, same behavior):
$ ./configure --prefix=/data/home/gunther/mysensors --my-transport=nrf24 --my-gateway=ethernet --my-port=5003 [SECTION] Detecting target machine. [OK] machine detected: SoC=unknown, Type=unknown, CPU=aarch64. [SECTION] Checking GPIO Sysfs. [OK] /sys/class/gpio/export found [SECTION] Detecting SPI driver. [OK] SPI driver detected:SPIDEV. [SECTION] Detecting init system. [FAILED] unknown init system. [SECTION] Saving configuration. [SECTION] Cleaning previous builds. [OK] Finished.The unknown init system should be fine, as I do not want to create any startup scripts or move files somewhere.
Running the gateway as root gives:
$ ./bin/mysgw -d mysgw: Starting gateway... mysgw: Protocol version - 2.2.1-alpha mysgw: MCO:BGN:INIT GW,CP=RNNGL---,VER=2.2.1-alpha mysgw: TSF:LRT:OK mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: !TSM:INIT:TSP FAIL mysgw: TSM:FAIL:CNT=1 mysgw: TSM:FAIL:DIS mysgw: TSF:TDI:TSLThis tells me that the communication between radio and RPI fails.
I (more than) triple-checked the wiring.
I use a voltage regulator from 5V to 3.3V and have a 47µF capacitor between GND and 3.3V. I also tried a different voltage regulator and NRF24L01.I assume the radio itself should be fine because attached to a Arduino Nano (with voltage regulator, without condensator) I see:
16 MCO:BGN:INIT NODE,CP=RNNNA---,VER=2.2.0 25 TSM:INIT 26 TSF:WUR:MS=0 33 TSM:INIT:TSP OK 35 TSM:FPAR 37 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 2046 !TSM:FPAR:NO REPLYWhich I expect to the missing gateway.
-) Is the SPIDEV driver ok? BCM does not compile for 64bit.
-) Do I need to activate any GPIO ports with
echo "$i" > /sys/class/gpio/exportor anything alike?
-) Is it ok, that I use other GPIO ports directly for other things?
-) Is there a way to test that SPI is working properly?Thanks!
-
Hi!
Just recently discovered MySensors and this is what I was looking for!
Unfortunately I can't get communications my RPI3 to communicate with a NRF24L01.My setup: RPi3 with a custom kernel 4.13.16 using 64bit, with loaded kernel module spi_bcm2835.
$ uname -r 4.13.16-v8+ $ cat /boot/config.txt dtparam=spi=on $ lsmod [...] spi_bcm2835 20480 0 $ ls /dev/spidev0.* /dev/spidev0.0 /dev/spidev0.1I use the dev-branch (also tried stable, same behavior):
$ ./configure --prefix=/data/home/gunther/mysensors --my-transport=nrf24 --my-gateway=ethernet --my-port=5003 [SECTION] Detecting target machine. [OK] machine detected: SoC=unknown, Type=unknown, CPU=aarch64. [SECTION] Checking GPIO Sysfs. [OK] /sys/class/gpio/export found [SECTION] Detecting SPI driver. [OK] SPI driver detected:SPIDEV. [SECTION] Detecting init system. [FAILED] unknown init system. [SECTION] Saving configuration. [SECTION] Cleaning previous builds. [OK] Finished.The unknown init system should be fine, as I do not want to create any startup scripts or move files somewhere.
Running the gateway as root gives:
$ ./bin/mysgw -d mysgw: Starting gateway... mysgw: Protocol version - 2.2.1-alpha mysgw: MCO:BGN:INIT GW,CP=RNNGL---,VER=2.2.1-alpha mysgw: TSF:LRT:OK mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: !TSM:INIT:TSP FAIL mysgw: TSM:FAIL:CNT=1 mysgw: TSM:FAIL:DIS mysgw: TSF:TDI:TSLThis tells me that the communication between radio and RPI fails.
I (more than) triple-checked the wiring.
I use a voltage regulator from 5V to 3.3V and have a 47µF capacitor between GND and 3.3V. I also tried a different voltage regulator and NRF24L01.I assume the radio itself should be fine because attached to a Arduino Nano (with voltage regulator, without condensator) I see:
16 MCO:BGN:INIT NODE,CP=RNNNA---,VER=2.2.0 25 TSM:INIT 26 TSF:WUR:MS=0 33 TSM:INIT:TSP OK 35 TSM:FPAR 37 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 2046 !TSM:FPAR:NO REPLYWhich I expect to the missing gateway.
-) Is the SPIDEV driver ok? BCM does not compile for 64bit.
-) Do I need to activate any GPIO ports with
echo "$i" > /sys/class/gpio/exportor anything alike?
-) Is it ok, that I use other GPIO ports directly for other things?
-) Is there a way to test that SPI is working properly?Thanks!
@gunther After fighting with this problem for some days, I now got it working. The solution was to use the BCM driver instead of SPIDEV.
I achieved that by commenting out the 32 bit gcc flags in ./configure
function gcc_cpu_flags { local soc=$1 case $soc in BCM2835) flags="-march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard" ;; BCM2836) flags="-march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard" ;; BCM2837) flags="" #flags="-march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard" ;;and running configure with this options:
$ ./configure --my-transport=nrf24 --my-gateway=ethernet --my-port=5003 --soc=BCM2837Hope this shortens the learning curve for 64bit Rasperry Pi users!
-
@gunther After fighting with this problem for some days, I now got it working. The solution was to use the BCM driver instead of SPIDEV.
I achieved that by commenting out the 32 bit gcc flags in ./configure
function gcc_cpu_flags { local soc=$1 case $soc in BCM2835) flags="-march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard" ;; BCM2836) flags="-march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard" ;; BCM2837) flags="" #flags="-march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard" ;;and running configure with this options:
$ ./configure --my-transport=nrf24 --my-gateway=ethernet --my-port=5003 --soc=BCM2837Hope this shortens the learning curve for 64bit Rasperry Pi users!
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login