Mysensors Gateway on OrangePi (Zero) (opi)
-
@Tag I made the test setup and retraced my steps from the previous experiment. While the TMRh20 is working, the problem indeed lies with the ** mysgw** compilation. I'm getting the same error.
After spending quite some time trying to mitigate the errors I hit a wall and I concluded that the problem is not the different pin numbering but the mysgw source code. I believe the problem is the lack of support for this architecture and with MySensors being so complex and my C++ skills so average, I'm afraid I can't help.
However, if someone can mitigate the source code to successfully compile, the radio should be initialized with:
RF24 radio(7, 0);
7 - CE pin
0 - CS pin
More details here: https://github.com/TMRh20/RF24/issues/257 -
@Tag I made the test setup and retraced my steps from the previous experiment. While the TMRh20 is working, the problem indeed lies with the ** mysgw** compilation. I'm getting the same error.
After spending quite some time trying to mitigate the errors I hit a wall and I concluded that the problem is not the different pin numbering but the mysgw source code. I believe the problem is the lack of support for this architecture and with MySensors being so complex and my C++ skills so average, I'm afraid I can't help.
However, if someone can mitigate the source code to successfully compile, the radio should be initialized with:
RF24 radio(7, 0);
7 - CE pin
0 - CS pin
More details here: https://github.com/TMRh20/RF24/issues/257@mihai.aldea said:
us experiment. While the TMRh20 is working, the problem indeed lies with the ** mysgw** compilation. I'm getting the same error.
Thanks for the confirmation!!, now lets hope that mysgw, will be fixed/ported to the OPI boards soon!
would be great to expand the number of systems it will run on.. -
@mihai.aldea said:
us experiment. While the TMRh20 is working, the problem indeed lies with the ** mysgw** compilation. I'm getting the same error.
Thanks for the confirmation!!, now lets hope that mysgw, will be fixed/ported to the OPI boards soon!
would be great to expand the number of systems it will run on.. -
@Tag
Could you setup my sensors gateway on orange pi one? if you can please help me to build this . thank youUnfortunately the mysgw software does not run native on the OPI systems at this moment.The only option today is to add an arduino to the USB port running i.e the serial gateway sketch (if you do not want to use the USB port, an other option would be using an UART trough the GPIO header, you data will show up on i.e. /dev/ttyS1 if UART 1 is used)
step 2 will be to install controller software.
(i tested MyController on the OPI and that works like a charm, and looks pretty cool!)See this link on how to build a serial gateway on the arduino. Using this setup you can follow the RaspberryPI tutorials.
Hopefully mysgw will run soon on the OrangePI systems! think this is work in progress......
-
I'm trying to add support for Orange Pi to MySensors, this is the work-in-progress repository:
https://github.com/marceloaqno/MySensors/tree/spidevIt would be great if someone could test and submit results from the configure and make commands:
git clone https://github.com/marceloaqno/MySensors marceloaqno-spidev cd marceloaqno-spidev git checkout spidev ./configure make -
I'm trying to add support for Orange Pi to MySensors, this is the work-in-progress repository:
https://github.com/marceloaqno/MySensors/tree/spidevIt would be great if someone could test and submit results from the configure and make commands:
git clone https://github.com/marceloaqno/MySensors marceloaqno-spidev cd marceloaqno-spidev git checkout spidev ./configure makeHi!, really appreciate your hard work on this!!, below are the results,
(I was not able to execute the 1st command :( but... tried something else..root@orangepizero:~# git clone https://github.com/marceloaqno/MySensors.git marceloaqno-spidev
Cloning into 'marceloaqno-spidev'...
remote: Counting objects: 13834, done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 13834 (delta 2), reused 0 (delta 0), pack-reused 13808
Receiving objects: 100% (13834/13834), 9.67 MiB | 3.16 MiB/s, done.
Resolving deltas: 100% (8289/8289), done.
Checking connectivity... done.
root@orangepizero:~# cd marceloaqno-spidev
root@orangepizero:~/marceloaqno-spidev# git checkout spidev
Branch spidev set up to track remote branch spidev from origin.
Switched to a new branch 'spidev'root@orangepizero:~/marceloaqno-spidev# ./configure
[SECTION] Detecting target machine.
[OK] machine detected: SoC=H3, Type=unknown, CPU=armv7l.
[SECTION] Detecting SPI driver.
[OK] SPI driver detected:SPIDEV.
[SECTION] Detecting init system.
[OK] init system detected: systemd.
[SECTION] Saving configuration.
[SECTION] Cleaning previous builds.
[OK] Finished.
root@orangepizero:~/marceloaqno-spidev# make
gcc -MT build/drivers/Linux/log.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/log.c -o build/drivers/Linux/log.o
g++ -MT build/drivers/Linux/noniso.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/noniso.cpp -o build/drivers/Linux/noniso.o
g++ -MT build/drivers/Linux/GPIO.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/GPIO.cpp -o build/drivers/Linux/GPIO.o
g++ -MT build/drivers/Linux/Print.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/Print.cpp -o build/drivers/Linux/Print.o
g++ -MT build/drivers/Linux/EthernetClient.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/EthernetClient.cpp -o build/drivers/Linux/EthernetClient.o
g++ -MT build/drivers/Linux/SerialPort.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/SerialPort.cpp -o build/drivers/Linux/SerialPort.o
g++ -MT build/drivers/Linux/Stream.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/Stream.cpp -o build/drivers/Linux/Stream.o
g++ -MT build/drivers/Linux/IPAddress.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/IPAddress.cpp -o build/drivers/Linux/IPAddress.o
g++ -MT build/drivers/Linux/compatibility.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/compatibility.cpp -o build/drivers/Linux/compatibility.o
g++ -MT build/drivers/Linux/interrupt.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/interrupt.cpp -o build/drivers/Linux/interrupt.o
g++ -MT build/drivers/Linux/SoftEeprom.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/SoftEeprom.cpp -o build/drivers/Linux/SoftEeprom.o
g++ -MT build/drivers/Linux/EthernetServer.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/EthernetServer.cpp -o build/drivers/Linux/EthernetServer.o
g++ -MT build/examples_linux/mysgw.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o
/tmp/ccVhf8xP.s: Assembler messages:
/tmp/ccVhf8xP.s:14808: Warning: IT blocks containing 32-bit Thumb instructions are deprecated in ARMv8
g++ -MT build/drivers/SPIDEV/SPI.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -DLINUX_GPIO_CAPABLE -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/SPIDEV/SPI.cpp -o build/drivers/SPIDEV/SPI.o
g++ -pthread -o bin/mysgw build/drivers/Linux/log.o build/drivers/Linux/noniso.o build/drivers/Linux/GPIO.o build/drivers/Linux/Print.o build/drivers/Linux/EthernetClient.o build/drivers/Linux/SerialPort.o build/drivers/Linux/Stream.o build/drivers/Linux/IPAddress.o build/drivers/Linux/compatibility.o build/drivers/Linux/interrupt.o build/drivers/Linux/SoftEeprom.o build/drivers/Linux/EthernetServer.o build/examples_linux/mysgw.o build/drivers/SPIDEV/SPI.oroot@orangepizero:~/marceloaqno-spidev# ll bin
total 640
-rwxr-xr-x 1 root root 654544 Jan 7 22:48 mysgwSeems we have a binary!!
:D -
I'm trying to add support for Orange Pi to MySensors, this is the work-in-progress repository:
https://github.com/marceloaqno/MySensors/tree/spidevIt would be great if someone could test and submit results from the configure and make commands:
git clone https://github.com/marceloaqno/MySensors marceloaqno-spidev cd marceloaqno-spidev git checkout spidev ./configure makeJust hooked up a radio to the GPIO header. (used this link for the model 1 RPI https://www.mysensors.org/build/raspberry and attached the interrupt pin also to pin 15)
This is the result i get
root@orangepizero:~/marceloaqno-spidev/bin# mysgw
mysgw: Starting gateway...
mysgw: Protocol version - 2.2.0-beta
mysgw: Could not open /sys/class/gpio/gpio10/direction
Illegal instruction
root@orangepizero:~/marceloaqno-spidev/bin# -
Just hooked up a radio to the GPIO header. (used this link for the model 1 RPI https://www.mysensors.org/build/raspberry and attached the interrupt pin also to pin 15)
This is the result i get
root@orangepizero:~/marceloaqno-spidev/bin# mysgw
mysgw: Starting gateway...
mysgw: Protocol version - 2.2.0-beta
mysgw: Could not open /sys/class/gpio/gpio10/direction
Illegal instruction
root@orangepizero:~/marceloaqno-spidev/bin#@Tag Great! The mapping of the physical GPIO number in OrangePi is not ready yet, so you need to figure out the correct value for the CE and CSN pins by adding this to the examples_linux/mysgw.cpp or MyConfig.h
#define MY_RF24_CE_PIN X #define MY_RF24_CS_PIN YThis is the best pinout image I've found that could help:
https://oshlab.com/orange-pi-zero-pinout/This may also give you some hint:
cat /sys/kernel/debug/gpio -
@Tag Great! The mapping of the physical GPIO number in OrangePi is not ready yet, so you need to figure out the correct value for the CE and CSN pins by adding this to the examples_linux/mysgw.cpp or MyConfig.h
#define MY_RF24_CE_PIN X #define MY_RF24_CS_PIN YThis is the best pinout image I've found that could help:
https://oshlab.com/orange-pi-zero-pinout/This may also give you some hint:
cat /sys/kernel/debug/gpio@Tag Maybe this one can help too:
http://orange314.com/WiringOP -
@Tag Maybe this one can help too:
http://orange314.com/WiringOP@Tag also, please don't set the interrupt pin for now.
-
Just hooked up a radio to the GPIO header. (used this link for the model 1 RPI https://www.mysensors.org/build/raspberry and attached the interrupt pin also to pin 15)
This is the result i get
root@orangepizero:~/marceloaqno-spidev/bin# mysgw
mysgw: Starting gateway...
mysgw: Protocol version - 2.2.0-beta
mysgw: Could not open /sys/class/gpio/gpio10/direction
Illegal instruction
root@orangepizero:~/marceloaqno-spidev/bin#@Tag I found more information on the wiki page about the gpio pins:
http://linux-sunxi.org/GPIOIt seems that there is a calculation to be made to know which number to use :scream:
-
Hi!!, many thanks for the info!! really helpful!
Made some progress. first I created this table based on this page: http://linux-sunxi.org/GPIOPin - Num - Name - Calculated value A=1 ((1-1)*32 + Pin)
CE / 22 / PA02 / 2
SCK / 23 / PA14 / 14
MISO / 21 / PA16 / 16
CSN / 24 / PA13 / 13
MOSI / 19 / PA15 / 15Now it is important that you know which kernel is used on your systems the 4.x architecture is different compared to the 3.x arch...
If the 4.x kernel is used you need to use the calculated value for the GPIO pin numbering, i could not test that since I am using the 3.x kernel, so this is what i did:
- load the GPIO kernel module:
modprobe gpio-sunxi- Create the GPIO device files since these were not available on my system by default.
for A in 1 2 3 4 5 6 7 8 9 10 11 12; do echo "$A" > /sys/class/gpio/export ; doneThis created the following entries in /sys/class/gpio
root@orangepizero:~/marceloaqno-spidev/bin# ls -l /sys/class/gpio total 0 --w------- 1 root root 4096 Jan 8 07:39 export lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio1 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio1 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio11 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio11 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio12 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio12 lrwxrwxrwx 1 root root 0 Jan 8 07:32 gpio13 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio13 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio2 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio2 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio3 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio3 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio4 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio4 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio5 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio5 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio6 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio6 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio7 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio7 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio8 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio8 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio9 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio9 lrwxrwxrwx 1 root root 0 Jan 1 1970 gpiochip0 -> ../../devices/platform/sunxi-pinctrl/gpio/gpiochip0 --w------- 1 root root 4096 Jan 1 1970 unexportModified mysgw.cpp to use:
#define MY_RF24_CE_PIN 2 #define MY_RF24_CS_PIN 13And did a clean build:
make clean ./configure makeNow some thing has changed! :)
root@orangepizero:~/marceloaqno-spidev/bin# ./mysgw -d mysgw: Starting gateway... mysgw: Protocol version - 2.2.0-beta mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.2.0-beta mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: !TSM:INIT:TSP FAIL mysgw: TSM:FAIL:CNT=1 mysgw: TSM:FAIL:PDTWill do some more testing with an LED today see if the GPIO pin numbering that was created is okay,
will keep you posted!:
-
@marceloaqno
Did some testing,Setup the GPIO pins:
modprobe gpio-sunxi for A in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 do echo "$A" > /sys/class/gpio/export done(The device files that are created by the commands above do not survive a reboot, so remember to execute the above commands after each reboot!)
Hooked up an led between ground and i.e. pin 22, this pin is linked to GPIO2
Then:
echo out > /sys/class/gpio/gpio2/direction echo 1 > /sys/class/gpio/gpio2/value echo 0 > /sys/class/gpio/gpio2/valueAnd eureka!! Led went on and off :D
Did this for all GPIO ports used by mysgw, below is the verified pin / GPIO table
Pin# - GPIO / NRF24 22 - GPIO2 / CE 23 - GPIO14 / SCK 21 - GPIO16 / MISO 24 - GPIO13 / CSN 19 - GPIO15 / MOSITested all pins and led went on and off on all
How i connected the radio: https://www.mysensors.org/build/raspberry (see the Pi1 part)
How to setup GPIO: http://linux-sunxi.org/GPIO (3.x kernel part, and added pin 13/14/15/16)
Pinout for the OPI Zero: https://i1.wp.com/oshlab.com/wp-content/uploads/2016/11/Orange-Pi-Zero-Pinout-banner2.jpg?fit=1200%2C628&ssl=1 (carefully look at the pin numbering!)Maybe it is usefull, I rebuild mysgw with NRF24 radio debugging enabled, this is the output I get:
root@orangepizero:~/marceloaqno-spidev/bin# ./mysgw -d mysgw: Starting gateway... mysgw: Protocol version - 2.2.0-beta mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.2.0-beta mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: RF24:write register, reg=0, value=14 mysgw: RF24:write register, reg=3, value=3 mysgw: RF24:write register, reg=4, value=95 mysgw: RF24:write register, reg=5, value=76 mysgw: RF24:write register, reg=6, value=39 mysgw: RF24:write register, reg=16, value=115 mysgw: RF24:write register, reg=29, value=6 mysgw: RF24:read register, reg=6, value=0 mysgw: RF24:read register, reg=5, value=0 mysgw: !RF24:INIT:SANCHK FAIL mysgw: !TSM:INIT:TSP FAIL mysgw: TSM:FAIL:CNT=1 mysgw: TSM:FAIL:PDT mysgw: RF24:write register, reg=0, value=12 mysgw: RF24:PD ^Cmysgw: Received SIGINTkeeps looping, until ctrl-c is given.
-
Hi!!, many thanks for the info!! really helpful!
Made some progress. first I created this table based on this page: http://linux-sunxi.org/GPIOPin - Num - Name - Calculated value A=1 ((1-1)*32 + Pin)
CE / 22 / PA02 / 2
SCK / 23 / PA14 / 14
MISO / 21 / PA16 / 16
CSN / 24 / PA13 / 13
MOSI / 19 / PA15 / 15Now it is important that you know which kernel is used on your systems the 4.x architecture is different compared to the 3.x arch...
If the 4.x kernel is used you need to use the calculated value for the GPIO pin numbering, i could not test that since I am using the 3.x kernel, so this is what i did:
- load the GPIO kernel module:
modprobe gpio-sunxi- Create the GPIO device files since these were not available on my system by default.
for A in 1 2 3 4 5 6 7 8 9 10 11 12; do echo "$A" > /sys/class/gpio/export ; doneThis created the following entries in /sys/class/gpio
root@orangepizero:~/marceloaqno-spidev/bin# ls -l /sys/class/gpio total 0 --w------- 1 root root 4096 Jan 8 07:39 export lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio1 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio1 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio11 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio11 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio12 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio12 lrwxrwxrwx 1 root root 0 Jan 8 07:32 gpio13 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio13 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio2 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio2 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio3 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio3 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio4 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio4 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio5 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio5 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio6 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio6 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio7 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio7 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio8 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio8 lrwxrwxrwx 1 root root 0 Jan 8 07:16 gpio9 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio9 lrwxrwxrwx 1 root root 0 Jan 1 1970 gpiochip0 -> ../../devices/platform/sunxi-pinctrl/gpio/gpiochip0 --w------- 1 root root 4096 Jan 1 1970 unexportModified mysgw.cpp to use:
#define MY_RF24_CE_PIN 2 #define MY_RF24_CS_PIN 13And did a clean build:
make clean ./configure makeNow some thing has changed! :)
root@orangepizero:~/marceloaqno-spidev/bin# ./mysgw -d mysgw: Starting gateway... mysgw: Protocol version - 2.2.0-beta mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.2.0-beta mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: !TSM:INIT:TSP FAIL mysgw: TSM:FAIL:CNT=1 mysgw: TSM:FAIL:PDTWill do some more testing with an LED today see if the GPIO pin numbering that was created is okay,
will keep you posted!:
@Tag said:
Made some progress. first I created this table based on this page: http://linux-sunxi.org/GPIO
Pin - Num - Name - Calculated value
CE / 22 / PA02 / 482
SCK / 23 / PA14 / 494
MISO / 21 / PA16 / 496
CSN / 24 / PA13 / 493
MOSI / 19 / PA15 / 495Are you sure this is correct?
The formula is: (position of letter in alphabet - 1) * 32 + pin number
For PA02 for instance the correct value is:
PA02 = (1 - 1) * 32 + 02 = 2Actually you don't need to use the formula at all with the PA ports, all you have to do is use the trailing number.
-
@Tag said:
Made some progress. first I created this table based on this page: http://linux-sunxi.org/GPIO
Pin - Num - Name - Calculated value
CE / 22 / PA02 / 482
SCK / 23 / PA14 / 494
MISO / 21 / PA16 / 496
CSN / 24 / PA13 / 493
MOSI / 19 / PA15 / 495Are you sure this is correct?
The formula is: (position of letter in alphabet - 1) * 32 + pin number
For PA02 for instance the correct value is:
PA02 = (1 - 1) * 32 + 02 = 2Actually you don't need to use the formula at all with the PA ports, all you have to do is use the trailing number.
You are right, took the letter P, which is 16.... but is should have been A.... (for the 4.x kernel)
Updated the table!,Thx!!
-
i have problem in build gateway on orangepi one
root@OrangePI:~/marceloaqno-spidev# make Makefile:16: Makefile.inc: No such file or directory [Running configure] [SECTION] Detecting target machine. [OK] machine detected: SoC=H3, Type=unknown, CPU=armv7l. [SECTION] Detecting SPI driver. [OK] SPI driver detected:SPIDEV. [SECTION] Detecting init system. [OK] init system detected: systemd. [SECTION] Saving configuration. [OK] Finished. gcc -MT build/drivers/Linux/log.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/log.c -o build/drivers/Linux/log.o g++ -MT build/drivers/Linux/IPAddress.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/IPAddress.cpp -o build/drivers/Linux/IPAddress.o g++ -MT build/drivers/Linux/noniso.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/noniso.cpp -o build/drivers/Linux/noniso.o g++ -MT build/drivers/Linux/GPIO.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/GPIO.cpp -o build/drivers/Linux/GPIO.o g++ -MT build/drivers/Linux/Print.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/Print.cpp -o build/drivers/Linux/Print.o g++ -MT build/drivers/Linux/EthernetClient.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/EthernetClient.cpp -o build/drivers/Linux/EthernetClient.o g++ -MT build/drivers/Linux/SerialPort.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/SerialPort.cpp -o build/drivers/Linux/SerialPort.o g++ -MT build/drivers/Linux/Stream.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/Stream.cpp -o build/drivers/Linux/Stream.o g++ -MT build/drivers/Linux/compatibility.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/compatibility.cpp -o build/drivers/Linux/compatibility.o g++ -MT build/drivers/Linux/interrupt.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/interrupt.cpp -o build/drivers/Linux/interrupt.o drivers/Linux/interrupt.cpp: In function ‘void* interruptHandler(void*)’: drivers/Linux/interrupt.cpp:107:26: warning: ignoring return value of ‘ssize_t read(int, void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result] (void)read (fd, &c, 1) ; ^ g++ -MT build/drivers/Linux/SoftEeprom.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/SoftEeprom.cpp -o build/drivers/Linux/SoftEeprom.o g++ -MT build/drivers/Linux/EthernetServer.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/EthernetServer.cpp -o build/drivers/Linux/EthernetServer.o g++ -MT build/examples_linux/mysgw.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o In file included from ./MySensors.h:294:0, from examples_linux/mysgw.cpp:74: ./drivers/RF24/RF24.cpp:39:11: error: Not supported on this platform. hwDigitalWrite(MY_RF24_CS_PIN, level); ^ ./drivers/RF24/RF24.cpp:44:11: error: Not supported on this platform. hwDigitalWrite(MY_RF24_CE_PIN, level); ^ ./drivers/RF24/RF24.cpp:388:11: error: Not supported on this platform. hwPinMode(MY_RF24_CE_PIN,OUTPUT); ^ ./drivers/RF24/RF24.cpp:389:11: error: Not supported on this platform. hwPinMode(MY_RF24_CS_PIN,OUTPUT); ^ ./drivers/RF24/RF24.cpp:37:32: warning: unused parameter ‘level’ [-Wunused-parameter] LOCAL void RF24_csn(const bool level) ^ ./drivers/RF24/RF24.cpp:42:31: warning: unused parameter ‘level’ [-Wunused-parameter] LOCAL void RF24_ce(const bool level) ^ ./drivers/RF24/RF24.cpp: In function ‘uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)’: ./drivers/RF24/RF24.cpp:56:11: error: ‘LOW’ was not declared in this scope RF24_csn(LOW); ^ ./drivers/RF24/RF24.cpp:99:11: error: ‘HIGH’ was not declared in this scope RF24_csn(HIGH); ^ ./drivers/RF24/RF24.cpp: In function ‘void RF24_startListening()’: ./drivers/RF24/RF24.cpp:235:10: error: ‘HIGH’ was not declared in this scope RF24_ce(HIGH); ^ ./drivers/RF24/RF24.cpp: In function ‘void RF24_stopListening()’: ./drivers/RF24/RF24.cpp:241:10: error: ‘LOW’ was not declared in this scope RF24_ce(LOW); ^ ./drivers/RF24/RF24.cpp: In function ‘void RF24_powerDown()’: ./drivers/RF24/RF24.cpp:251:10: error: ‘LOW’ was not declared in this scope RF24_ce(LOW); ^ ./drivers/RF24/RF24.cpp: In function ‘bool RF24_sendMessage(uint8_t, const void*, uint8_t)’: ./drivers/RF24/RF24.cpp:269:10: error: ‘HIGH’ was not declared in this scope RF24_ce(HIGH); ^ ./drivers/RF24/RF24.cpp:276:10: error: ‘LOW’ was not declared in this scope RF24_ce(LOW); ^ ./drivers/RF24/RF24.cpp: In function ‘bool RF24_initialize()’: ./drivers/RF24/RF24.cpp:395:10: error: ‘LOW’ was not declared in this scope RF24_ce(LOW); ^ ./drivers/RF24/RF24.cpp:396:11: error: ‘HIGH’ was not declared in this scope RF24_csn(HIGH); ^ Makefile:114: recipe for target 'build/examples_linux/mysgw.o' failed make: *** [build/examples_linux/mysgw.o] Error 1 root@OrangePI:~/marceloaqno-spidev#i want build a gateway with orangepi one with channel 0 . what am i do ? thank you
-
i have problem in build gateway on orangepi one
root@OrangePI:~/marceloaqno-spidev# make Makefile:16: Makefile.inc: No such file or directory [Running configure] [SECTION] Detecting target machine. [OK] machine detected: SoC=H3, Type=unknown, CPU=armv7l. [SECTION] Detecting SPI driver. [OK] SPI driver detected:SPIDEV. [SECTION] Detecting init system. [OK] init system detected: systemd. [SECTION] Saving configuration. [OK] Finished. gcc -MT build/drivers/Linux/log.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/log.c -o build/drivers/Linux/log.o g++ -MT build/drivers/Linux/IPAddress.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/IPAddress.cpp -o build/drivers/Linux/IPAddress.o g++ -MT build/drivers/Linux/noniso.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/noniso.cpp -o build/drivers/Linux/noniso.o g++ -MT build/drivers/Linux/GPIO.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/GPIO.cpp -o build/drivers/Linux/GPIO.o g++ -MT build/drivers/Linux/Print.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/Print.cpp -o build/drivers/Linux/Print.o g++ -MT build/drivers/Linux/EthernetClient.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/EthernetClient.cpp -o build/drivers/Linux/EthernetClient.o g++ -MT build/drivers/Linux/SerialPort.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/SerialPort.cpp -o build/drivers/Linux/SerialPort.o g++ -MT build/drivers/Linux/Stream.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/Stream.cpp -o build/drivers/Linux/Stream.o g++ -MT build/drivers/Linux/compatibility.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/compatibility.cpp -o build/drivers/Linux/compatibility.o g++ -MT build/drivers/Linux/interrupt.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/interrupt.cpp -o build/drivers/Linux/interrupt.o drivers/Linux/interrupt.cpp: In function ‘void* interruptHandler(void*)’: drivers/Linux/interrupt.cpp:107:26: warning: ignoring return value of ‘ssize_t read(int, void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result] (void)read (fd, &c, 1) ; ^ g++ -MT build/drivers/Linux/SoftEeprom.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/SoftEeprom.cpp -o build/drivers/Linux/SoftEeprom.o g++ -MT build/drivers/Linux/EthernetServer.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/EthernetServer.cpp -o build/drivers/Linux/EthernetServer.o g++ -MT build/examples_linux/mysgw.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_SPIDEV -Ofast -g -Wall -Wextra -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o In file included from ./MySensors.h:294:0, from examples_linux/mysgw.cpp:74: ./drivers/RF24/RF24.cpp:39:11: error: Not supported on this platform. hwDigitalWrite(MY_RF24_CS_PIN, level); ^ ./drivers/RF24/RF24.cpp:44:11: error: Not supported on this platform. hwDigitalWrite(MY_RF24_CE_PIN, level); ^ ./drivers/RF24/RF24.cpp:388:11: error: Not supported on this platform. hwPinMode(MY_RF24_CE_PIN,OUTPUT); ^ ./drivers/RF24/RF24.cpp:389:11: error: Not supported on this platform. hwPinMode(MY_RF24_CS_PIN,OUTPUT); ^ ./drivers/RF24/RF24.cpp:37:32: warning: unused parameter ‘level’ [-Wunused-parameter] LOCAL void RF24_csn(const bool level) ^ ./drivers/RF24/RF24.cpp:42:31: warning: unused parameter ‘level’ [-Wunused-parameter] LOCAL void RF24_ce(const bool level) ^ ./drivers/RF24/RF24.cpp: In function ‘uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)’: ./drivers/RF24/RF24.cpp:56:11: error: ‘LOW’ was not declared in this scope RF24_csn(LOW); ^ ./drivers/RF24/RF24.cpp:99:11: error: ‘HIGH’ was not declared in this scope RF24_csn(HIGH); ^ ./drivers/RF24/RF24.cpp: In function ‘void RF24_startListening()’: ./drivers/RF24/RF24.cpp:235:10: error: ‘HIGH’ was not declared in this scope RF24_ce(HIGH); ^ ./drivers/RF24/RF24.cpp: In function ‘void RF24_stopListening()’: ./drivers/RF24/RF24.cpp:241:10: error: ‘LOW’ was not declared in this scope RF24_ce(LOW); ^ ./drivers/RF24/RF24.cpp: In function ‘void RF24_powerDown()’: ./drivers/RF24/RF24.cpp:251:10: error: ‘LOW’ was not declared in this scope RF24_ce(LOW); ^ ./drivers/RF24/RF24.cpp: In function ‘bool RF24_sendMessage(uint8_t, const void*, uint8_t)’: ./drivers/RF24/RF24.cpp:269:10: error: ‘HIGH’ was not declared in this scope RF24_ce(HIGH); ^ ./drivers/RF24/RF24.cpp:276:10: error: ‘LOW’ was not declared in this scope RF24_ce(LOW); ^ ./drivers/RF24/RF24.cpp: In function ‘bool RF24_initialize()’: ./drivers/RF24/RF24.cpp:395:10: error: ‘LOW’ was not declared in this scope RF24_ce(LOW); ^ ./drivers/RF24/RF24.cpp:396:11: error: ‘HIGH’ was not declared in this scope RF24_csn(HIGH); ^ Makefile:114: recipe for target 'build/examples_linux/mysgw.o' failed make: *** [build/examples_linux/mysgw.o] Error 1 root@OrangePI:~/marceloaqno-spidev#i want build a gateway with orangepi one with channel 0 . what am i do ? thank you
-
You are right, took the letter P, which is 16.... but is should have been A.... (for the 4.x kernel)
Updated the table!,Thx!!
@Tag Does the TMRh20 works in the way your radio is currently connected?
-
@Tag Does the TMRh20 works in the way your radio is currently connected?
@marceloaqno
The library compiled, but unfortunately i cannot get the examples for linux working.
need to edit i.e. gettingstarted.cpp with the correct pin setting, have tried a lot, but either it says that the radio is not connected, and if used with incorrect settings it will not compile at all....Maybe someone following this thread who has experince with this lib?
if there is any progress from my side will keep you posted... -
If you used this wiring scheme:
nRF24L01 | Orange Pi _________|________________ VCC | VCC3V3-EXT GND | GND CSN | SPI0_CS0 (SPI-CE0) CE | PA7 (IO-7) MOSI | SPI0_MOSI (SPI-MOSI) SCK | SPI0_CLK (SPI-CLK) MISO | SPI0_MISO (SPI-MISO)Then you should initialize the radio with:
RF24 radio(7,0);Worked for me:
root@opi-pc-1:~/RF24-master/examples_linux# ./gettingstarted RF24/examples/GettingStarted/ STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0x65646f4e32 0x65646f4e31 RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6 TX_ADDR = 0x65646f4e32 RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00 EN_AA = 0x3f EN_RXADDR = 0x02 RF_CH = 0x4c RF_SETUP = 0x07 CONFIG = 0x0e DYNPD/FEATURE = 0x00 0x00 Data Rate = 1MBPS Model = nRF24L01+ CRC Length = 16 bits PA Power = PA_MAX ************ Role Setup *********** Choose a role: Enter 0 for pong_back, 1 for ping_out (CTRL+C to exit)