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.2k 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.
  • 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
            • pansenP pansen

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

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

              @mihai.aldea sorry about the github link mistake.

              @pansen Yes, I will.

              Is the orientation of the pins correct in the image?
              0_1483990616295_Orange-Pi-Zero-Description.jpg

              T 1 Reply Last reply
              0
              • M marceloaqno

                @mihai.aldea sorry about the github link mistake.

                @pansen Yes, I will.

                Is the orientation of the pins correct in the image?
                0_1483990616295_Orange-Pi-Zero-Description.jpg

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

                @marceloaqno

                Nope pinout is reversed!,

                The link below shows the correct one!
                https://oshlab.com/orange-pi-zero-pinout/

                M 1 Reply Last reply
                0
                • T Tag

                  @marceloaqno

                  Nope pinout is reversed!,

                  The link below shows the correct one!
                  https://oshlab.com/orange-pi-zero-pinout/

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

                  @Tag Oops, did I get it right this time (I reuploaded the image)?

                  T 1 Reply Last reply
                  0
                  • T Offline
                    T Offline
                    Tag
                    wrote on last edited by
                    #74

                    @marceloaqno

                    Build the RF24 lib, without erros on the OPI Zero. and am now able to start the tools and radio seems to be recognised!. (was a faulty breadboard wire.... :( )

                    Used the follwing to for the radio:

                    RF24 radio(2,0);
                    

                    Output from gettingstarted:

                    root@orangepizero:~/rf24libs/RF24/examples_linux# ./gettingstarted
                    RF24/examples/GettingStarted/
                    STATUS           = 0x00 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=0 TX_FULL=0
                    RX_ADDR_P0-1     = 0x0000000000 0xff00000000
                    RX_ADDR_P2-5     = 0xff 0xff 0xff 0xff
                    TX_ADDR          = 0xffffffffff
                    RX_PW_P0-6       = 0xff 0xff 0xff 0xff 0xff 0xff
                    EN_AA            = 0xff
                    EN_RXADDR        = 0xff
                    RF_CH            = 0xbc
                    RF_SETUP         = 0xff
                    CONFIG           = 0xff
                    DYNPD/FEATURE    = 0xff 0xff
                    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 1 Reply Last reply
                    0
                    • T Tag

                      @marceloaqno

                      Build the RF24 lib, without erros on the OPI Zero. and am now able to start the tools and radio seems to be recognised!. (was a faulty breadboard wire.... :( )

                      Used the follwing to for the radio:

                      RF24 radio(2,0);
                      

                      Output from gettingstarted:

                      root@orangepizero:~/rf24libs/RF24/examples_linux# ./gettingstarted
                      RF24/examples/GettingStarted/
                      STATUS           = 0x00 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=0 TX_FULL=0
                      RX_ADDR_P0-1     = 0x0000000000 0xff00000000
                      RX_ADDR_P2-5     = 0xff 0xff 0xff 0xff
                      TX_ADDR          = 0xffffffffff
                      RX_PW_P0-6       = 0xff 0xff 0xff 0xff 0xff 0xff
                      EN_AA            = 0xff
                      EN_RXADDR        = 0xff
                      RF_CH            = 0xbc
                      RF_SETUP         = 0xff
                      CONFIG           = 0xff
                      DYNPD/FEATURE    = 0xff 0xff
                      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 marceloaqno
                      #75

                      @Tag Could you fill this table with your current setup?

                      nRF24L01 | OrangePi  | OrangePi
                               | phyPin    | GPIO
                      _________|_______________________
                      VCC      | 3V3-PWR   | 3V3-PWR
                      GND      | GND       | GND
                      CSN      |           |
                      CE       |           |
                      MOSI     | 19        | 15
                      SCK      | 23        | 14
                      MISO     | 21        | 16
                      
                      T 1 Reply Last reply
                      0
                      • M marceloaqno

                        @Tag Could you fill this table with your current setup?

                        nRF24L01 | OrangePi  | OrangePi
                                 | phyPin    | GPIO
                        _________|_______________________
                        VCC      | 3V3-PWR   | 3V3-PWR
                        GND      | GND       | GND
                        CSN      |           |
                        CE       |           |
                        MOSI     | 19        | 15
                        SCK      | 23        | 14
                        MISO     | 21        | 16
                        
                        T Offline
                        T Offline
                        Tag
                        wrote on last edited by
                        #76

                        @marceloaqno

                        Sure here it is,

                        nRF24L01 | OrangePi  | OrangePi
                                 | phyPin    | GPIO
                        _________|_______________________
                        VCC      | 3V3-PWR   | 3V3-PWR
                        GND      | GND       | GND
                        CSN      | 24        | 13
                        CE       | 22        | 2
                        MOSI     | 19        | 15
                        SCK      | 23        | 14
                        MISO     | 21        | 16
                        

                        Radio seems to be recognised, still need to test data transfer...

                        M 1 Reply Last reply
                        0
                        • T Tag

                          @marceloaqno

                          Sure here it is,

                          nRF24L01 | OrangePi  | OrangePi
                                   | phyPin    | GPIO
                          _________|_______________________
                          VCC      | 3V3-PWR   | 3V3-PWR
                          GND      | GND       | GND
                          CSN      | 24        | 13
                          CE       | 22        | 2
                          MOSI     | 19        | 15
                          SCK      | 23        | 14
                          MISO     | 21        | 16
                          

                          Radio seems to be recognised, still need to test data transfer...

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

                          I created the draft for the official article: https://www.mysensors.org/build/orange

                          mfalkviddM T R 3 Replies Last reply
                          3
                          • M marceloaqno

                            I created the draft for the official article: https://www.mysensors.org/build/orange

                            mfalkviddM Offline
                            mfalkviddM Offline
                            mfalkvidd
                            Mod
                            wrote on last edited by
                            #78

                            @marceloaqno and everyone else involved in this effort: great work! I love when people come together to solve a problem.

                            jirmJ 1 Reply Last reply
                            1
                            • mfalkviddM mfalkvidd

                              @marceloaqno and everyone else involved in this effort: great work! I love when people come together to solve a problem.

                              jirmJ Offline
                              jirmJ Offline
                              jirm
                              wrote on last edited by jirm
                              #79

                              @marceloaqno
                              @mfalkvidd @Tag @pansen @Reza @mihai.aldea @hausinger

                              Wooow woow woow !!!

                              Only few days "off" and the problem to make work Mysensors on OPI are solved.

                              So many many thanks to all people here that have been involved to make that OPI good little boards can work with Mysensors.

                              This is the proof that when good people join can reach the most difficult achievements and all humanity can benefit.

                              Awesome work !

                              Regards

                              1 Reply Last reply
                              1
                              • M marceloaqno

                                I created the draft for the official article: https://www.mysensors.org/build/orange

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

                                @marceloaqno

                                Great work!!! the GPIO part most probably needs some additions for OPI zero on the topic of the spidev1.0 driver and the GPIO pins, send it to you once i got everything documented.

                                Really many thanks for your hard work here!!

                                1 Reply Last reply
                                0
                                • R Offline
                                  R Offline
                                  Reza
                                  wrote on last edited by
                                  #81
                                  This post is deleted!
                                  1 Reply Last reply
                                  0
                                  • M marceloaqno

                                    I created the draft for the official article: https://www.mysensors.org/build/orange

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

                                    @marceloaqno
                                    thank you. but i have error:

                                    root@OrangePI:~# ls /sys/class/gpio/export
                                    ls: cannot access /sys/class/gpio/export: No such file or directory
                                    root@OrangePI:~# modprobe gpio-sunxi
                                    root@OrangePI:~# ls /sys/class/gpio/export
                                    ls: cannot access /sys/class/gpio/export: No such file or directory
                                    
                                    

                                    in class folder i dont have gpio folder (i use a orangepi one with ubuntu os )
                                    0_1484050121184_lll;l.jpg

                                    i

                                    T 1 Reply Last reply
                                    0
                                    • R Reza

                                      @marceloaqno
                                      thank you. but i have error:

                                      root@OrangePI:~# ls /sys/class/gpio/export
                                      ls: cannot access /sys/class/gpio/export: No such file or directory
                                      root@OrangePI:~# modprobe gpio-sunxi
                                      root@OrangePI:~# ls /sys/class/gpio/export
                                      ls: cannot access /sys/class/gpio/export: No such file or directory
                                      
                                      

                                      in class folder i dont have gpio folder (i use a orangepi one with ubuntu os )
                                      0_1484050121184_lll;l.jpg

                                      i

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

                                      @Reza

                                      You need to create the files after each boot.

                                      After the modprobe, Issue this command:

                                      sudo 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
                                      

                                      This will get you the files.

                                      R 2 Replies Last reply
                                      0
                                      • R Offline
                                        R Offline
                                        Reza
                                        wrote on last edited by
                                        #84
                                        root@OrangePI:~# git clone https://github.com/marceloaqno/MySensors.git orangepi               Cloning into 'orangepi'...
                                        remote: Counting objects: 13858, done.
                                        remote: Compressing objects: 100% (50/50), done.
                                        remote: Total 13858 (delta 17), reused 0 (delta 0), pack-reused 13808
                                        Receiving objects: 100% (13858/13858), 9.68 MiB | 79.00 KiB/s, done.
                                        Resolving deltas: 100% (8304/8304), done.
                                        Checking connectivity... done.
                                        root@OrangePI:~# cd orangepi/
                                        root@OrangePI:~/orangepi# git pull origin spidev
                                        From https://github.com/marceloaqno/MySensors
                                         * branch            spidev     -> FETCH_HEAD
                                        Updating 570b607..63e1a81
                                        Fast-forward
                                         Makefile                                          |  16 +++
                                         MyConfig.h                                        |   4 +
                                         MySensors.h                                       |   2 +-
                                         configure                                         |  79 ++++++++++---
                                         core/MyHwLinuxGeneric.cpp                         |  17 +++
                                         core/MyHwLinuxGeneric.h                           |  12 +-
                                         core/MyHwRPi.cpp                                  |   1 +
                                         core/MyHwRPi.h                                    |  28 -----
                                         core/MyMainLinux.cpp                              |  30 ++---
                                         drivers/{RPi => BCM}/SPI.cpp                      |  10 +-
                                         drivers/{RPi => BCM}/SPI.h                        | 116 ++++++++++++-------
                                         drivers/{RPi => BCM}/Wire.cpp                     |   0
                                         drivers/{RPi => BCM}/Wire.h                       |   1 +
                                         drivers/Linux/Arduino.h                           |  22 +++-
                                         drivers/Linux/GPIO.cpp                            | 119 ++++++++++++++++++++
                                         drivers/Linux/GPIO.h                              |  47 ++++++++
                                         drivers/Linux/Stream.h                            |   1 +
                                         drivers/Linux/compatibility.cpp                   |  11 +-
                                         drivers/{RPi/rpi_util.cpp => Linux/interrupt.cpp} | 144 +++++-------------------
                                         drivers/Linux/interrupt.h                         |  45 ++++++++
                                         drivers/RF24/RF24.cpp                             |   4 +-
                                         drivers/RF24/RF24.h                               |   2 +-
                                         drivers/RPi/RPi.cpp                               |  59 ++++++++++
                                         drivers/RPi/RPi.h                                 |  22 ++++
                                         drivers/RPi/piHiPri.c                             |  49 --------
                                         drivers/RPi/rpi_util.h                            |  76 -------------
                                         drivers/RPi/wiring.cpp                            |  72 ++++++++++++
                                         drivers/RPi/wiring.h                              |  24 ++++
                                         drivers/SPIDEV/SPI.cpp                            | 223 +++++++++++++++++++++++++++++++++++++
                                         drivers/SPIDEV/SPI.h                              | 178 +++++++++++++++++++++++++++++
                                         30 files changed, 1054 insertions(+), 360 deletions(-)
                                         rename drivers/{RPi => BCM}/SPI.cpp (100%)
                                         rename drivers/{RPi => BCM}/SPI.h (62%)
                                         rename drivers/{RPi => BCM}/Wire.cpp (100%)
                                         rename drivers/{RPi => BCM}/Wire.h (99%)
                                         create mode 100644 drivers/Linux/GPIO.cpp
                                         create mode 100644 drivers/Linux/GPIO.h
                                         rename drivers/{RPi/rpi_util.cpp => Linux/interrupt.cpp} (63%)
                                         create mode 100644 drivers/Linux/interrupt.h
                                         create mode 100644 drivers/RPi/RPi.cpp
                                         create mode 100644 drivers/RPi/RPi.h
                                         delete mode 100644 drivers/RPi/piHiPri.c
                                         delete mode 100644 drivers/RPi/rpi_util.h
                                         create mode 100644 drivers/RPi/wiring.cpp
                                         create mode 100644 drivers/RPi/wiring.h
                                         create mode 100644 drivers/SPIDEV/SPI.cpp
                                         create mode 100644 drivers/SPIDEV/SPI.h
                                        root@OrangePI:~/orangepi# ./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@OrangePI:~/orangepi# 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_ARCH_ORANGEPI  -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 -DLINUX_ARCH_ORANGEPI  -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 -DLINUX_ARCH_ORANGEPI  -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_ARCH_ORANGEPI  -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_ARCH_ORANGEPI  -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_ARCH_ORANGEPI  -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_ARCH_ORANGEPI  -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_ARCH_ORANGEPI  -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 -DLINUX_ARCH_ORANGEPI  -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_ARCH_ORANGEPI  -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 -DLINUX_ARCH_ORANGEPI  -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_ARCH_ORANGEPI  -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_ARCH_ORANGEPI  -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:~/orangepi#```
                                        1 Reply Last reply
                                        0
                                        • T Tag

                                          @Reza

                                          You need to create the files after each boot.

                                          After the modprobe, Issue this command:

                                          sudo 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
                                          

                                          This will get you the files.

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

                                          @Tag

                                          root@OrangePI:~/orangepi# sudo 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
                                          -bash: syntax error near unexpected token `do'
                                          root@OrangePI:~/orangepi# ```
                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          21

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.1k

                                          Posts


                                          Copyright 2025 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