Mysensors Gateway on OrangePi (Zero) (opi)
-
@marceloaqno It still doesn't work on my OPi Zero :confused:
root@opi-zero-1:~/orangepi# 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:PDT
mysgw: Received SIGINTI do have the /sys/class/gpio/export and I ran 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
For the record, here's my OS:
BOARD=orangepizero BOARD_NAME="Orange Pi Zero" VERSION=5.24 LINUXFAMILY=sun8i BRANCH=default ARCH=arm PRETTY_NAME="Debian GNU/Linux 8 (jessie)" NAME="Debian GNU/Linux" VERSION_ID="8" VERSION="8 (jessie)" ID=debian HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"@mihai.aldea The gateway does the exporting when needed, you don't need to run:
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 ; doneCould you send the output of this command?
ls -lah /dev/spidev* -
@mihai.aldea The gateway does the exporting when needed, you don't need to run:
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 ; doneCould you send the output of this command?
ls -lah /dev/spidev*Still issues here:
root@orangepizero:~/orangepi/bin# ll /dev/spi* crw------- 1 root root 153, 0 Jan 9 22:51 /dev/spidev0.0 crw------- 1 root root 153, 1 Jan 9 22:51 /dev/spidev1.0Then:
./configure --spi-spidev-device=/dev/spidev1.0added to examples_linux/mysgw.cpp
#define MY_RF24_CE_PIN 2 #define MY_RF24_CS_PIN 13end enabled radio debugging:
output:
root@orangepizero:~/orangepi/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=39 mysgw: RF24:read register, reg=5, value=76 mysgw: RF24:write register, reg=2, value=2 mysgw: RF24:write register, reg=1, value=0 mysgw: RF24:write register, reg=28, value=3 mysgw: RF24:flushRX mysgw: RF24:flushTX mysgw: RF24:write register, reg=7, value=112 mysgw: TSM:INIT:TSP OK mysgw: TSM:INIT:GW MODE mysgw: RF24:write register, reg=2, value=3 mysgw: RF24:write register, reg=1, value=1 mysgw: RF24:STRT LIS mysgw: RF24:write register, reg=0, value=15 mysgw: RF24:write register, reg=10, value=0 mysgw: TSM:READY:ID=0,PAR=0,DIS=0 mysgw: MCO:REG:NOT NEEDED mysgw: RF24:read register, reg=23, value=17 Illegal instruction root@orangepizero:~/orangepi/bin#Almost there?
-
@Reza Is there /sys/class/gpio/export file on your OPi?
@marceloaqno
in "orangepi one"(ubuntu os) there is not gpio folder in sys/class. but i think after run "modprobe gpio-sunxi" built a folder that name is "gpio_sw" and in this folder there are this files: normal_led,pa3,pa6,pa8 and 9,10,13,14,15,21 ,... -
@marceloaqno
in "orangepi one"(ubuntu os) there is not gpio folder in sys/class. but i think after run "modprobe gpio-sunxi" built a folder that name is "gpio_sw" and in this folder there are this files: normal_led,pa3,pa6,pa8 and 9,10,13,14,15,21 ,...@Reza Is it too complicated to switch to Debian?
-
@Reza Is it too complicated to switch to Debian?
@mihai.aldea said:
Is it too complicated to switch to Debian?
you told me i change my os ? to armbian ?
-
@marceloaqno
in "orangepi one"(ubuntu os) there is not gpio folder in sys/class. but i think after run "modprobe gpio-sunxi" built a folder that name is "gpio_sw" and in this folder there are this files: normal_led,pa3,pa6,pa8 and 9,10,13,14,15,21 ,... -
@Reza I wouldn't even dream of not using Armbian on OrangePi and NanoPi. Compared to Raspbian it's years ahead in terms of optimization and tidyness. Armbian is the reason I'm avoiding RPi when possible. So go ahead and install a proper OS for your OPi. Not sure if Xenial or Debian, maybe we should wait for @marceloaqno to respond to my comment with the running OS.
-
@Reza
More info on armbian.comI use the debian jessie, works like a charm!
-
That I can not say.
-
@Reza
More info on armbian.comI use the debian jessie, works like a charm!
-
I confirm it's not working on the OPi PC where TMRh20 works.
-
@Tag Oops, did I get it right this time (I reuploaded the image)?
-
i have problem with compile source domoticz(i must use source domoticz for my changes) in armbian, so i have to use ubuntu.
@marceloaqno can you help me to run mysensors gateway in orangepi one (ubuntu os).thank you -
Hi All,
I put together the steps to get MySensors running on the OrangePi Zero:
Take note of the SPI part, 1 typo and you will not see /dev/spidev1.0-
Download and Install the ARMbian(debian) OS image
https://www.armbian.com/orange-pi-zero/ -
Install sunxi-tools:
These tools are required to make changes in the boot area of the system
sudo apt-get update sudo apt-get install sunxi-tools- How to add /dev/spidev1.0 (which is required since /dev/spidev0.0 is used for the onboard NAND flash)
cd /boot bin2fex /boot/script.bin /root/myscript.txtNow edit /root/myscript.bin and add/change the following so it looks exactly like the part below:
[spi0] spi_used = 1 spi_cs_bitmap = 1 spi_mosi = port:PC00<3><default><default><default> spi_miso = port:PC01<3><default><default><default> spi_sclk = port:PC02<3><default><default><default> spi_cs0 = port:PC03<3><1><default><default> [spi1] spi_used = 1 spi_cs_bitmap = 1 spi_cs0 = port:PA13<2><1><default><default> spi_sclk = port:PA14<2><default><default><default> spi_mosi = port:PA15<2><default><default><default> spi_miso = port:PA16<2><default><default><default> [spi_devices] spi_dev_num = 2 [spi_board0] modalias = "spidev" max_speed_hz = 33000000 bus_num = 0 chip_select = 0 mode = 0 full_duplex = 1 manual_cs = 0 [spi_board1] modalias = "spidev" max_speed_hz = 33000000 bus_num = 1 chip_select = 0 mode = 0 full_duplex = 1 manual_cs = 0- Then recompile the script file:
fex2bin /root/myscript.txt /boot/script.binReboot the system
reboot2 device files should exist now:
root@orangepizero:~# ls -l /dev/spi* crw------- 1 root root 153, 0 Jan 11 16:31 /dev/spidev0.0 crw------- 1 root root 153, 1 Jan 11 16:31 /dev/spidev1.0Load the gpio module
modprobe gpio-sunxiTo load the module gpio-sunxi automagically load at boot time, add gpio-sunxi to /etc/modules
echo gpio-sunxi >> /etc/modules- Now it is time to install the GW.
cd /root git clone https://github.com/marceloaqno/MySensors.git orangepi cd orangepi/ git pull origin spidev ./configure --spi-spidev-device=/dev/spidev1.0 makeWorking like a charm!
If you tested "/bin/mysgw -d" and all works as expected, make the installation permanent:
make installAdditional
If you want to read data into a controller using a device file (i.e Mycontroller) use the build string below./configure --spi-spidev-device=/dev/spidev1.0 --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyMySensorsGatewayHope this helps!! have fun!!
-
-
Hi All,
I put together the steps to get MySensors running on the OrangePi Zero:
Take note of the SPI part, 1 typo and you will not see /dev/spidev1.0-
Download and Install the ARMbian(debian) OS image
https://www.armbian.com/orange-pi-zero/ -
Install sunxi-tools:
These tools are required to make changes in the boot area of the system
sudo apt-get update sudo apt-get install sunxi-tools- How to add /dev/spidev1.0 (which is required since /dev/spidev0.0 is used for the onboard NAND flash)
cd /boot bin2fex /boot/script.bin /root/myscript.txtNow edit /root/myscript.bin and add/change the following so it looks exactly like the part below:
[spi0] spi_used = 1 spi_cs_bitmap = 1 spi_mosi = port:PC00<3><default><default><default> spi_miso = port:PC01<3><default><default><default> spi_sclk = port:PC02<3><default><default><default> spi_cs0 = port:PC03<3><1><default><default> [spi1] spi_used = 1 spi_cs_bitmap = 1 spi_cs0 = port:PA13<2><1><default><default> spi_sclk = port:PA14<2><default><default><default> spi_mosi = port:PA15<2><default><default><default> spi_miso = port:PA16<2><default><default><default> [spi_devices] spi_dev_num = 2 [spi_board0] modalias = "spidev" max_speed_hz = 33000000 bus_num = 0 chip_select = 0 mode = 0 full_duplex = 1 manual_cs = 0 [spi_board1] modalias = "spidev" max_speed_hz = 33000000 bus_num = 1 chip_select = 0 mode = 0 full_duplex = 1 manual_cs = 0- Then recompile the script file:
fex2bin /root/myscript.txt /boot/script.binReboot the system
reboot2 device files should exist now:
root@orangepizero:~# ls -l /dev/spi* crw------- 1 root root 153, 0 Jan 11 16:31 /dev/spidev0.0 crw------- 1 root root 153, 1 Jan 11 16:31 /dev/spidev1.0Load the gpio module
modprobe gpio-sunxiTo load the module gpio-sunxi automagically load at boot time, add gpio-sunxi to /etc/modules
echo gpio-sunxi >> /etc/modules- Now it is time to install the GW.
cd /root git clone https://github.com/marceloaqno/MySensors.git orangepi cd orangepi/ git pull origin spidev ./configure --spi-spidev-device=/dev/spidev1.0 makeWorking like a charm!
If you tested "/bin/mysgw -d" and all works as expected, make the installation permanent:
make installAdditional
If you want to read data into a controller using a device file (i.e Mycontroller) use the build string below./configure --spi-spidev-device=/dev/spidev1.0 --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyMySensorsGatewayHope this helps!! have fun!!
@Tag great! Thanks for the detailed explanation :clap:
I will add to the instructions page -
-
out of curiousity: this all relates to 3.x kernel in armbian right? which has proprietary stuff in there?
i read somewhere that mainline 4.10 SPI is "work in progress"
-
Instructions page updated, let me know if there is any mistake.
-
Instructions page updated, let me know if there is any mistake.
looks great!! thx!!:thumbsup:
-
Excellent work !!! It finally works, I believe the slight mistake was with the damn SPI device ID. Now that I've enabled /dev/spidev1.0 everything works perfect. Really nice job and awesome commitment to showing people that it's time for them to pull their heads out of their a.... and spend less for way more awesome boards because let's face it, RPi has the greatest community support but it's a nothing more than an expensive closed source crappy board.