Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Development
  3. Mysensors Gateway on OrangePi (Zero) (opi)

Mysensors Gateway on OrangePi (Zero) (opi)

Scheduled Pinned Locked Moved Development
117 Posts 11 Posters 43.1k Views 11 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Tag

    @marceloaqno

    Hi!!, many thanks for the info!! really helpful!
    Made some progress. first I created this table based on this page: http://linux-sunxi.org/GPIO

    Pin - 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 / 15

    Now 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:

    1. load the GPIO kernel module:
    modprobe gpio-sunxi
    
    1. 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 ; done
    

    This 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 unexport
    

    Modified mysgw.cpp to use:

    #define MY_RF24_CE_PIN 2
    #define MY_RF24_CS_PIN 13
    

    And did a clean build:

    make clean
    ./configure
    make
    

    Now 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:PDT
    

    Will do some more testing with an LED today see if the GPIO pin numbering that was created is okay,

    will keep you posted!:

    M Offline
    M Offline
    mihai.aldea
    wrote on last edited by
    #51

    @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 / 495

    Are 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 = 2

    Actually you don't need to use the formula at all with the PA ports, all you have to do is use the trailing number.

    T 1 Reply Last reply
    0
    • M mihai.aldea

      @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 / 495

      Are 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 = 2

      Actually you don't need to use the formula at all with the PA ports, all you have to do is use the trailing number.

      T Offline
      T Offline
      Tag
      wrote on last edited by
      #52

      @mihai.aldea

      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!!

      M 1 Reply Last reply
      0
      • R Offline
        R Offline
        Reza
        wrote on last edited by Reza
        #53

        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

        M 1 Reply Last reply
        0
        • R Reza

          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

          M Offline
          M Offline
          marceloaqno
          Code Contributor
          wrote on last edited by
          #54

          @Reza You need to run:

          modprobe gpio-sunxi
          

          so that /sys/class/gpio/export is created.

          1 Reply Last reply
          0
          • T Tag

            @mihai.aldea

            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!!

            M Offline
            M Offline
            marceloaqno
            Code Contributor
            wrote on last edited by marceloaqno
            #55

            @Tag Does the TMRh20 works in the way your radio is currently connected?

            T 1 Reply Last reply
            0
            • M marceloaqno

              @Tag Does the TMRh20 works in the way your radio is currently connected?

              T Offline
              T Offline
              Tag
              wrote on last edited by Tag
              #56

              @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...

              1 Reply Last reply
              0
              • M Offline
                M Offline
                mihai.aldea
                wrote on last edited by mihai.aldea
                #57

                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)
                
                M T 2 Replies Last reply
                0
                • M mihai.aldea

                  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)
                  
                  M Offline
                  M Offline
                  marceloaqno
                  Code Contributor
                  wrote on last edited by
                  #58

                  @mihai.aldea Could you try the repo I'm working on (https://github.com/marceloaqno/MySensors/tree/spidev marceloaqno-spidev) adding your settings to the examples_linux/mysgw.cpp?

                  #define MY_RF24_CE_PIN 7
                  #define MY_RF24_CS_PIN 0
                  
                  M 1 Reply Last reply
                  0
                  • M mihai.aldea

                    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)
                    
                    T Offline
                    T Offline
                    Tag
                    wrote on last edited by Tag
                    #59

                    @mihai.aldea

                    Hmmm.... checked the docs again and guess what. the 26 pin header on the OPI Zero has SPI1.... instead of SPI0

                    Expansion Port

                    The Orange Pi Zero has a 26-pin, 0.1" unpopulated connector with several low-speed interfaces.
                    2x13 Header
                    1	3.3V	           2	5V
                    3	TWI0_SDA / PA12	   4	5V
                    5	TWI0_SCK / PA11	   6	GND
                    7	PWM1 / PA06	       8	UART1_TX / PG06
                    9	GND	               10	UART1_RX / PG07
                    11	UART2_RX / PA01	   12	SIM_CLK/PA_EINT7 / PA07
                    13	UART2_TX / PA00	   14	GND
                    15	UART2_CTS / PA03   16	TWI1-SDA / PA19
                    17	3.3V	           18	TWI1-SCK / PA18
                    19	SPI1_MOSI / PA15   20	GND
                    21	SPI1_MISO / PA16   22	UART2_RTS / PA02
                    23	SPI1_CLK / PA14    24	SPI1_CS / PA13
                    25	GND	               26	SIM_DET/PA_EINT10 / PA10
                    

                    From http://linux-sunxi.org/Xunlong_Orange_Pi_Zero
                    If i look at /dev I only see spi0, which is most probably used for the onboard flash...

                    root@orangepizero:/# ll /dev | grep -i spi
                    crw------- 1 root root    153,   0 Jan  8 11:12 spidev0.0
                    

                    So now i need to figure out a way to get SPI1 up and running

                    1 Reply Last reply
                    0
                    • M marceloaqno

                      @mihai.aldea Could you try the repo I'm working on (https://github.com/marceloaqno/MySensors/tree/spidev marceloaqno-spidev) adding your settings to the examples_linux/mysgw.cpp?

                      #define MY_RF24_CE_PIN 7
                      #define MY_RF24_CS_PIN 0
                      
                      M Offline
                      M Offline
                      mihai.aldea
                      wrote on last edited by
                      #60

                      @marceloaqno Here's the output:

                      ./MySensors.h:258:2: error: #error No support for nRF24 radio on this platform
                       #error No support for nRF24 radio on this platform
                        ^
                      In file included from ./drivers/RF24/RF24.cpp:23:0,
                                       from ./MySensors.h:294,
                                       from examples_linux/mysgw.cpp:77:
                      ./drivers/RF24/RF24.h:52:17: fatal error: SPI.h: No such file or directory
                       #include <SPI.h>
                                       ^
                      compilation terminated.
                      Makefile:98: recipe for target 'build/examples_linux/mysgw.o' failed
                      make: *** [build/examples_linux/mysgw.o] Error 1
                      
                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        mihai.aldea
                        wrote on last edited by
                        #61

                        @Tag Use this info:
                        http://linux-sunxi.org/Sunxi-tools
                        To export /boot/script.bin, edit the output file and enable SPI1, then compile it back and reboot your OPi with the SPI1 active.

                        If you haven't done this before, it's quite simple.

                        apt-get install sunxi-tools
                        cd ~
                        bin2fex /boot/script.bin > script.fex
                        

                        Edit the script.fex file, find the [spi1] section and change spi_used = 0 to spi_used = 1. Save the file and exit.
                        Then

                        fex2bin script.fex > /boot/script.bin
                        

                        Reboot, then you should have the SPI1 active.

                        T 1 Reply Last reply
                        0
                        • R Offline
                          R Offline
                          Reza
                          wrote on last edited by
                          #62

                          @marceloaqno
                          i have error yet
                          orangepi is a good board. please work at this board and run mysensors gateway on this, i follow this topic when you can fix this on orange pi . thank you

                          M 1 Reply Last reply
                          0
                          • M mihai.aldea

                            @Tag Use this info:
                            http://linux-sunxi.org/Sunxi-tools
                            To export /boot/script.bin, edit the output file and enable SPI1, then compile it back and reboot your OPi with the SPI1 active.

                            If you haven't done this before, it's quite simple.

                            apt-get install sunxi-tools
                            cd ~
                            bin2fex /boot/script.bin > script.fex
                            

                            Edit the script.fex file, find the [spi1] section and change spi_used = 0 to spi_used = 1. Save the file and exit.
                            Then

                            fex2bin script.fex > /boot/script.bin
                            

                            Reboot, then you should have the SPI1 active.

                            T Offline
                            T Offline
                            Tag
                            wrote on last edited by Tag
                            #63

                            @mihai.aldea

                            Yep already found it :) problem was the old version of the tools, it was not able to decompile the script.bin file...

                            [update]

                            • modified the script file,
                            • changed spi_used = 1
                            • compiled back and rebooted

                            just 1 device file in called spidev0.0 no new device files are created..... :(

                            dmesg output:

                            [    0.814287] sunxi_spi_chan_cfg()1376 - [spi-0] has no spi_regulator.
                            [    0.814316] sunxi_spi_chan_cfg()1376 - [spi-1] has no spi_regulator.
                            [    0.815569] spi spi0: master is unqueued, this is deprecated
                            [    0.816776] spi spi1: master is unqueued, this is deprecated
                            

                            Thx, will keep you posted!

                            1 Reply Last reply
                            0
                            • R Reza

                              @marceloaqno
                              i have error yet
                              orangepi is a good board. please work at this board and run mysensors gateway on this, i follow this topic when you can fix this on orange pi . thank you

                              M Offline
                              M Offline
                              marceloaqno
                              Code Contributor
                              wrote on last edited by
                              #64

                              @Reza Was /sys/class/gpio/export created after modprobe gpio-sunxi?

                              @mihai-aldea Could you send the complete make and configure output so I can check if your system is correctly detected?

                              M R 2 Replies Last reply
                              0
                              • M marceloaqno

                                @Reza Was /sys/class/gpio/export created after modprobe gpio-sunxi?

                                @mihai-aldea Could you send the complete make and configure output so I can check if your system is correctly detected?

                                M Offline
                                M Offline
                                mihai.aldea
                                wrote on last edited by
                                #65

                                @marceloaqno said:

                                @mihai-aldea Could you send the complete make and configure output so I can check if your system is correctly detected?

                                Here it is

                                root@opi-pc-1:~/rf24opi/MySensors# ./configure --soc=H3
                                [OK] init system detected: systemd
                                [SECTION] Saving configuration.
                                [SECTION] Cleaning previous builds.
                                [OK] Finished.
                                root@opi-pc-1:~/rf24opi/MySensors# 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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -c drivers/Linux/noniso.cpp -o build/drivers/Linux/noniso.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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -c drivers/Linux/EthernetClient.cpp -o build/drivers/Linux/EthernetClient.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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -c drivers/Linux/compatibility.cpp -o build/drivers/Linux/compatibility.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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -c drivers/Linux/Stream.cpp -o build/drivers/Linux/Stream.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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o
                                In file included from examples_linux/mysgw.cpp:77:0:
                                ./MySensors.h:258:2: error: #error No support for nRF24 radio on this platform
                                 #error No support for nRF24 radio on this platform
                                  ^
                                In file included from ./drivers/RF24/RF24.cpp:23:0,
                                                 from ./MySensors.h:294,
                                                 from examples_linux/mysgw.cpp:77:
                                ./drivers/RF24/RF24.h:52:17: fatal error: SPI.h: No such file or directory
                                 #include <SPI.h>
                                                 ^
                                compilation terminated.
                                Makefile:98: recipe for target 'build/examples_linux/mysgw.o' failed
                                make: *** [build/examples_linux/mysgw.o] Error 1
                                
                                M 1 Reply Last reply
                                0
                                • M mihai.aldea

                                  @marceloaqno said:

                                  @mihai-aldea Could you send the complete make and configure output so I can check if your system is correctly detected?

                                  Here it is

                                  root@opi-pc-1:~/rf24opi/MySensors# ./configure --soc=H3
                                  [OK] init system detected: systemd
                                  [SECTION] Saving configuration.
                                  [SECTION] Cleaning previous builds.
                                  [OK] Finished.
                                  root@opi-pc-1:~/rf24opi/MySensors# 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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -c drivers/Linux/noniso.cpp -o build/drivers/Linux/noniso.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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -c drivers/Linux/EthernetClient.cpp -o build/drivers/Linux/EthernetClient.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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -c drivers/Linux/compatibility.cpp -o build/drivers/Linux/compatibility.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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -c drivers/Linux/Stream.cpp -o build/drivers/Linux/Stream.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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -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  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o
                                  In file included from examples_linux/mysgw.cpp:77:0:
                                  ./MySensors.h:258:2: error: #error No support for nRF24 radio on this platform
                                   #error No support for nRF24 radio on this platform
                                    ^
                                  In file included from ./drivers/RF24/RF24.cpp:23:0,
                                                   from ./MySensors.h:294,
                                                   from examples_linux/mysgw.cpp:77:
                                  ./drivers/RF24/RF24.h:52:17: fatal error: SPI.h: No such file or directory
                                   #include <SPI.h>
                                                   ^
                                  compilation terminated.
                                  Makefile:98: recipe for target 'build/examples_linux/mysgw.o' failed
                                  make: *** [build/examples_linux/mysgw.o] Error 1
                                  
                                  M Offline
                                  M Offline
                                  marceloaqno
                                  Code Contributor
                                  wrote on last edited by marceloaqno
                                  #66

                                  @mihai.aldea I think you're not in the right branch, could you start from scratch like this:

                                  rm -rf marceloaqno-spidev
                                  git clone https://github.com/marceloaqno/MySensors marceloaqno-spidev
                                  cd marceloaqno-spidev
                                  git checkout spidev
                                  ./configure
                                  make
                                  
                                  1 Reply Last reply
                                  0
                                  • M marceloaqno

                                    @Reza Was /sys/class/gpio/export created after modprobe gpio-sunxi?

                                    @mihai-aldea Could you send the complete make and configure output so I can check if your system is correctly detected?

                                    R Offline
                                    R Offline
                                    Reza
                                    wrote on last edited by
                                    #67

                                    @marceloaqno
                                    i have not any folder "gpio" in class folder .
                                    what am i do ? :(
                                    can you create a new topic with all steps after full fix on orange pi ?
                                    thank you. i follow this topic

                                    1 Reply Last reply
                                    0
                                    • M Offline
                                      M Offline
                                      mihai.aldea
                                      wrote on last edited by mihai.aldea
                                      #68

                                      @marceloaqno You were right, I wasn't using the correct branch. Your instructions though did not work for me

                                      root@opi-pc-1:~# git clone https://github.com/marceloaqno/MySensors/tree/spidev marceloaqno-spidev
                                      Cloning into 'marceloaqno-spidev'...
                                      fatal: repository 'https://github.com/marceloaqno/MySensors/tree/spidev/' not found
                                      

                                      Anyway, I found another way:

                                      git clone https://github.com/marceloaqno/MySensors.git marceloaqno-spidev
                                      cd marceloaqno-spidev/
                                      git pull origin spidev
                                      ./configure
                                      make
                                      

                                      This time it compiled successfuly, but when I fired up mysgw all I got was:

                                      mysgw: Starting gateway...
                                      mysgw: Protocol version - 2.2.0-beta
                                      

                                      with no other output.
                                      Just to be sure we're on the same note, what is the wiring schematic I should use? When I first started to tinker with RF24 on OPi I found at least two wiring schematics.
                                      For reference here's the gpio readall on my OPi PC:

                                       +-----+-----+----------+------+---+-Orange Pi+---+---+------+---------+-----+--+
                                       | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
                                       +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
                                       |     |     |     3.3v |      |   |  1 || 2  |   |      | 5v       |     |     |
                                       |  12 |   8 |    SDA.0 | ALT5 | 0 |  3 || 4  |   |      | 5V       |     |     |
                                       |  11 |   9 |    SCL.0 | ALT5 | 0 |  5 || 6  |   |      | 0v       |     |     |
                                       |   6 |   7 |   GPIO.7 | ALT3 | 0 |  7 || 8  | 0 | ALT4 | TxD3     | 15  | 13  |
                                       |     |     |       0v |      |   |  9 || 10 | 0 | ALT4 | RxD3     | 16  | 14  |
                                       |   1 |   0 |     RxD2 | ALT5 | 0 | 11 || 12 | 0 | ALT3 | GPIO.1   | 1   | 110 |
                                       |   0 |   2 |     TxD2 | ALT5 | 1 | 13 || 14 |   |      | 0v       |     |     |
                                       |   3 |   3 |     CTS2 | ALT5 | 0 | 15 || 16 | 0 | ALT3 | GPIO.4   | 4   | 68  |
                                       |     |     |     3.3v |      |   | 17 || 18 | 0 | ALT3 | GPIO.5   | 5   | 71  |
                                       |  64 |  12 |     MOSI | ALT4 | 0 | 19 || 20 |   |      | 0v       |     |     |
                                       |  65 |  13 |     MISO | ALT4 | 0 | 21 || 22 | 0 | ALT5 | RTS2     | 6   | 2   |
                                       |  66 |  14 |     SCLK | ALT4 | 0 | 23 || 24 | 0 | ALT4 | CE0      | 10  | 67  |
                                       |     |     |       0v |      |   | 25 || 26 | 0 | ALT3 | GPIO.11  | 11  | 21  |
                                       |  19 |  30 |    SDA.1 | ALT4 | 0 | 27 || 28 | 0 | ALT4 | SCL.1    | 31  | 18  |
                                       |   7 |  21 |  GPIO.21 | ALT3 | 0 | 29 || 30 |   |      | 0v       |     |     |
                                       |   8 |  22 |  GPIO.22 | ALT3 | 0 | 31 || 32 | 0 | ALT5 | RTS1     | 26  | 200 |
                                       |   9 |  23 |  GPIO.23 |  OUT | 0 | 33 || 34 |   |      | 0v       |     |     |
                                       |  10 |  24 |  GPIO.24 |  OUT | 1 | 35 || 36 | 0 | ALT5 | CTS1     | 27  | 201 |
                                       |  20 |  25 |  GPIO.25 | ALT3 | 0 | 37 || 38 | 0 | ALT5 | TxD1     | 28  | 198 |
                                       |     |     |       0v |      |   | 39 || 40 | 0 | ALT5 | RxD1     | 29  | 199 |
                                       +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
                                       | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
                                       +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+-----+
                                      
                                      T 1 Reply Last reply
                                      0
                                      • M mihai.aldea

                                        @marceloaqno You were right, I wasn't using the correct branch. Your instructions though did not work for me

                                        root@opi-pc-1:~# git clone https://github.com/marceloaqno/MySensors/tree/spidev marceloaqno-spidev
                                        Cloning into 'marceloaqno-spidev'...
                                        fatal: repository 'https://github.com/marceloaqno/MySensors/tree/spidev/' not found
                                        

                                        Anyway, I found another way:

                                        git clone https://github.com/marceloaqno/MySensors.git marceloaqno-spidev
                                        cd marceloaqno-spidev/
                                        git pull origin spidev
                                        ./configure
                                        make
                                        

                                        This time it compiled successfuly, but when I fired up mysgw all I got was:

                                        mysgw: Starting gateway...
                                        mysgw: Protocol version - 2.2.0-beta
                                        

                                        with no other output.
                                        Just to be sure we're on the same note, what is the wiring schematic I should use? When I first started to tinker with RF24 on OPi I found at least two wiring schematics.
                                        For reference here's the gpio readall on my OPi PC:

                                         +-----+-----+----------+------+---+-Orange Pi+---+---+------+---------+-----+--+
                                         | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
                                         +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
                                         |     |     |     3.3v |      |   |  1 || 2  |   |      | 5v       |     |     |
                                         |  12 |   8 |    SDA.0 | ALT5 | 0 |  3 || 4  |   |      | 5V       |     |     |
                                         |  11 |   9 |    SCL.0 | ALT5 | 0 |  5 || 6  |   |      | 0v       |     |     |
                                         |   6 |   7 |   GPIO.7 | ALT3 | 0 |  7 || 8  | 0 | ALT4 | TxD3     | 15  | 13  |
                                         |     |     |       0v |      |   |  9 || 10 | 0 | ALT4 | RxD3     | 16  | 14  |
                                         |   1 |   0 |     RxD2 | ALT5 | 0 | 11 || 12 | 0 | ALT3 | GPIO.1   | 1   | 110 |
                                         |   0 |   2 |     TxD2 | ALT5 | 1 | 13 || 14 |   |      | 0v       |     |     |
                                         |   3 |   3 |     CTS2 | ALT5 | 0 | 15 || 16 | 0 | ALT3 | GPIO.4   | 4   | 68  |
                                         |     |     |     3.3v |      |   | 17 || 18 | 0 | ALT3 | GPIO.5   | 5   | 71  |
                                         |  64 |  12 |     MOSI | ALT4 | 0 | 19 || 20 |   |      | 0v       |     |     |
                                         |  65 |  13 |     MISO | ALT4 | 0 | 21 || 22 | 0 | ALT5 | RTS2     | 6   | 2   |
                                         |  66 |  14 |     SCLK | ALT4 | 0 | 23 || 24 | 0 | ALT4 | CE0      | 10  | 67  |
                                         |     |     |       0v |      |   | 25 || 26 | 0 | ALT3 | GPIO.11  | 11  | 21  |
                                         |  19 |  30 |    SDA.1 | ALT4 | 0 | 27 || 28 | 0 | ALT4 | SCL.1    | 31  | 18  |
                                         |   7 |  21 |  GPIO.21 | ALT3 | 0 | 29 || 30 |   |      | 0v       |     |     |
                                         |   8 |  22 |  GPIO.22 | ALT3 | 0 | 31 || 32 | 0 | ALT5 | RTS1     | 26  | 200 |
                                         |   9 |  23 |  GPIO.23 |  OUT | 0 | 33 || 34 |   |      | 0v       |     |     |
                                         |  10 |  24 |  GPIO.24 |  OUT | 1 | 35 || 36 | 0 | ALT5 | CTS1     | 27  | 201 |
                                         |  20 |  25 |  GPIO.25 | ALT3 | 0 | 37 || 38 | 0 | ALT5 | TxD1     | 28  | 198 |
                                         |     |     |       0v |      |   | 39 || 40 | 0 | ALT5 | RxD1     | 29  | 199 |
                                         +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
                                         | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
                                         +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+-----+
                                        
                                        T Offline
                                        T Offline
                                        Tag
                                        wrote on last edited by Tag
                                        #69

                                        @mihai.aldea

                                        Just a question the command "gpio readall" does that does show the actual status of the system, or is it just a fixed table that is printed on screen....

                                        Look at mine:

                                        root@orangepizero:~# gpio readall
                                         +-----+-----+----------+------+---+-Orange Pi+---+---+------+---------+-----+--+
                                         | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
                                         +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
                                         |     |     |     3.3v |      |   |  1 || 2  |   |      | 5v       |     |     |
                                         |  12 |   8 |    SDA.0 | ALT5 | 0 |  3 || 4  |   |      | 5V       |     |     |
                                         |  11 |   9 |    SCL.0 | ALT5 | 0 |  5 || 6  |   |      | 0v       |     |     |
                                         |   6 |   7 |   GPIO.7 | ALT3 | 0 |  7 || 8  | 1 | OUT  | TxD3     | 15  | 13  |
                                         |     |     |       0v |      |   |  9 || 10 | 0 | ALT5 | RxD3     | 16  | 14  |
                                         |   1 |   0 |     RxD2 | ALT5 | 0 | 11 || 12 | 0 | ALT3 | GPIO.1   | 1   | 110 |
                                         |   0 |   2 |     TxD2 | ALT5 | 0 | 13 || 14 |   |      | 0v       |     |     |
                                         |   3 |   3 |     CTS2 | ALT3 | 0 | 15 || 16 | 0 | ALT3 | GPIO.4   | 4   | 68  |
                                         |     |     |     3.3v |      |   | 17 || 18 | 0 | ALT3 | GPIO.5   | 5   | 71  |
                                         |  64 |  12 |     MOSI | ALT4 | 0 | 19 || 20 |   |      | 0v       |     |     |
                                         |  65 |  13 |     MISO | ALT4 | 0 | 21 || 22 | 0 | OUT  | RTS2     | 6   | 2   |
                                         |  66 |  14 |     SCLK | ALT4 | 0 | 23 || 24 | 0 | ALT4 | CE0      | 10  | 67  |
                                         |     |     |       0v |      |   | 25 || 26 | 0 | ALT3 | GPIO.11  | 11  | 21  |
                                         |  19 |  30 |    SDA.1 | ALT4 | 0 | 27 || 28 | 0 | ALT4 | SCL.1    | 31  | 18  |
                                         |   7 |  21 |  GPIO.21 | ALT3 | 0 | 29 || 30 |   |      | 0v       |     |     |
                                         |   8 |  22 |  GPIO.22 | ALT3 | 0 | 31 || 32 | 0 | ALT3 | RTS1     | 26  | 200 |
                                         |   9 |  23 |  GPIO.23 |  OUT | 0 | 33 || 34 |   |      | 0v       |     |     |
                                         |  10 |  24 |  GPIO.24 |  OUT | 1 | 35 || 36 | 0 | ALT3 | CTS1     | 27  | 201 |
                                         |  20 |  25 |  GPIO.25 |  OUT | 1 | 37 || 38 | 0 | ALT5 | TxD1     | 28  | 198 |
                                         |     |     |       0v |      |   | 39 || 40 | 0 | ALT5 | RxD1     | 29  | 199 |
                                         +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
                                         | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
                                         +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+-----+
                                        

                                        It is the same... and shows 40 pins while the OPI Zero only has 26.......
                                        There are some small differences between our tables in the naming column... so i guess it really reads the status / names of the pins.. Anyhow still strange that 40 pins are shown instead of 26 for the zero..

                                        1 Reply Last reply
                                        0
                                        • pansenP Offline
                                          pansenP Offline
                                          pansen
                                          wrote on last edited by
                                          #70

                                          @marceloaqno: are you planning to create a pull request? also, like @Reza suggested i think it would be smart to gather all information somehwhere, unfortunately mysensors does not seem to have a wiki. can we write an article somehow? i could take care of that.

                                          Orange Pi Plus 2e connected to nrf24 PA via SPI running git-development MySensors gateway, OpenHAB2, mosquitto and MySQL persistence.

                                          M 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          10

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular