šŸ’¬ Building a Orange Pi Gateway


  • Admin

    This thread contains comments for the article "Building a Orange Pi Gateway" posted on MySensors.org.



  • Hi!,

    Found a typo: ./condigure --spi-spidev-device=/dev/spidev1.0 ,should be configure

    Great work!! šŸ‘



  • @marceloaqno: I'm in the process of enabling SPI1 (and nrf24 subsequently) on the OPI Plus2e and it seems there are some hardware modifications necessary...I'd like to document on the way and when I am finished submit it somehow so it can be included here. Any suggestions for that?


  • Code Contributor

    @pansen You could document your steps here and I'll update the building guide. If changes to the code are required, please send a PR to the development branch.



  • @marceloaqno: ok so here are my conclusions:
    After going through the schematics of the OPi Plus2e I realized that the H3 has dedicated pins for NAND/eMMC, which is probably not the case for the H2+ in the OPi zero. They used the pins of SPI1 for a status LED and a "MUTE" net, which is not connected anywhere so at first I was like "wtf?"...
    So, the SPI0 is free for usage out of the box and the .fex does not need to be modified. Summed up:

    If the OPi to be used has "SPI0" in the GPIO header, no .fex modifications are necessary. CE and CN/CS/CSN pin can be chosen freely (?), I picked it like this:
    ce - gray - pa13 - PHYSICAL pin8 - LOGICAL pin13 (1-1)*32 + 13
    cn - blue - pa14 - PHYSICAL pin10 - LOGICAL pin14 (1-1)*32 + 14
    If another pin is chosen, the pin number can be calculated with that formula: (position of letter in alphabet - 1) * 32 + pin number (from: https://linux-sunxi.org/GPIO)
    The pinout of the connector can be found here: https://linux-sunxi.org/Xunlong_Orange_Pi_Plus_2E#Expansion_Port (SPI0 pins are PC0-PC2 or 19,21,23)
    After connecting the physical pins 8,10,19,21 and 23 to the nrf24 (and pin 1 for 3.3v), following command was sufficient to set up mysgw and get the nrf24 to respond:
    ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=13 --my-rf24-cs-pin=14



  • hello
    I build this and work great for my OrangePI PC+ but I do not know how to integrate it in domoticz???
    Can you help me please
    thank's for you good work



  • @lecintre: I just installed domoticz and I could enable my gateway by clicking on "please setup your Hardware" in the start screen, then selecting "mysensors gateway with lan interface" with the lan ip of my orange pi (but i guess 127.0.0.1 would also work) and port 5003.
    this should appear then:
    mysensors_lan_gw Yes MySensors Gateway with LAN interface
    Version: 2.2.0-beta Setup 0.0.0.0 5003 Disabled

    clicking on "Setup" then leads to a menu where i see my first test node:

    NodeID
    Name
    Sketch Name
    Version
    Children
    Last Seen
    0 Unknown Unknown 1.0 1 2017-01-29 20:27:28
    1 Unknown nrf24LEDtest 1.0 2 2017-01-29 20:28:27

    let me know if that works out for you



  • @pansen: Thank you very much it works very well.
    Cool for your help
    thank you so much
    For you which is the best domoticz or jeedom ?? With mysensors protocol



  • @lecintre: avec plaisir šŸ™‚ I only compared OpenHAB and domoticz so far. Domoticz worked out of the box with the nrf24 but does not have support for my 5.1 receiver (which OpenHAB does). Jeedom looks to commercial (for example no free app+controller) for my taste and there seems to be no community. A good starting point for me was the popularity of each controller in this forum: https://forum.mysensors.org/category/3/controllers

    I guess it really depends on your application, if you only have DYI sensors and actuators, domoticz is probably enough.


  • Mod

    @marceloaqno Great job man!
    Looking at the radio connection, there is a 5V -> 3V3 conversion layed out.
    The Pi Zero Schematics sheet 7-D1, 7-B5 and 11-D4 indicate VCC3V3-EXT is present on pin 1 of the IO connector and internally connected to VCC-IO, which can supply 1A @ 3V3.
    Don't you think there is enough margin to supply the nRF24 directly from VCC3V3-EXT?


  • Code Contributor

    @Yveaux Yes, more than enough šŸ˜„ . Thanks and thanks for pointing that out.


  • Hardware Contributor

    i've not checked yet, i miss time for trying the linux port šŸ˜Š but i'm curious to know if this power supply would be noisy..which may need a ferrite and capas, else radio could have a bad snr and less range/sensitiviy. Maybe i'm wrong.. i'll try to scope when i'll have some time, or if i remember about it lol!



  • @pansen Hi, Please could you confirm your pin connection beetween NRF24L01 and the Opi Plus2E, il followed your setup inctruction (no .fex modification and your specific ./configure), but mine don't work, i got this error "mysgw: Could not open /sys/class/gpio/gpio13/direction".

    I connected my NRF24L01 on OPI P2E like this :

    • NRF Port Name / (NĀ°) ------- OPI Port (NĀ°) / Name
      • GND (1) <------------> (6) GND
      • VCC (2) <------------> (17) 3.3V PWR
      • CE (3) <---------------> (8)
      • CSN (4) <------------> (10)
      • SCK (5) <-------------> (23)
      • MOSI (6) <-----------> (19) MOSI
      • MISO (7) <-----------> (21) MISO
      • IRQ (8) <---------------> NC

    Thanks.
    Seb.



  • Hi @SdeWeb header pins 8 and 10 are used by some other hardware (SPI1, UART3) which might need to be deactivated in the .fex in your system, for me it worked straight away so that would be weird..just check the .fex if SPI1 and UART3 are indeed disabled.

    It looks like the definitions for the GPIO are faulty, you could try a LED test to see if they work at all. If the problem persists rather open a topic in the Development sub forum šŸ˜Ž Or, pick another GPIO, for example header pins 14 and 16.



  • Hello,
    would it be possible to add the wiring for the RS485-Modules, please?
    will it be similar to the Raspberry Pi?
    Thank you. Waschtl.



  • Hi,
    Well done finally i used the dedicated .fex file for Orange Pi Plus 2E here :
    https://linux-sunxi.org/Xunlong_Orange_Pi_Plus_2E#Expansion_Port

    at this point :
    https://github.com/igorpecovnik/lib/blob/master/config/fex/orangepiplus2e.fex

    Read the .fex file in a text editor, u'll see important things about "gpio_config" for H3 cpu :

    ; NOTE: This section is necessary only for "gpio_sunxi" driver
    ; which is obsolete for H3 boards
    [gpio_para]
    gpio_used = 0
    gpio_num = 0
    

    I connected my NRF24L01 on OPI P2E like this :

    NRF24L01 Port Name / (Pin NĀ°) ----- OPI Port (Pin NĀ°) / Name
                          GND (1)  <-----------> (20) / GND
                          VCC (2)  <-----------> (17) / 3.3V PWR
                          CE (3)   <-----------> (22) / (PA2 / GPIO2)
                          CSN (4)  <-----------> (24) / (PC3 / GPIO67)
                          SCK (5)  <-----------> (23)
                          MOSI (6) <-----------> (19) MOSI
                          MISO (7) <-----------> (21) MISO
                          IRQ (8)  <-----------> NC
    

    So "MySensors" setup is :

    ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=67
    

    Then

    ./bin/mysgw -d
    

    Return :

    root@orangepiplus2e:~/MySensors# ./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 OK
    mysgw: TSM:INIT:GW MODE
    mysgw: TSM:READY:ID=0,PAR=0,DIS=0
    mysgw: MCO:REG:NOT NEEDED
    mysgw: Listening for connections on 0.0.0.0:5003
    mysgw: MCO:BGN:STP
    mysgw: MCO:BGN:INIT OK,TSP=1
    

    Best.
    Seb.



  • @Wascht'l Hi,
    Take a look here, to get some idea :

    https://fr.pinout.xyz/pinout/rs485_pi#

    Regards.



  • i have problem šŸ˜•
    what about this :

    
    root@orangepione:~/MySensors# ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=13                       
     -bash: ./configure: Permission denied
    root@orangepione:~/MySensors#
    
    


  • @Reza
    Seems your ./configure script is not executable... try:

    chmod 755 ./configure
    


  • @Tag

    root@orangepione:~/MySensors# chmod 755 ./configure
    root@orangepione:~/MySensors# chmod 755 ./configure --spi-spidev-device=/dev/spidev1.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=13
    chmod: unrecognized option '--spi-spidev-device=/dev/spidev1.0'
    Try 'chmod --help' for more information.
    root@orangepione:~/MySensors#
    


  • @Reza
    after "chmoded" the file you don't need anymore chmod command, run directly ./configure .

    Regards



  • @SdeWeb thank you . this is ok



  • can i add this lines ? for orangepi ?

    #define MY_RF24_PA_LEVEL RF24_PA_MAX
    #define MY_RF24_CHANNEL 0
    
    

    but after add i have problem :

    root@orangepione:~/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_SERIAL -DMY_DEBUG -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_IS_SERIAL_PTY  -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/noniso.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_IS_SERIAL_PTY  -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_SERIAL -DMY_DEBUG -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_IS_SERIAL_PTY  -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_SERIAL -DMY_DEBUG -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_IS_SERIAL_PTY  -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/SerialPort.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_IS_SERIAL_PTY  -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_SERIAL -DMY_DEBUG -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_IS_SERIAL_PTY  -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/IPAddress.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_IS_SERIAL_PTY  -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/compatibility.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_IS_SERIAL_PTY  -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/SoftEeprom.o -MMD -MP -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_IS_SERIAL_PTY  -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_SERIAL -DMY_DEBUG -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_IS_SERIAL_PTY  -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_SERIAL -DMY_DEBUG -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_IS_SERIAL_PTY  -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:73: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:73:
    ./drivers/RF24/RF24.h:52:17: fatal error: SPI.h: No such file or directory
    compilation terminated.
    Makefile:98: recipe for target 'build/examples_linux/mysgw.o' failed
    make: *** [build/examples_linux/mysgw.o] Error 1
    


  • @Reza

    Are you sure your git environment is okay?
    Maybe do a fresh git pull for mysensors?
    See the howto on the orangePI page just follow from the start.... I have serious questions that your env is correct since configure was not executable....



  • @Tag i use same files that use for raspberry. for raspberry worked. is this different between mysensors for raspberry and orange? i must download again ?



  • @Reza <- Yes do all the procedure from the beginning :

    https://www.mysensors.org/build/orange



  • @Reza
    You must use the OrangePI instructions, these are different conmpared to the RaspberryPI instructions
    Thx SdeWeb!, same toughts!! šŸ™‚



  • @SdeWeb i do all steps that is orangepi page. but just i dont run this :

    git clone https://github.com/mysensors/MySensors.git
    

    and copy this files from flash memory . is this incorrect ?



  • @Reza Bad idea šŸ˜ž , wich OS are you using on your Orange PI ?



  • @Reza
    I got this working like a charm on armbian( Debian Jessie) https://www.armbian.com/orange-pi-zero/

    But you need to follow ALL steps........

    Which OrangePI board do you use?



  • @SdeWeb
    armbian for orangepi one
    now i add this line :
    #define MY_RADIO_NRF24

    so i think ok but :

    root@orangepione:~/MySensors# make
    gcc -MT build/drivers/Linux/log.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/log.c -o build/drivers/Linux/log.o
    g++ -MT build/drivers/Linux/noniso.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/Stream.cpp -o build/drivers/Linux/Stream.o
    g++ -MT build/drivers/Linux/IPAddress.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/IPAddress.cpp -o build/drivers/Linux/IPAddress.o
    g++ -MT build/drivers/Linux/compatibility.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/interrupt.cpp -o build/drivers/Linux/interrupt.o
    g++ -MT build/drivers/Linux/SerialSimulator.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/SerialSimulator.cpp -o build/drivers/Linux/SerialSimulator.o
    g++ -MT build/drivers/Linux/SoftEeprom.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o
    examples_linux/mysgw.cpp:31:0: warning: "MY_RADIO_NRF24" redefined
     #define MY_RADIO_NRF24
     ^
    <command-line>:0:0: note: this is the location of the previous definition
    g++ -MT build/drivers/SPIDEV/SPI.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/SPIDEV/SPI.cpp -o build/drivers/SPIDEV/SPI.o
    g++ -pthread  -o bin/mysgw build/drivers/Linux/log.o build/drivers/Linux/noniso.o build/drivers/Linux/GPIO.o build/drivers/Linux/Print.o build/drivers/Linux/EthernetClient.o build/drivers/Linux/SerialPort.o build/drivers/Linux/Stream.o build/drivers/Linux/IPAddress.o build/drivers/Linux/compatibility.o build/drivers/Linux/interrupt.o build/drivers/Linux/SerialSimulator.o build/drivers/Linux/SoftEeprom.o build/drivers/Linux/EthernetServer.o build/examples_linux/mysgw.o  build/drivers/SPIDEV/SPI.o
    root@orangepione:~/MySensors# sudo ./bin/mysgw -d
    mysgw: Config file /etc/mysensors.dat does not exist, creating new config file.
    mysgw: Starting gateway...
    mysgw: Protocol version - 2.2.0-beta
    mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.2.0-beta
    mysgw: TSM:INIT
    mysgw: TSF:WUR:MS=0
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=1
    mysgw: TSM:FAIL:PDT
    mysgw: TSM:FAIL:RE-INIT
    mysgw: TSM:INIT
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=2
    mysgw: TSM:FAIL:PDT
    mysgw: TSM:FAIL:RE-INIT
    mysgw: TSM:INIT
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=3
    mysgw: TSM:FAIL:PDT
    mysgw: TSM:FAIL:RE-INIT
    mysgw: TSM:INIT
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=4
    mysgw: TSM:FAIL:PDT
    mysgw: TSM:FAIL:RE-INIT
    mysgw: TSM:INIT
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=5
    mysgw: TSM:FAIL:PDT
    mysgw: TSM:FAIL:RE-INIT
    mysgw: TSM:INIT
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=6
    mysgw: TSM:FAIL:PDT
    mysgw: TSM:FAIL:RE-INIT
    mysgw: TSM:INIT
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=7
    mysgw: TSM:FAIL:PDT
    
    


  • @Reza

    Seems you are not able to communicate with your radio..... you need to figure out which GPIO pins you need to use, and which SPI channel.....

    The steps from the OrangePI page are based on the OrangePI zero model



  • @Reza
    Your GW is OK, so exit debug mode by use Ctrl + C command, then follow the end of the procedure to install and auto start GW services.

    Regards.



  • @Tag i am using similar to zero . i dont know how configure GPIO for orange pi one šŸ˜ž

    i thought orange one is similar to zero for configure....



  • @SdeWeb so now my problem is related to GPIO and configure this ? can you help me that how i can configure this ?



  • @Reza

    I do not have the OPI One HW available..... so that will be a problem.
    you need to start reading the OPI documentation, and see if the pinout you are using is correct, I know for example that OPI Zero used the SPI1 channel since SPI0 is used for the NAND flash. now it might be that the OPI One does not have the NAND flash so you can use the SPI0 channel.

    Try to start here

    or here

    If you read carefully you will see that pin 19-21-23 are on the opi ONE SPI0, and on the OPI Zero SPI1.....

    This is the OPI Zero page: http://linux-sunxi.org/Orange_Pi_Zero#Orientation_of_the_GPIO_header

    ANd the OPI One page:
    http://linux-sunxi.org/Orange_Pi_One#Orientation_of_the_GPIO_header

    @marceloaqno helped build this for the OPI Zero.... and SPI was an important part to get this working...

    Try this:

    ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=3
    

    worth a try if you use SPI0, and GPIO3 for the CE pin (on the ONE the ce SPI0 pin is 3 according to the wiki page)



  • @Tag thank you. but i can not setup this . very complicated šŸ™‚ perhaps @marceloaqno can setup this.
    thank you



  • @Tag
    0_1489520217974_Orange_Pi_2_GPIO_Pinout.png
    GPIO3 is pin 15? so change wiring? CE to pin15 ?



  • @Reza

    Can imagine that it is complicated, assuming you used the OPI zero pinout, try the configure example from my previous post. might work.

    Another option you have is get an arduino with the radio attached and just plug it into usb, your messages will appear on i.e /dev/ttyUSB0



  • @Reza

    try this:

    ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=3
    

    See this page for your header pinout: http://linux-sunxi.org/Orange_Pi_One#Orientation_of_the_GPIO_header

    the --my-rf24-cs-pin= is key to have it right on your system





  • @Tag my-rf24-cs-pin=3 . 3 is pin15 ? i do it. cs is connect to pin15 (GPIO3) and configre again .but dont work



  • @Reza Try to connect like mine, look above in this thread, then use my own ./configure setup.

    If it's not work, try to use the .fex file for your Orange PI download it here :
    http://linux-sunxi.org/Orange_Pi_One#Sunxi.2FLegacy_Kernel



  • @SdeWeb said in šŸ’¬ Building a Orange Pi Gateway:

    If it's not work, try to use the .fex file for your Orange PI download it here :

    sorry i cannot understand what is say in this link. thank you .perhaps other friend can found this for orange pi one or lite . i cannot understand really.



  • @Reza

    Did you also change the SPI channel?

    --spi-spidev-device=/dev/spidev0.0
    

    if you use the OPIzero pinout, SPI1 will be SPI0 on the OPI one......

    Your other option will be using a serial gateway: https://www.mysensors.org/build/serial_gateway
    This works for sure on the OPI One



  • @Tag i change this but dont work, i am useing serial gateway now.but i want use a orangepi gateway:(



  • @Reza
    Hi,
    Tell us how you connect your NRF24 module on your Orange PI.

    On this guide https://www.mysensors.org/build/orange do you followed the section "configure spidev" ?

    The main things are :

    1 - install sunxy-tools
    2 - install MySensors.git

    But the pinout of the GPIO on your Orange PI is different of the Orange PI zero explained here : https://www.mysensors.org/build/orange

    So you need to modify the script.bin file, with the command "bin2fex / fex2bin" as explained in the "configure spidev" chapter, if you fail to find the right configuration, try to use the .fex file that you can download here :

    If you have a Orange PI lite :
    https://github.com/igorpecovnik/lib/blob/master/config/fex/orangepilite.fex

    Or if you have a Orange PI One :
    https://github.com/igorpecovnik/lib/blob/master/config/fex/orangepione.fex

    then "fex2bin" the file you downloaded, to replace your own script.bin as described in the tuto at the chapter "configure spidev".

    I think that the pinout of your Orange PI is the same than mine, i got a Orange PI Plus 2E, so look my setup as explained above in this forum, then connect your NRF24 module like mine and use my "./configure" setup.

    If you succes your gateway setup, dont forget than the next step it's to install a controler to drive it, so you'll need to read guide about setup a controler : https://www.mysensors.org/controller

    Regards.



  • @SdeWeb
    this is my levels:

    sudo apt-get update
    sudo apt-get install sunxi-tools
    bin2fex /boot/script.bin /tmp/orange.fex
    nano /tmp/orange.fex
    

    and replace
    https://github.com/igorpecovnik/lib/blob/master/config/fex/orangepione.fex
    and save .
    so:

    sudo fex2bin /tmp/orange.fex /boot/script.bin
    sudo reboot
    
    root@orangepione:~# ls -l /dev/spidev*
    crw------- 1 root root 153, 0 Mar 16 12:00 /dev/spidev0.0
    
    sudo modprobe gpio-sunxi
    
    echo "gpio-sunxi" >> /etc/modules
    
    git clone https://github.com/mysensors/MySensors.git
    cd MySensors
    
    ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=13
    
    ./configure --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyUSB020
    
    make
    
    sudo ./bin/mysgw -d
    

    so i see :

    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
    

    wiring is similar to zero...



  • @Reza
    Try to wire like mine and apply my configure setup, here is the copy/paste of the famous previous post from me :

    I connected my NRF24L01 on OPI P2E like this :

    NRF24L01 Port Name / (Pin NĀ°) ----- OPI Port (Pin NĀ°) / Name
                          GND (1)  <-----------> (20) / GND
                          VCC (2)  <-----------> (17) / 3.3V PWR
                          CE (3)   <-----------> (22) / (PA2 / GPIO2)
                          CSN (4)  <-----------> (24) / (PC3 / GPIO67)
                          SCK (5)  <-----------> (23)
                          MOSI (6) <-----------> (19) MOSI
                          MISO (7) <-----------> (21) MISO
                          IRQ (8)  <-----------> NC
    

    So "MySensors" setup is :

    ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=67
    

    Then

    ./bin/mysgw -d
    

    Return :

    root@orangepiplus2e:~/MySensors# ./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 OK
    mysgw: TSM:INIT:GW MODE
    mysgw: TSM:READY:ID=0,PAR=0,DIS=0
    mysgw: MCO:REG:NOT NEEDED
    mysgw: Listening for connections on 0.0.0.0:5003
    mysgw: MCO:BGN:STP
    mysgw: MCO:BGN:INIT OK,TSP=1
    

    Best.
    Seb.



  • @SdeWeb
    i do wiring true and do your levels... but there is same problem...

    root@orangepione:~/MySensors# ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=67
    [SECTION] Detecting target machine.
      [OK] machine detected: SoC=H3, Type=unknown, CPU=armv7l.
    [SECTION] Checking GPIO Sysfs.
      [OK] /sys/class/gpio/export found
    [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@orangepione:~/MySensors# ./configure --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyUSB020
    [SECTION] Detecting target machine.
      [OK] machine detected: SoC=H3, Type=unknown, CPU=armv7l.
    [SECTION] Checking GPIO Sysfs.
      [OK] /sys/class/gpio/export found
    [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@orangepione:~/MySensors# make
    gcc -MT build/drivers/Linux/log.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/log.c -o build/drivers/Linux/log.o
    g++ -MT build/drivers/Linux/noniso.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/Stream.cpp -o build/drivers/Linux/Stream.o
    g++ -MT build/drivers/Linux/IPAddress.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/IPAddress.cpp -o build/drivers/Linux/IPAddress.o
    g++ -MT build/drivers/Linux/compatibility.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/interrupt.cpp -o build/drivers/Linux/interrupt.o
    g++ -MT build/drivers/Linux/SerialSimulator.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/SerialSimulator.cpp -o build/drivers/Linux/SerialSimulator.o
    g++ -MT build/drivers/Linux/SoftEeprom.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o
    examples_linux/mysgw.cpp:31:0: warning: "MY_RADIO_NRF24" redefined
     #define MY_RADIO_NRF24
     ^
    <command-line>:0:0: note: this is the location of the previous definition
    g++ -MT build/drivers/SPIDEV/SPI.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/SPIDEV/SPI.cpp -o build/drivers/SPIDEV/SPI.o
    g++ -pthread  -o bin/mysgw build/drivers/Linux/log.o build/drivers/Linux/noniso.o build/drivers/Linux/GPIO.o build/drivers/Linux/Print.o build/drivers/Linux/EthernetClient.o build/drivers/Linux/SerialPort.o build/drivers/Linux/Stream.o build/drivers/Linux/IPAddress.o build/drivers/Linux/compatibility.o build/drivers/Linux/interrupt.o build/drivers/Linux/SerialSimulator.o build/drivers/Linux/SoftEeprom.o build/drivers/Linux/EthernetServer.o build/examples_linux/mysgw.o  build/drivers/SPIDEV/SPI.o
    root@orangepione:~/MySensors# sudo ./bin/mysgw -d
    mysgw: Starting gateway...
    mysgw: Protocol version - 2.2.0-beta
    mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.2.0-beta
    mysgw: TSM:INIT
    mysgw: TSF:WUR:MS=0
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=1
    mysgw: TSM:FAIL:PDT
    mysgw: TSM:FAIL:RE-INIT
    mysgw: TSM:INIT
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=2
    mysgw: TSM:FAIL:PDT
    
    
    


  • this is all my steps

    root@orangepione:~# sudo apt-get update
    Hit:1 http://ports.ubuntu.com xenial InRelease
    Hit:2 http://apt.armbian.com xenial InRelease
    Hit:3 http://ports.ubuntu.com xenial-security InRelease
    Hit:4 http://ports.ubuntu.com xenial-updates InRelease
    Hit:5 http://ports.ubuntu.com xenial-backports InRelease
    Reading package lists... Done
    root@orangepione:~# bin2fex /boot/script.bin /tmp/orange.fex
    fexc-bin: /boot/script.bin: version: 1.2
    fexc-bin: /boot/script.bin: size: 34704 (81 sections), header value: 34704
    root@orangepione:~# nano /tmp/orange.fex
    root@orangepione:~# ls -l /dev/spidev*
    crw------- 1 root root 153, 0 Mar 19 11:17 /dev/spidev0.0
    root@orangepione:~# sudo modprobe gpio-sunxi
    root@orangepione:~# echo "gpio-sunxi" >> /etc/modules
    root@orangepione:~# vncserver
    
    New 'X' desktop is orangepione:1
    
    Starting applications specified in /root/.vnc/xstartup
    Log file is /root/.vnc/orangepione:1.log
    
    root@orangepione:~# *** Error in `pasystray': corrupted double-linked list (not small): 0x01cdb908 ***
    git clone https://github.com/mysensors/MySensors.git
    Cloning into 'MySensors'...
    remote: Counting objects: 13985, done.
    remote: Compressing objects: 100% (45/45), done.
    remote: Total 13985 (delta 8), reused 0 (delta 0), pack-reused 13940
    Receiving objects: 100% (13985/13985), 9.70 MiB | 181.00 KiB/s, done.
    Resolving deltas: 100% (8436/8436), done.
    Checking connectivity... done.
    root@orangepione:~# cd MySensors
    root@orangepione:~/MySensors# ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=67
    [SECTION] Detecting target machine.
      [OK] machine detected: SoC=H3, Type=unknown, CPU=armv7l.
    [SECTION] Checking GPIO Sysfs.
      [OK] /sys/class/gpio/export found
    [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@orangepione:~/MySensors# ./configure --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyUSB020
    [SECTION] Detecting target machine.
      [OK] machine detected: SoC=H3, Type=unknown, CPU=armv7l.
    [SECTION] Checking GPIO Sysfs.
      [OK] /sys/class/gpio/export found
    [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@orangepione:~/MySensors# make
    gcc -MT build/drivers/Linux/log.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/log.c -o build/drivers/Linux/log.o
    g++ -MT build/drivers/Linux/noniso.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/Stream.cpp -o build/drivers/Linux/Stream.o
    g++ -MT build/drivers/Linux/IPAddress.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/IPAddress.cpp -o build/drivers/Linux/IPAddress.o
    g++ -MT build/drivers/Linux/compatibility.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/interrupt.cpp -o build/drivers/Linux/interrupt.o
    g++ -MT build/drivers/Linux/SerialSimulator.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/SerialSimulator.cpp -o build/drivers/Linux/SerialSimulator.o
    g++ -MT build/drivers/Linux/SoftEeprom.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o
    g++ -MT build/drivers/SPIDEV/SPI.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/SPIDEV/SPI.cpp -o build/drivers/SPIDEV/SPI.o
    g++ -pthread  -o bin/mysgw build/drivers/Linux/log.o build/drivers/Linux/noniso.o build/drivers/Linux/GPIO.o build/drivers/Linux/Print.o build/drivers/Linux/EthernetClient.o build/drivers/Linux/SerialPort.o build/drivers/Linux/Stream.o build/drivers/Linux/IPAddress.o build/drivers/Linux/compatibility.o build/drivers/Linux/interrupt.o build/drivers/Linux/SerialSimulator.o build/drivers/Linux/SoftEeprom.o build/drivers/Linux/EthernetServer.o build/examples_linux/mysgw.o  build/drivers/SPIDEV/SPI.o
    root@orangepione:~/MySensors# sudo ./bin/mysgw -d
    mysgw: Starting gateway...
    mysgw: Protocol version - 2.2.0-beta
    mysgw: MCO:BGN:INIT GW,CP=RNNG----,VER=2.2.0-beta
    mysgw: TSM:INIT
    mysgw: TSF:WUR:MS=0
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=1
    mysgw: TSM:FAIL:PDT
    mysgw: TSM:FAIL:RE-INIT
    mysgw: TSM:INIT
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=2
    mysgw: TSM:FAIL:PDT
    mysgw: TSM:FAIL:RE-INIT
    mysgw: TSM:INIT
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=3
    mysgw: TSM:FAIL:PDT
    


  • Can you post a picture of your wiring?



  • @Reza Hello,
    Did you modifying the .Fex file before applying the 'configure' setup ?
    What did you do with nano ?

    Regards.



  • @pansen
    red is 3.3
    brown is GND
    green is CE
    orange is SCK
    yellow is MISO
    violet is CS
    blue is MOSI
    IRQ is empty

    0_1489923764279_photo_2017-03-19_16-04-06.jpg



  • @SdeWeb
    yes. use:

    sudo nano /tmp/orange.fex
    

    and remove all line and copy , paste your link and save this.
    now orange.fex is:

    [product]
    version = "100"
    machine = "Xunlong Orange Pi One"
    
    [platform]
    debug_mode = 1
    eraseflag = 1
    next_work = 2
    
    [target]
    boot_clock = 1008
    storage_type = -1
    
    [key_detect_en]
    keyen_flag = 0
    
    [fel_key]
    fel_key_max = 7
    fel_key_min = 2
    
    [card_boot]
    logical_start = 40960
    sprite_work_delay = 500
    sprite_err_delay = 200
    sprite_gpio0 = port:PL10<1><default><default><default>
    next_work = 3
    
    [box_start_os]
    used = 1
    start_type = 1
    irkey_used = 1
    pmukey_used = 1
    pmukey_num = 3
    led_power = 0
    led_state = 0
    
    [boot_init_gpio]
    used = 1
    gpio0 = port:PL10<1><default><default><1>
    gpio1 = port:PG11<1><default><default><1>
    
    [recovery_para]
    used = 1
    mode = 2
    recovery_key = port:PL04<0><default><default><default>
    
    [pm_para]
    standby_mode = 1
    
    [card0_boot_para]
    card_ctrl = 0
    card_high_speed = 1
    card_line = 4
    sdc_d1 = port:PF00<2><1><2><default>
    sdc_d0 = port:PF01<2><1><2><default>
    sdc_clk = port:PF02<2><1><2><default>
    sdc_cmd = port:PF03<2><1><2><default>
    sdc_d3 = port:PF04<2><1><2><default>
    sdc_d2 = port:PF05<2><1><2><default>
    
    [card2_boot_para]
    card_ctrl = 2
    card_high_speed = 1
    card_line = 8
    sdc_cmd = port:PC06<3><1><2><default>
    sdc_clk = port:PC05<3><1><2><default>
    sdc_d0 = port:PC08<3><1><2><default>
    sdc_d1 = port:PC09<3><1><2><default>
    sdc_d2 = port:PC10<3><1><2><default>
    sdc_d3 = port:PC11<3><1><2><default>
    sdc_d4 = port:PC12<3><1><2><default>
    sdc_d5 = port:PC13<3><1><2><default>
    sdc_d6 = port:PC14<3><1><2><default>
    sdc_d7 = port:PC15<3><1><2><default>
    sdc_2xmode = 1
    sdc_ddrmode = 1
    
    [twi_para]
    twi_port = 0
    twi_scl = port:PA11<2><default><default><default>
    twi_sda = port:PA12<2><default><default><default>
    
    [uart_para]
    uart_debug_port = 0
    uart_debug_tx = port:PA04<2><1><default><default>
    uart_debug_rx = port:PA05<2><1><default><default>
    
    [force_uart_para]
    force_uart_port = 0
    force_uart_tx = port:PF02<3><1><default><default>
    force_uart_rx = port:PF04<3><1><default><default>
    
    [jtag_para]
    jtag_enable = 0
    jtag_ms = port:PA00<3><default><default><default>
    jtag_ck = port:PA01<3><default><default><default>
    jtag_do = port:PA02<3><default><default><default>
    jtag_di = port:PA03<3><default><default><default>
    
    [clock]
    pll_video = 297
    pll_ve = 402
    pll_periph0 = 600
    pll_gpu = 576
    pll_periph1 = 600
    pll_de = 864
    
    [dram_para]
    dram_clk = 624
    dram_type = 3
    dram_zq = 0x3b3bfb
    dram_odt_en = 1
    dram_para1 = 283377664
    dram_para2 = 0
    dram_mr0 = 6208
    dram_mr1 = 64
    dram_mr2 = 24
    dram_mr3 = 2
    dram_tpr0 = 0x48a192
    dram_tpr1 = 0x1c2418d
    dram_tpr2 = 0x76051
    dram_tpr3 = 0x0
    dram_tpr4 = 0x0
    dram_tpr5 = 0x0
    dram_tpr6 = 0x64
    dram_tpr7 = 0x0
    dram_tpr8 = 0x0
    dram_tpr9 = 0x0
    dram_tpr10 = 0x0
    dram_tpr11 = 0x6aaa0000
    dram_tpr12 = 0x7979
    dram_tpr13 = 0x800800
    
    [wakeup_src_para]
    cpu_en = 0
    cpu_freq = 48
    pll_ratio = 273
    dram_selfresh_en = 1
    dram_freq = 36
    wakeup_src0 =
    wakeup_src_wl = port:PG10<4><default><default><0>
    wakeup_src_bt = port:PL03<6><default><default><0>
    
    [twi0]
    twi_used = 1
    twi_scl = port:PA11<2><default><default><default>
    twi_sda = port:PA12<2><default><default><default>
    
    [twi1]
    twi_used = 1
    twi_scl = port:PA18<3><default><default><default>
    twi_sda = port:PA19<3><default><default><default>
    
    [twi2]
    twi_used = 0
    twi_scl = port:PE12<3><default><default><default>
    twi_sda = port:PE13<3><default><default><default>
    
    [uart0]
    uart_used = 1
    uart_port = 0
    uart_type = 2
    uart_tx = port:PA04<2><1><default><default>
    uart_rx = port:PA05<2><1><default><default>
    
    [uart1]
    uart_used = 0
    uart_port = 1
    uart_type = 4
    uart_tx = port:PG06<2><1><default><default>
    uart_rx = port:PG07<2><1><default><default>
    uart_rts = port:PG08<2><1><default><default>
    uart_cts = port:PG09<2><1><default><default>
    
    [uart2]
    uart_used = 0
    uart_port = 2
    uart_type = 4
    uart_tx = port:PA00<2><1><default><default>
    uart_rx = port:PA01<2><1><default><default>
    uart_rts = port:PA02<2><1><default><default>
    uart_cts = port:PA03<2><1><default><default>
    
    [uart3]
    uart_used = 0
    uart_port = 3
    uart_type = 4
    uart_tx = port:PA13<3><1><default><default>
    uart_rx = port:PA14<3><1><default><default>
    uart_rts = port:PA15<3><1><default><default>
    uart_cts = port:PA16<3><1><default><default>
    
    [spi0]
    spi_used = 1
    spi_cs_bitmap = 1
    spi_mosi = port:PC00<3><default><default><default>
    spi_miso = port:PC01<3><default><default><default>
    spi_sclk = port:PC02<3><default><default><default>
    spi_cs0 = port:PC03<3><1><default><default>
    
    [spi1]
    spi_used = 0
    spi_cs_bitmap = 1
    spi_cs0 = port:PA13<2><1><default><default>
    spi_sclk = port:PA14<2><default><default><default>
    spi_mosi = port:PA15<2><default><default><default>
    spi_miso = port:PA16<2><default><default><default>
    
    [spi_devices]
    spi_dev_num = 1
    
    [spi_board0]
    modalias = "spidev"
    max_speed_hz = 33000000
    bus_num = 0
    chip_select = 0
    mode = 0
    full_duplex = 1
    manual_cs = 0
    
    ; NOTE: This section is necessary only for "gpio_sunxi" driver
    ; which is obsolete for H3 boards
    [gpio_para]
    gpio_used = 0
    gpio_num = 0
    
    ;[led_assign]
    ;normal_led = "gpio_pin_2"
    ;standby_led = "gpio_pin_1"
    
    [leds_para]
    leds_used = 1
    green_led = port:PL10<1><default><default><1>
    green_led_active_low = 0
    red_led = port:PA15<1><default><default><0>
    red_led_active_low = 0
    
    [ths_para]
    ths_used = 1
    ths_trip1_count = 6
    ths_trip1_0 = 75
    ths_trip1_1 = 80
    ths_trip1_2 = 85
    ths_trip1_3 = 90
    ths_trip1_4 = 95
    ths_trip1_5 = 105
    ths_trip1_6 = 0
    ths_trip1_7 = 0
    ths_trip1_0_min = 0
    ths_trip1_0_max = 1
    ths_trip1_1_min = 1
    ths_trip1_1_max = 2
    ths_trip1_2_min = 2
    ths_trip1_2_max = 3
    ths_trip1_3_min = 3
    ths_trip1_3_max = 4
    ths_trip1_4_min = 4
    ths_trip1_4_max = 5
    ths_trip1_5_min = 5
    ths_trip1_5_max = 7
    ths_trip1_6_min = 0
    ths_trip1_6_max = 0
    ths_trip2_count = 1
    ths_trip2_0 = 105
    
    [cooler_table]
    cooler_count = 8
    cooler0 = "1200000 4 4294967295 0"
    cooler1 = "912000 4 4294967295 0"
    cooler2 = "768000 4 4294967295 0"
    cooler3 = "648000 4 4294967295 0"
    cooler4 = "480000 4 4294967295 0"
    cooler5 = "480000 3 4294967295 0"
    cooler6 = "480000 2 4294967295 0"
    cooler7 = "480000 1 4294967295 0"
    
    [nand0_para]
    nand_support_2ch = 0
    nand0_used = 0
    nand0_we = port:PC00<2><default><default><default>
    nand0_ale = port:PC01<2><default><default><default>
    nand0_cle = port:PC02<2><default><default><default>
    nand0_ce1 = port:PC03<2><default><default><default>
    nand0_ce0 = port:PC04<2><default><default><default>
    nand0_nre = port:PC05<2><default><default><default>
    nand0_rb0 = port:PC06<2><default><default><default>
    nand0_rb1 = port:PC07<2><default><default><default>
    nand0_d0 = port:PC08<2><default><default><default>
    nand0_d1 = port:PC09<2><default><default><default>
    nand0_d2 = port:PC10<2><default><default><default>
    nand0_d3 = port:PC11<2><default><default><default>
    nand0_d4 = port:PC12<2><default><default><default>
    nand0_d5 = port:PC13<2><default><default><default>
    nand0_d6 = port:PC14<2><default><default><default>
    nand0_d7 = port:PC15<2><default><default><default>
    nand0_ndqs = port:PC16<2><default><default><default>
    
    [boot_disp]
    advert_disp = 0
    auto_hpd = 1
    output_type = 4
    hdmi_channel = 0
    hdmi_mode = 4
    cvbs_channel = 1
    cvbs_mode = 11
    output_full = 1
    hdmi_mode_check = 1
    
    [disp_init]
    disp_init_enable = 1
    disp_mode = 0
    screen0_output_type = 3
    screen0_output_mode = 5
    screen1_output_type = 3
    screen1_output_mode = 5
    fb0_format = 0
    fb0_width = 0
    fb0_height = 0
    fb1_format = 0
    fb1_width = 0
    fb1_height = 0
    
    [hdmi_para]
    hdmi_used = 1
    hdmi_power = "vcc-hdmi-18"
    
    [tv_para]
    tv_used = 0
    tv_dac_used = 1
    tv_dac_src0 = 0
    
    [pwm0_para]
    pwm_used = 0
    pwm_positive = port:PA05<3><0><default><default>
    ;       If set gamc_phy to use = 2
    
    [gmac0]
    gmac_used = 2
    gmac_power1 =
    
    [csi0]
    vip_used = 1
    vip_mode = 0
    vip_dev_qty = 1
    vip_define_sensor_list = 0
    vip_csi_pck = port:PE00<2><default><default><default>
    vip_csi_mck = port:PE01<2><default><default><default>
    vip_csi_hsync = port:PE02<2><default><default><default>
    vip_csi_vsync = port:PE03<2><default><default><default>
    vip_csi_d0 = port:PE04<2><default><default><default>
    vip_csi_d1 = port:PE05<2><default><default><default>
    vip_csi_d2 = port:PE06<2><default><default><default>
    vip_csi_d3 = port:PE07<2><default><default><default>
    vip_csi_d4 = port:PE08<2><default><default><default>
    vip_csi_d5 = port:PE09<2><default><default><default>
    vip_csi_d6 = port:PE10<2><default><default><default>
    vip_csi_d7 = port:PE11<2><default><default><default>
    vip_csi_sck = port:PE12<2><default><default><default>
    vip_csi_sda = port:PE13<2><default><default><default>
    vip_dev0_mname = "gc2035"
    vip_dev0_pos = "front"
    vip_dev0_lane = 1
    vip_dev0_twi_id = 2
    vip_dev0_twi_addr = 120
    vip_dev0_isp_used = 0
    vip_dev0_fmt = 0
    vip_dev0_stby_mode = 0
    vip_dev0_vflip = 1
    vip_dev0_hflip = 1
    vip_dev0_iovdd = ""
    vip_dev0_iovdd_vol = 2800000
    vip_dev0_avdd = ""
    vip_dev0_avdd_vol = 2800000
    vip_dev0_dvdd = ""
    vip_dev0_dvdd_vol = 1800000
    vip_dev0_afvdd = ""
    vip_dev0_afvdd_vol = 2800000
    vip_dev0_power_en = port:PA17<1><default><default><1>
    vip_dev0_reset = port:PE14<1><default><default><1>
    vip_dev0_pwdn = port:PE15<1><default><default><0>
    vip_dev0_flash_en =
    vip_dev0_flash_mode =
    vip_dev0_af_pwdn =
    vip_dev0_act_used = 0
    vip_dev0_act_name = "ad5820_act"
    vip_dev0_act_slave = 24
    vip_dev1_mname = ""
    vip_dev1_pos = "rear"
    vip_dev1_lane = 1
    vip_dev1_twi_id = 0
    vip_dev1_twi_addr =
    vip_dev1_isp_used = 0
    vip_dev1_fmt = 1
    vip_dev1_stby_mode = 0
    vip_dev1_vflip = 0
    vip_dev1_hflip = 0
    vip_dev1_iovdd = ""
    vip_dev1_iovdd_vol = 2800000
    vip_dev1_avdd = ""
    vip_dev1_avdd_vol = 2800000
    vip_dev1_dvdd = ""
    vip_dev1_dvdd_vol = 1500000
    vip_dev1_afvdd = ""
    vip_dev1_afvdd_vol = 2800000
    vip_dev1_power_en =
    vip_dev1_reset =
    vip_dev1_pwdn =
    vip_dev1_flash_en =
    vip_dev1_flash_mode =
    vip_dev1_af_pwdn =
    
    [tvout_para]
    tvout_used = 0
    tvout_channel_num =
    tv_en = 0
    
    [tvin_para]
    tvin_used = 0
    tvin_channel_num =
    
    [di_para]
    di_used = 1
    
    [mmc0_para]
    sdc_used = 1
    sdc_detmode = 3
    sdc_buswidth = 4
    sdc_clk = port:PF02<2><1><2><default>
    sdc_cmd = port:PF03<2><1><2><default>
    sdc_d0 = port:PF01<2><1><2><default>
    sdc_d1 = port:PF00<2><1><2><default>
    sdc_d2 = port:PF05<2><1><2><default>
    sdc_d3 = port:PF04<2><1><2><default>
    sdc_det = port:PF06<0><1><2><default>
    sdc_use_wp = 0
    sdc_wp =
    sdc_isio = 0
    sdc_regulator = "none"
    sdc_power_supply = "none"
    
    [mmc1_para]
    sdc_used = 1
    sdc_detmode = 4
    sdc_buswidth = 4
    sdc_clk = port:PG00<2><1><3><default>
    sdc_cmd = port:PG01<2><1><3><default>
    sdc_d0 = port:PG02<2><1><3><default>
    sdc_d1 = port:PG03<2><1><3><default>
    sdc_d2 = port:PG04<2><1><3><default>
    sdc_d3 = port:PG05<2><1><3><default>
    sdc_det =
    sdc_use_wp = 0
    sdc_wp =
    sdc_isio = 1
    sdc_regulator = "none"
    sdc_power_supply = "none"
    sdc_2xmode = 1
    sdc_ddrmode = 1
    
    [mmc2_para]
    sdc_used = 0
    sdc_detmode = 3
    sdc_buswidth = 8
    sdc_clk = port:PC05<3><1><2><default>
    sdc_cmd = port:PC06<3><1><2><default>
    sdc_d0 = port:PC08<3><1><2><default>
    sdc_d1 = port:PC09<3><1><2><default>
    sdc_d2 = port:PC10<3><1><2><default>
    sdc_d3 = port:PC11<3><1><2><default>
    sdc_d4 = port:PC12<3><1><2><default>
    sdc_d5 = port:PC13<3><1><2><default>
    sdc_d6 = port:PC14<3><1><2><default>
    sdc_d7 = port:PC15<3><1><2><default>
    emmc_rst = port:PC16<3><1><2><default>
    sdc_det =
    sdc_use_wp = 0
    sdc_wp =
    sdc_isio = 0
    sdc_regulator = "none"
    sdc_power_supply = "none"
    sdc_2xmode = 1
    sdc_ddrmode = 1
    
    [smc_para]
    smc_used = 0
    smc_rst = port:PA09<2><default><default><default>
    smc_vppen = port:PA20<3><default><default><default>
    smc_vppp = port:PA21<3><default><default><default>
    smc_det = port:PA10<2><default><default><default>
    smc_vccen = port:PA06<2><default><default><default>
    smc_sck = port:PA07<2><default><default><default>
    smc_sda = port:PA08<2><default><default><default>
    
    [usbc0]
    usb_used = 1
    usb_port_type = 2
    usb_detect_type = 0
    usb_id_gpio = port:PG12<0><1><default><default>
    usb_det_vbus_gpio = port:PG12<0><1><default><default>
    usb_drv_vbus_gpio = port:PL02<1><0><default><0>
    usb_host_init_state = 1
    usb_restrict_gpio =
    usb_restric_flag = 0
    usb_restric_voltage = 3550000
    usb_restric_capacity = 5
    usb_regulator_io = "nocare"
    usb_regulator_vol = 0
    usb_not_suspend = 0
    
    [usbc1]
    usb_used = 1
    usb_drv_vbus_gpio =
    usb_restrict_gpio =
    usb_host_init_state = 1
    usb_restric_flag = 0
    usb_regulator_io = "nocare"
    usb_regulator_vol = 0
    usb_not_suspend = 0
    
    [usbc2]
    usb_used = 1
    usb_drv_vbus_gpio =
    usb_restrict_gpio =
    usb_host_init_state = 1
    usb_restric_flag = 0
    usb_regulator_io = "nocare"
    usb_regulator_vol = 0
    usb_not_suspend = 0
    
    [usbc3]
    usb_used = 1
    usb_drv_vbus_gpio =
    usb_restrict_gpio =
    usb_host_init_state = 1
    usb_restric_flag = 0
    usb_regulator_io = "nocare"
    usb_regulator_vol = 0
    usb_not_suspend = 0
    
    [usb_feature]
    vendor_id = 6353
    mass_storage_id = 1
    adb_id = 2
    manufacturer_name = "USB Developer"
    product_name = "Android"
    serial_number = "20080411"
    
    [msc_feature]
    vendor_name = "USB 2.0"
    product_name = "USB Flash Driver"
    release = 100
    luns = 3
    
    [serial_feature]
    serial_unique = 0
    
    [module_para]
    module_num = 7
    module_power0 = "vcc-wifi-33"
    module_power0_vol = 0
    module_power1 =
    module_power1_vol =
    module_power2 =
    module_power2_vol =
    module_power3 =
    module_power3_vol =
    chip_en =
    lpo_use_apclk =
    
    [wifi_para]
    wifi_used = 0
    wifi_sdc_id = 1
    wifi_usbc_id = 5
    wifi_usbc_type = 1
    wl_reg_on = port:PL07<1><default><default><0>
    wl_host_wake = port:PG10<0><default><default><0>
    wl_host_wake_invert = 0
    
    [bt_para]
    bt_used = 0
    bt_uart_id = 1
    bt_rst_n =
    bt_wake =
    bt_host_wake =
    bt_host_wake_invert = 0
    
    [pcm0]
    daudio_used = 0
    daudio_master = 4
    daudio_select = 1
    audio_format = 1
    signal_inversion = 1
    mclk_fs = 128
    sample_resolution = 16
    slot_width_select = 32
    pcm_lrck_period = 32
    pcm_lrckr_period = 1
    msb_lsb_first = 0
    sign_extend = 0
    slot_index = 0
    slot_width = 32
    frame_width = 0
    tx_data_mode = 0
    rx_data_mode = 0
    i2s_mclk = port:PA18<2><1><default><default>
    i2s_bclk = port:PA19<2><1><default><default>
    i2s_dout0 = port:PA20<2><1><default><default>
    i2s_din = port:PA21<2><1><default><default>
    
    [pcm1]
    daudio_used = 0
    daudio_master = 4
    daudio_select = 1
    audio_format = 1
    signal_inversion = 1
    mclk_fs = 128
    sample_resolution = 16
    slot_width_select = 32
    pcm_lrck_period = 32
    pcm_lrckr_period = 1
    msb_lsb_first = 0
    sign_extend = 0
    slot_index = 0
    slot_width = 32
    frame_width = 0
    tx_data_mode = 0
    rx_data_mode = 0
    i2s_mclk = port:PG10<2><1><default><default>
    i2s_bclk = port:PG11<2><1><default><default>
    i2s_dout0 = port:PG12<2><1><default><default>
    i2s_din = port:PG13<2><1><default><default>
    
    [audio0]
    audio_used = 1
    lineout_vol = 31
    cap_vol = 5
    audio_hp_ldo = "none"
    adcagc_used = 0
    adcdrc_used = 0
    dacdrc_used = 0
    adchpf_used = 0
    dachpf_used = 0
    audio_pa_ctrl = port:PA16<1><default><default><0>
    
    [spdif0]
    spdif_used = 0
    spdif_dout = port:PA17<2><1><default><default>
    
    [audiohub]
    hub_used = 0
    codec_used = 1
    spdif_used = 1
    hdmi_used = 1
    
    [s_cir0]
    ir_used = 0
    ir_rx = port:PL11<2><1><default><default>
    ir_power_key_code0 = 87
    ir_addr_code0 = 40704
    ir_power_key_code1 = 26
    ir_addr_code1 = 64260
    ir_power_key_code2 = 20
    ir_addr_code2 = 32640
    ir_power_key_code3 = 21
    ir_addr_code3 = 32640
    ir_power_key_code4 = 11
    ir_addr_code4 = 63240
    ir_power_key_code5 = 3
    ir_addr_code5 = 239
    ir_power_key_code6 = 159
    ir_addr_code6 = 19635
    ir_power_key_code7 = 10
    ir_addr_code7 = 30536
    ir_power_key_code8 = 69
    ir_addr_code8 = 48386
    ir_power_key_code9 = 77
    ir_addr_code9 = 56865
    ir_power_key_code10 = 24
    ir_addr_code10 = 65025
    ir_power_key_code11 = 87
    ir_addr_code11 = 65280
    ir_power_key_code12 = 77
    ir_addr_code12 = 65344
    
    [cir]
    ir_used = 1
    ir_tx = port:PH07<2><default><default><default>
    
    ;----------------------------------------------------------------------------------
    ; dvfs voltage-frequency table configuration
    ;
    ; pmuic_type:0:none, 1:gpio, 2:i2c
    ; pmu_gpio0: gpio config.
    ; pmu_levelx: 0~9999: voltage(mV), 10000~90000:gpio0 state. voltage form high to low.
    ;
    ; extremity_freq(Hz): cpu extremity frequency when run benckmark or demo apk
    ;                     1536MHz@1500mV with radiator, 1296MHz@1340mV without radiator
    ; max_freq: cpu maximum frequency, based on Hz, can not be more than 1200MHz
    ; min_freq: cpu minimum frequency, based on Hz, can not be less than 60MHz
    ;
    ; LV_count: count of LV_freq/LV_volt, must be < 16
    ;
    ; LV1: core vdd is 1.50v if cpu frequency is (1296Mhz,  1536Mhz]
    ; LV2: core vdd is 1.34v if cpu frequency is (1200Mhz,  1296Mhz]
    ; LV3: core vdd is 1.32v if cpu frequency is (1008Mhz,  1200Mhz]
    ; LV4: core vdd is 1.20v if cpu frequency is (816Mhz,   1008Mhz]
    ; LV5: core vdd is 1.10v if cpu frequency is (648Mhz,    816Mhz]
    ; LV6: core vdd is 1.04v if cpu frequency is (0Mhz,      648Mhz]
    ; LV7: core vdd is 1.04v if cpu frequency is (0Mhz,      648Mhz]
    ; LV8: core vdd is 1.04v if cpu frequency is (0Mhz,      648Mhz]
    ;
    ;----------------------------------------------------------------------------------
    [dvfs_table]
    pmuic_type = 1
    pmu_gpio0 = port:PL06<1><1><2><1>
    pmu_level0 = 11300
    pmu_level1 = 1100
    max_freq = 1200000000
    min_freq = 480000000
    LV_count = 5
    LV1_freq = 1200000000
    LV1_volt = 1300
    LV2_freq = 1008000000
    LV2_volt = 1300
    LV3_freq = 912000000
    LV3_volt = 1100
    LV4_freq = 648000000
    LV4_volt = 1100
    LV5_freq = 480000000
    LV5_volt = 1100
    
    [gpu_dvfs_table]
    G_LV_count = 3
    G_LV0_freq = 312000000
    G_LV0_volt = 1200000
    G_LV1_freq = 384000000
    G_LV1_volt = 1200000
    G_LV2_freq = 456000000
    G_LV2_volt = 1200000
    
    [Vdevice]
    Vdevice_used = 0
    Vdevice_0 = port:PH10<5><1><2><default>
    Vdevice_1 = port:PH11<5><1><2><default>
    
    [s_uart0]
    s_uart_used = 0
    s_uart_tx = port:PL02<2><default><default><default>
    s_uart_rx = port:PL03<2><default><default><default>
    
    [s_rsb0]
    s_rsb_used = 1
    s_rsb_sck = port:PL00<2><1><2><default>
    s_rsb_sda = port:PL01<2><1><2><default>
    
    [s_jtag0]
    s_jtag_used = 0
    s_jtag_tms = port:PL04<2><1><2><default>
    s_jtag_tck = port:PL05<2><1><2><default>
    s_jtag_tdo = port:PL06<2><1><2><default>
    s_jtag_tdi = port:PL07<2><1><2><default>
    
    [s_powchk]
    s_powchk_used = -2147483648
    s_power_reg = 0
    s_system_power = 50
    
    [sim0]
    scr_used = 0
    scr_vccen = port:PA06<2><default><default><default>
    scr_slk = port:PA07<2><default><default><default>
    scr_sda = port:PA08<2><default><default><default>
    scr_rst = port:PA09<2><default><default><default>
    scr_det = port:PA10<2><default><default><default>
    
    [ts0]
    tsc_used = 0
    tsc_clk = port:PE00<3><default><default><default>
    tsc_err = port:PE01<3><default><default><default>
    tsc_sync = port:PE02<3><default><default><default>
    tsc_dvld = port:PE03<3><default><default><default>
    tsc_d0 = port:PE04<3><default><default><default>
    tsc_d1 = port:PE05<3><default><default><default>
    tsc_d2 = port:PE06<3><default><default><default>
    tsc_d3 = port:PE07<3><default><default><default>
    tsc_d4 = port:PE08<3><default><default><default>
    tsc_d5 = port:PE09<3><default><default><default>
    tsc_d6 = port:PE10<3><default><default><default>
    tsc_d7 = port:PE11<3><default><default><default>
    
    [gpio_power_key]
    key_used = 1
    key_io = port:PL03<6><default><default><0>
    
    [key_para]
    key_used = 0
    key_cnt = 5
    key1_vol = 222
    key2_vol = 444
    key3_vol = 666
    key4_vol = 857
    key5_vol = 2000
    
    [d7s_para]
    d7s_used = 0
    din_gpio = port:PD00<1><default><default><1>
    clk_gpio = port:PD01<1><default><default><1>
    stb_gpio = port:PD02<1><default><default><1>
    
    ;----------------------------------------------------------------------------------
    ;mali parameters
    ;----------------------------------------------------------------------------------
    [mali_para]
    mali_used = 1
    mali_clkdiv = 1
    mali_extreme_freq = 600
    mali_extreme_vol = 1400
    
    ;----------------------------------------------------------------------------------
    ;1wire parameters (default - PA20)
    ;----------------------------------------------------------------------------------
    [w1_para]
    w1_used = 1
    gpio = 20
    
    [corekeeper]
    corekeeper_enabled = 1
    


  • @Reza
    Hello, it seems when i read your previous post, that you forgot to reverse your custom .fex file in the system.
    In fact, after modifying the .fex in nano, you must do "fex2bin" your .fex file to replace in the system the script.bin file.
    If you didn't to that, your .fex file is not used, is useless until you "fex2bin" it.

    Your pinout seems OK, a option is to use Pin 17 (3.3V) an Pin 20 (GND) to powering your NRF module.

    Regards.
    Seb.



  • @SdeWeb sorry i am worng in typing.but i do all steps but there is problem for me.
    pin 1 and 6 is 3.3v and gnd .what is defference between 1 & 17 and 6 & 20?

    this is all steps that i was follow:

    root@orangepione:~# sudo apt-get update
    Hit:1 http://ports.ubuntu.com xenial InRelease
    Hit:2 http://ports.ubuntu.com xenial-security InRelease
    Hit:3 http://apt.armbian.com xenial InRelease
    Hit:4 http://ports.ubuntu.com xenial-updates InRelease
    Hit:5 http://ports.ubuntu.com xenial-backports InRelease
    Reading package lists... Done
    root@orangepione:~# sudo apt-get install sunxi-tools
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    sunxi-tools is already the newest version (1.4.2-1~armbian5.25+1).
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    root@orangepione:~# bin2fex /boot/script.bin /tmp/orange.fex
    fexc-bin: /boot/script.bin: version: 1.2
    fexc-bin: /boot/script.bin: size: 34704 (81 sections), header value: 34704
    root@orangepione:~# nano /tmp/orange.fex
    

    and in orange.fex :

    [product]
    version = "100"
    machine = "Xunlong Orange Pi One"
    
    [platform]
    debug_mode = 1
    eraseflag = 1
    next_work = 2
    
    [target]
    boot_clock = 1008
    storage_type = -1
    
    [key_detect_en]
    keyen_flag = 0
    
    [fel_key]
    fel_key_max = 7
    fel_key_min = 2
    
    [card_boot]
    logical_start = 40960
    sprite_work_delay = 500
    sprite_err_delay = 200
    sprite_gpio0 = port:PL10<1><default><default><default>
    next_work = 3
    
    [box_start_os]
    used = 1
    start_type = 1
    irkey_used = 1
    pmukey_used = 1
    pmukey_num = 3
    led_power = 0
    led_state = 0
    
    [boot_init_gpio]
    used = 1
    gpio0 = port:PL10<1><default><default><1>
    gpio1 = port:PG11<1><default><default><1>
    
    [recovery_para]
    used = 1
    mode = 2
    recovery_key = port:PL04<0><default><default><default>
    
    [pm_para]
    standby_mode = 1
    
    [card0_boot_para]
    card_ctrl = 0
    card_high_speed = 1
    card_line = 4
    sdc_d1 = port:PF00<2><1><2><default>
    sdc_d0 = port:PF01<2><1><2><default>
    sdc_clk = port:PF02<2><1><2><default>
    sdc_cmd = port:PF03<2><1><2><default>
    sdc_d3 = port:PF04<2><1><2><default>
    sdc_d2 = port:PF05<2><1><2><default>
    
    [card2_boot_para]
    card_ctrl = 2
    card_high_speed = 1
    card_line = 8
    sdc_cmd = port:PC06<3><1><2><default>
    sdc_clk = port:PC05<3><1><2><default>
    sdc_d0 = port:PC08<3><1><2><default>
    sdc_d1 = port:PC09<3><1><2><default>
    sdc_d2 = port:PC10<3><1><2><default>
    sdc_d3 = port:PC11<3><1><2><default>
    sdc_d4 = port:PC12<3><1><2><default>
    sdc_d5 = port:PC13<3><1><2><default>
    sdc_d6 = port:PC14<3><1><2><default>
    sdc_d7 = port:PC15<3><1><2><default>
    sdc_2xmode = 1
    sdc_ddrmode = 1
    
    [twi_para]
    twi_port = 0
    twi_scl = port:PA11<2><default><default><default>
    twi_sda = port:PA12<2><default><default><default>
    
    [uart_para]
    uart_debug_port = 0
    uart_debug_tx = port:PA04<2><1><default><default>
    uart_debug_rx = port:PA05<2><1><default><default>
    
    [force_uart_para]
    force_uart_port = 0
    force_uart_tx = port:PF02<3><1><default><default>
    force_uart_rx = port:PF04<3><1><default><default>
    
    [jtag_para]
    jtag_enable = 0
    jtag_ms = port:PA00<3><default><default><default>
    jtag_ck = port:PA01<3><default><default><default>
    jtag_do = port:PA02<3><default><default><default>
    jtag_di = port:PA03<3><default><default><default>
    
    [clock]
    pll_video = 297
    pll_ve = 402
    pll_periph0 = 600
    pll_gpu = 576
    pll_periph1 = 600
    pll_de = 864
    
    [dram_para]
    dram_clk = 624
    dram_type = 3
    dram_zq = 0x3b3bfb
    dram_odt_en = 1
    dram_para1 = 283377664
    dram_para2 = 0
    dram_mr0 = 6208
    dram_mr1 = 64
    dram_mr2 = 24
    dram_mr3 = 2
    dram_tpr0 = 0x48a192
    dram_tpr1 = 0x1c2418d
    dram_tpr2 = 0x76051
    dram_tpr3 = 0x0
    dram_tpr4 = 0x0
    dram_tpr5 = 0x0
    dram_tpr6 = 0x64
    dram_tpr7 = 0x0
    dram_tpr8 = 0x0
    dram_tpr9 = 0x0
    dram_tpr10 = 0x0
    dram_tpr11 = 0x6aaa0000
    dram_tpr12 = 0x7979
    dram_tpr13 = 0x800800
    
    [wakeup_src_para]
    cpu_en = 0
    cpu_freq = 48
    pll_ratio = 273
    dram_selfresh_en = 1
    dram_freq = 36
    wakeup_src0 =
    wakeup_src_wl = port:PG10<4><default><default><0>
    wakeup_src_bt = port:PL03<6><default><default><0>
    
    [twi0]
    twi_used = 1
    twi_scl = port:PA11<2><default><default><default>
    twi_sda = port:PA12<2><default><default><default>
    
    [twi1]
    twi_used = 1
    twi_scl = port:PA18<3><default><default><default>
    twi_sda = port:PA19<3><default><default><default>
    
    [twi2]
    twi_used = 0
    twi_scl = port:PE12<3><default><default><default>
    twi_sda = port:PE13<3><default><default><default>
    
    [uart0]
    uart_used = 1
    uart_port = 0
    uart_type = 2
    uart_tx = port:PA04<2><1><default><default>
    uart_rx = port:PA05<2><1><default><default>
    
    [uart1]
    uart_used = 0
    uart_port = 1
    uart_type = 4
    uart_tx = port:PG06<2><1><default><default>
    uart_rx = port:PG07<2><1><default><default>
    uart_rts = port:PG08<2><1><default><default>
    uart_cts = port:PG09<2><1><default><default>
    
    [uart2]
    uart_used = 0
    uart_port = 2
    uart_type = 4
    uart_tx = port:PA00<2><1><default><default>
    uart_rx = port:PA01<2><1><default><default>
    uart_rts = port:PA02<2><1><default><default>
    uart_cts = port:PA03<2><1><default><default>
    
    [uart3]
    uart_used = 0
    uart_port = 3
    uart_type = 4
    uart_tx = port:PA13<3><1><default><default>
    uart_rx = port:PA14<3><1><default><default>
    uart_rts = port:PA15<3><1><default><default>
    uart_cts = port:PA16<3><1><default><default>
    
    [spi0]
    spi_used = 1
    spi_cs_bitmap = 1
    spi_mosi = port:PC00<3><default><default><default>
    spi_miso = port:PC01<3><default><default><default>
    spi_sclk = port:PC02<3><default><default><default>
    spi_cs0 = port:PC03<3><1><default><default>
    
    [spi1]
    spi_used = 0
    spi_cs_bitmap = 1
    spi_cs0 = port:PA13<2><1><default><default>
    spi_sclk = port:PA14<2><default><default><default>
    spi_mosi = port:PA15<2><default><default><default>
    spi_miso = port:PA16<2><default><default><default>
    
    [spi_devices]
    spi_dev_num = 1
    
    [spi_board0]
    modalias = "spidev"
    max_speed_hz = 33000000
    bus_num = 0
    chip_select = 0
    mode = 0
    full_duplex = 1
    manual_cs = 0
    
    ; NOTE: This section is necessary only for "gpio_sunxi" driver
    ; which is obsolete for H3 boards
    [gpio_para]
    gpio_used = 0
    gpio_num = 0
    
    ;[led_assign]
    ;normal_led = "gpio_pin_2"
    ;standby_led = "gpio_pin_1"
    
    [leds_para]
    leds_used = 1
    green_led = port:PL10<1><default><default><1>
    green_led_active_low = 0
    red_led = port:PA15<1><default><default><0>
    red_led_active_low = 0
    
    [ths_para]
    ths_used = 1
    ths_trip1_count = 6
    ths_trip1_0 = 75
    ths_trip1_1 = 80
    ths_trip1_2 = 85
    ths_trip1_3 = 90
    ths_trip1_4 = 95
    ths_trip1_5 = 105
    ths_trip1_6 = 0
    ths_trip1_7 = 0
    ths_trip1_0_min = 0
    ths_trip1_0_max = 1
    ths_trip1_1_min = 1
    ths_trip1_1_max = 2
    ths_trip1_2_min = 2
    ths_trip1_2_max = 3
    ths_trip1_3_min = 3
    ths_trip1_3_max = 4
    ths_trip1_4_min = 4
    ths_trip1_4_max = 5
    ths_trip1_5_min = 5
    ths_trip1_5_max = 7
    ths_trip1_6_min = 0
    ths_trip1_6_max = 0
    ths_trip2_count = 1
    ths_trip2_0 = 105
    
    [cooler_table]
    cooler_count = 8
    cooler0 = "1200000 4 4294967295 0"
    cooler1 = "912000 4 4294967295 0"
    cooler2 = "768000 4 4294967295 0"
    cooler3 = "648000 4 4294967295 0"
    cooler4 = "480000 4 4294967295 0"
    cooler5 = "480000 3 4294967295 0"
    cooler6 = "480000 2 4294967295 0"
    cooler7 = "480000 1 4294967295 0"
    
    [nand0_para]
    nand_support_2ch = 0
    nand0_used = 0
    nand0_we = port:PC00<2><default><default><default>
    nand0_ale = port:PC01<2><default><default><default>
    nand0_cle = port:PC02<2><default><default><default>
    nand0_ce1 = port:PC03<2><default><default><default>
    nand0_ce0 = port:PC04<2><default><default><default>
    nand0_nre = port:PC05<2><default><default><default>
    nand0_rb0 = port:PC06<2><default><default><default>
    nand0_rb1 = port:PC07<2><default><default><default>
    nand0_d0 = port:PC08<2><default><default><default>
    nand0_d1 = port:PC09<2><default><default><default>
    nand0_d2 = port:PC10<2><default><default><default>
    nand0_d3 = port:PC11<2><default><default><default>
    nand0_d4 = port:PC12<2><default><default><default>
    nand0_d5 = port:PC13<2><default><default><default>
    nand0_d6 = port:PC14<2><default><default><default>
    nand0_d7 = port:PC15<2><default><default><default>
    nand0_ndqs = port:PC16<2><default><default><default>
    
    [boot_disp]
    advert_disp = 0
    auto_hpd = 1
    output_type = 4
    hdmi_channel = 0
    hdmi_mode = 4
    cvbs_channel = 1
    cvbs_mode = 11
    output_full = 1
    hdmi_mode_check = 1
    
    [disp_init]
    disp_init_enable = 1
    disp_mode = 0
    screen0_output_type = 3
    screen0_output_mode = 5
    screen1_output_type = 3
    screen1_output_mode = 5
    fb0_format = 0
    fb0_width = 0
    fb0_height = 0
    fb1_format = 0
    fb1_width = 0
    fb1_height = 0
    
    [hdmi_para]
    hdmi_used = 1
    hdmi_power = "vcc-hdmi-18"
    
    [tv_para]
    tv_used = 0
    tv_dac_used = 1
    tv_dac_src0 = 0
    
    [pwm0_para]
    pwm_used = 0
    pwm_positive = port:PA05<3><0><default><default>
    ;       If set gamc_phy to use = 2
    
    [gmac0]
    gmac_used = 2
    gmac_power1 =
    
    [csi0]
    vip_used = 1
    vip_mode = 0
    vip_dev_qty = 1
    vip_define_sensor_list = 0
    vip_csi_pck = port:PE00<2><default><default><default>
    vip_csi_mck = port:PE01<2><default><default><default>
    vip_csi_hsync = port:PE02<2><default><default><default>
    vip_csi_vsync = port:PE03<2><default><default><default>
    vip_csi_d0 = port:PE04<2><default><default><default>
    vip_csi_d1 = port:PE05<2><default><default><default>
    vip_csi_d2 = port:PE06<2><default><default><default>
    vip_csi_d3 = port:PE07<2><default><default><default>
    vip_csi_d4 = port:PE08<2><default><default><default>
    vip_csi_d5 = port:PE09<2><default><default><default>
    vip_csi_d6 = port:PE10<2><default><default><default>
    vip_csi_d7 = port:PE11<2><default><default><default>
    vip_csi_sck = port:PE12<2><default><default><default>
    vip_csi_sda = port:PE13<2><default><default><default>
    vip_dev0_mname = "gc2035"
    vip_dev0_pos = "front"
    vip_dev0_lane = 1
    vip_dev0_twi_id = 2
    vip_dev0_twi_addr = 120
    vip_dev0_isp_used = 0
    vip_dev0_fmt = 0
    vip_dev0_stby_mode = 0
    vip_dev0_vflip = 1
    vip_dev0_hflip = 1
    vip_dev0_iovdd = ""
    vip_dev0_iovdd_vol = 2800000
    vip_dev0_avdd = ""
    vip_dev0_avdd_vol = 2800000
    vip_dev0_dvdd = ""
    vip_dev0_dvdd_vol = 1800000
    vip_dev0_afvdd = ""
    vip_dev0_afvdd_vol = 2800000
    vip_dev0_power_en = port:PA17<1><default><default><1>
    vip_dev0_reset = port:PE14<1><default><default><1>
    vip_dev0_pwdn = port:PE15<1><default><default><0>
    vip_dev0_flash_en =
    vip_dev0_flash_mode =
    vip_dev0_af_pwdn =
    vip_dev0_act_used = 0
    vip_dev0_act_name = "ad5820_act"
    vip_dev0_act_slave = 24
    vip_dev1_mname = ""
    vip_dev1_pos = "rear"
    vip_dev1_lane = 1
    vip_dev1_twi_id = 0
    vip_dev1_twi_addr =
    vip_dev1_isp_used = 0
    vip_dev1_fmt = 1
    vip_dev1_stby_mode = 0
    vip_dev1_vflip = 0
    vip_dev1_hflip = 0
    vip_dev1_iovdd = ""
    vip_dev1_iovdd_vol = 2800000
    vip_dev1_avdd = ""
    vip_dev1_avdd_vol = 2800000
    vip_dev1_dvdd = ""
    vip_dev1_dvdd_vol = 1500000
    vip_dev1_afvdd = ""
    vip_dev1_afvdd_vol = 2800000
    vip_dev1_power_en =
    vip_dev1_reset =
    vip_dev1_pwdn =
    vip_dev1_flash_en =
    vip_dev1_flash_mode =
    vip_dev1_af_pwdn =
    
    [tvout_para]
    tvout_used = 0
    tvout_channel_num =
    tv_en = 0
    
    [tvin_para]
    tvin_used = 0
    tvin_channel_num =
    
    [di_para]
    di_used = 1
    
    [mmc0_para]
    sdc_used = 1
    sdc_detmode = 3
    sdc_buswidth = 4
    sdc_clk = port:PF02<2><1><2><default>
    sdc_cmd = port:PF03<2><1><2><default>
    sdc_d0 = port:PF01<2><1><2><default>
    sdc_d1 = port:PF00<2><1><2><default>
    sdc_d2 = port:PF05<2><1><2><default>
    sdc_d3 = port:PF04<2><1><2><default>
    sdc_det = port:PF06<0><1><2><default>
    sdc_use_wp = 0
    sdc_wp =
    sdc_isio = 0
    sdc_regulator = "none"
    sdc_power_supply = "none"
    
    [mmc1_para]
    sdc_used = 1
    sdc_detmode = 4
    sdc_buswidth = 4
    sdc_clk = port:PG00<2><1><3><default>
    sdc_cmd = port:PG01<2><1><3><default>
    sdc_d0 = port:PG02<2><1><3><default>
    sdc_d1 = port:PG03<2><1><3><default>
    sdc_d2 = port:PG04<2><1><3><default>
    sdc_d3 = port:PG05<2><1><3><default>
    sdc_det =
    sdc_use_wp = 0
    sdc_wp =
    sdc_isio = 1
    sdc_regulator = "none"
    sdc_power_supply = "none"
    sdc_2xmode = 1
    sdc_ddrmode = 1
    
    [mmc2_para]
    sdc_used = 0
    sdc_detmode = 3
    sdc_buswidth = 8
    sdc_clk = port:PC05<3><1><2><default>
    sdc_cmd = port:PC06<3><1><2><default>
    sdc_d0 = port:PC08<3><1><2><default>
    sdc_d1 = port:PC09<3><1><2><default>
    sdc_d2 = port:PC10<3><1><2><default>
    sdc_d3 = port:PC11<3><1><2><default>
    sdc_d4 = port:PC12<3><1><2><default>
    sdc_d5 = port:PC13<3><1><2><default>
    sdc_d6 = port:PC14<3><1><2><default>
    sdc_d7 = port:PC15<3><1><2><default>
    emmc_rst = port:PC16<3><1><2><default>
    sdc_det =
    sdc_use_wp = 0
    sdc_wp =
    sdc_isio = 0
    sdc_regulator = "none"
    sdc_power_supply = "none"
    sdc_2xmode = 1
    sdc_ddrmode = 1
    
    [smc_para]
    smc_used = 0
    smc_rst = port:PA09<2><default><default><default>
    smc_vppen = port:PA20<3><default><default><default>
    smc_vppp = port:PA21<3><default><default><default>
    smc_det = port:PA10<2><default><default><default>
    smc_vccen = port:PA06<2><default><default><default>
    smc_sck = port:PA07<2><default><default><default>
    smc_sda = port:PA08<2><default><default><default>
    
    [usbc0]
    usb_used = 1
    usb_port_type = 2
    usb_detect_type = 0
    usb_id_gpio = port:PG12<0><1><default><default>
    usb_det_vbus_gpio = port:PG12<0><1><default><default>
    usb_drv_vbus_gpio = port:PL02<1><0><default><0>
    usb_host_init_state = 1
    usb_restrict_gpio =
    usb_restric_flag = 0
    usb_restric_voltage = 3550000
    usb_restric_capacity = 5
    usb_regulator_io = "nocare"
    usb_regulator_vol = 0
    usb_not_suspend = 0
    
    [usbc1]
    usb_used = 1
    usb_drv_vbus_gpio =
    usb_restrict_gpio =
    usb_host_init_state = 1
    usb_restric_flag = 0
    usb_regulator_io = "nocare"
    usb_regulator_vol = 0
    usb_not_suspend = 0
    
    [usbc2]
    usb_used = 1
    usb_drv_vbus_gpio =
    usb_restrict_gpio =
    usb_host_init_state = 1
    usb_restric_flag = 0
    usb_regulator_io = "nocare"
    usb_regulator_vol = 0
    usb_not_suspend = 0
    
    [usbc3]
    usb_used = 1
    usb_drv_vbus_gpio =
    usb_restrict_gpio =
    usb_host_init_state = 1
    usb_restric_flag = 0
    usb_regulator_io = "nocare"
    usb_regulator_vol = 0
    usb_not_suspend = 0
    
    [usb_feature]
    vendor_id = 6353
    mass_storage_id = 1
    adb_id = 2
    manufacturer_name = "USB Developer"
    product_name = "Android"
    serial_number = "20080411"
    
    [msc_feature]
    vendor_name = "USB 2.0"
    product_name = "USB Flash Driver"
    release = 100
    luns = 3
    
    [serial_feature]
    serial_unique = 0
    
    [module_para]
    module_num = 7
    module_power0 = "vcc-wifi-33"
    module_power0_vol = 0
    module_power1 =
    module_power1_vol =
    module_power2 =
    module_power2_vol =
    module_power3 =
    module_power3_vol =
    chip_en =
    lpo_use_apclk =
    
    [wifi_para]
    wifi_used = 0
    wifi_sdc_id = 1
    wifi_usbc_id = 5
    wifi_usbc_type = 1
    wl_reg_on = port:PL07<1><default><default><0>
    wl_host_wake = port:PG10<0><default><default><0>
    wl_host_wake_invert = 0
    
    [bt_para]
    bt_used = 0
    bt_uart_id = 1
    bt_rst_n =
    bt_wake =
    bt_host_wake =
    bt_host_wake_invert = 0
    
    [pcm0]
    daudio_used = 0
    daudio_master = 4
    daudio_select = 1
    audio_format = 1
    signal_inversion = 1
    mclk_fs = 128
    sample_resolution = 16
    slot_width_select = 32
    pcm_lrck_period = 32
    pcm_lrckr_period = 1
    msb_lsb_first = 0
    sign_extend = 0
    slot_index = 0
    slot_width = 32
    frame_width = 0
    tx_data_mode = 0
    rx_data_mode = 0
    i2s_mclk = port:PA18<2><1><default><default>
    i2s_bclk = port:PA19<2><1><default><default>
    i2s_dout0 = port:PA20<2><1><default><default>
    i2s_din = port:PA21<2><1><default><default>
    
    [pcm1]
    daudio_used = 0
    daudio_master = 4
    daudio_select = 1
    audio_format = 1
    signal_inversion = 1
    mclk_fs = 128
    sample_resolution = 16
    slot_width_select = 32
    pcm_lrck_period = 32
    pcm_lrckr_period = 1
    msb_lsb_first = 0
    sign_extend = 0
    slot_index = 0
    slot_width = 32
    frame_width = 0
    tx_data_mode = 0
    rx_data_mode = 0
    i2s_mclk = port:PG10<2><1><default><default>
    i2s_bclk = port:PG11<2><1><default><default>
    i2s_dout0 = port:PG12<2><1><default><default>
    i2s_din = port:PG13<2><1><default><default>
    
    [audio0]
    audio_used = 1
    lineout_vol = 31
    cap_vol = 5
    audio_hp_ldo = "none"
    adcagc_used = 0
    adcdrc_used = 0
    dacdrc_used = 0
    adchpf_used = 0
    dachpf_used = 0
    audio_pa_ctrl = port:PA16<1><default><default><0>
    
    [spdif0]
    spdif_used = 0
    spdif_dout = port:PA17<2><1><default><default>
    
    [audiohub]
    hub_used = 0
    codec_used = 1
    spdif_used = 1
    hdmi_used = 1
    
    [s_cir0]
    ir_used = 0
    ir_rx = port:PL11<2><1><default><default>
    ir_power_key_code0 = 87
    ir_addr_code0 = 40704
    ir_power_key_code1 = 26
    ir_addr_code1 = 64260
    ir_power_key_code2 = 20
    ir_addr_code2 = 32640
    ir_power_key_code3 = 21
    ir_addr_code3 = 32640
    ir_power_key_code4 = 11
    ir_addr_code4 = 63240
    ir_power_key_code5 = 3
    ir_addr_code5 = 239
    ir_power_key_code6 = 159
    ir_addr_code6 = 19635
    ir_power_key_code7 = 10
    ir_addr_code7 = 30536
    ir_power_key_code8 = 69
    ir_addr_code8 = 48386
    ir_power_key_code9 = 77
    ir_addr_code9 = 56865
    ir_power_key_code10 = 24
    ir_addr_code10 = 65025
    ir_power_key_code11 = 87
    ir_addr_code11 = 65280
    ir_power_key_code12 = 77
    ir_addr_code12 = 65344
    
    [cir]
    ir_used = 1
    ir_tx = port:PH07<2><default><default><default>
    
    ;----------------------------------------------------------------------------------
    ; dvfs voltage-frequency table configuration
    ;
    ; pmuic_type:0:none, 1:gpio, 2:i2c
    ; pmu_gpio0: gpio config.
    ; pmu_levelx: 0~9999: voltage(mV), 10000~90000:gpio0 state. voltage form high to low.
    ;
    ; extremity_freq(Hz): cpu extremity frequency when run benckmark or demo apk
    ;                     1536MHz@1500mV with radiator, 1296MHz@1340mV without radiator
    ; max_freq: cpu maximum frequency, based on Hz, can not be more than 1200MHz
    ; min_freq: cpu minimum frequency, based on Hz, can not be less than 60MHz
    ;
    ; LV_count: count of LV_freq/LV_volt, must be < 16
    ;
    ; LV1: core vdd is 1.50v if cpu frequency is (1296Mhz,  1536Mhz]
    ; LV2: core vdd is 1.34v if cpu frequency is (1200Mhz,  1296Mhz]
    ; LV3: core vdd is 1.32v if cpu frequency is (1008Mhz,  1200Mhz]
    ; LV4: core vdd is 1.20v if cpu frequency is (816Mhz,   1008Mhz]
    ; LV5: core vdd is 1.10v if cpu frequency is (648Mhz,    816Mhz]
    ; LV6: core vdd is 1.04v if cpu frequency is (0Mhz,      648Mhz]
    ; LV7: core vdd is 1.04v if cpu frequency is (0Mhz,      648Mhz]
    ; LV8: core vdd is 1.04v if cpu frequency is (0Mhz,      648Mhz]
    ;
    ;----------------------------------------------------------------------------------
    [dvfs_table]
    pmuic_type = 1
    pmu_gpio0 = port:PL06<1><1><2><1>
    pmu_level0 = 11300
    pmu_level1 = 1100
    max_freq = 1200000000
    min_freq = 480000000
    LV_count = 5
    LV1_freq = 1200000000
    LV1_volt = 1300
    LV2_freq = 1008000000
    LV2_volt = 1300
    LV3_freq = 912000000
    LV3_volt = 1100
    LV4_freq = 648000000
    LV4_volt = 1100
    LV5_freq = 480000000
    LV5_volt = 1100
    
    [gpu_dvfs_table]
    G_LV_count = 3
    G_LV0_freq = 312000000
    G_LV0_volt = 1200000
    G_LV1_freq = 384000000
    G_LV1_volt = 1200000
    G_LV2_freq = 456000000
    G_LV2_volt = 1200000
    
    [Vdevice]
    Vdevice_used = 0
    Vdevice_0 = port:PH10<5><1><2><default>
    Vdevice_1 = port:PH11<5><1><2><default>
    
    [s_uart0]
    s_uart_used = 0
    s_uart_tx = port:PL02<2><default><default><default>
    s_uart_rx = port:PL03<2><default><default><default>
    
    [s_rsb0]
    s_rsb_used = 1
    s_rsb_sck = port:PL00<2><1><2><default>
    s_rsb_sda = port:PL01<2><1><2><default>
    
    [s_jtag0]
    s_jtag_used = 0
    s_jtag_tms = port:PL04<2><1><2><default>
    s_jtag_tck = port:PL05<2><1><2><default>
    s_jtag_tdo = port:PL06<2><1><2><default>
    s_jtag_tdi = port:PL07<2><1><2><default>
    
    [s_powchk]
    s_powchk_used = -2147483648
    s_power_reg = 0
    s_system_power = 50
    
    [sim0]
    scr_used = 0
    scr_vccen = port:PA06<2><default><default><default>
    scr_slk = port:PA07<2><default><default><default>
    scr_sda = port:PA08<2><default><default><default>
    scr_rst = port:PA09<2><default><default><default>
    scr_det = port:PA10<2><default><default><default>
    
    [ts0]
    tsc_used = 0
    tsc_clk = port:PE00<3><default><default><default>
    tsc_err = port:PE01<3><default><default><default>
    tsc_sync = port:PE02<3><default><default><default>
    tsc_dvld = port:PE03<3><default><default><default>
    tsc_d0 = port:PE04<3><default><default><default>
    tsc_d1 = port:PE05<3><default><default><default>
    tsc_d2 = port:PE06<3><default><default><default>
    tsc_d3 = port:PE07<3><default><default><default>
    tsc_d4 = port:PE08<3><default><default><default>
    tsc_d5 = port:PE09<3><default><default><default>
    tsc_d6 = port:PE10<3><default><default><default>
    tsc_d7 = port:PE11<3><default><default><default>
    
    [gpio_power_key]
    key_used = 1
    key_io = port:PL03<6><default><default><0>
    
    [key_para]
    key_used = 0
    key_cnt = 5
    key1_vol = 222
    key2_vol = 444
    key3_vol = 666
    key4_vol = 857
    key5_vol = 2000
    
    [d7s_para]
    d7s_used = 0
    din_gpio = port:PD00<1><default><default><1>
    clk_gpio = port:PD01<1><default><default><1>
    stb_gpio = port:PD02<1><default><default><1>
    
    ;----------------------------------------------------------------------------------
    ;mali parameters
    ;----------------------------------------------------------------------------------
    [mali_para]
    mali_used = 1
    mali_clkdiv = 1
    mali_extreme_freq = 600
    mali_extreme_vol = 1400
    
    ;----------------------------------------------------------------------------------
    ;1wire parameters (default - PA20)
    ;----------------------------------------------------------------------------------
    [w1_para]
    w1_used = 1
    gpio = 20
    
    [corekeeper]
    corekeeper_enabled = 1
    

    then:

    root@orangepione:~# sudo fex2bin /tmp/orange.fex /boot/script.bin
    root@orangepione:~# sudo reboot
    

    then:

    root@orangepione:~# ls -l /dev/spidev*
    crw------- 1 root root 153, 0 Mar 19 22:57 /dev/spidev0.0
    root@orangepione:~# sudo modprobe gpio-sunxi
    root@orangepione:~# echo "gpio-sunxi" >> /etc/modules
    

    then:

    root@orangepione:~# git clone https://github.com/mysensors/MySensors.git
    Cloning into 'MySensors'...
    remote: Counting objects: 13985, done.
    remote: Compressing objects: 100% (45/45), done.
    remote: Total 13985 (delta 8), reused 0 (delta 0), pack-reused 13940
    Receiving objects: 100% (13985/13985), 9.70 MiB | 310.00 KiB/s, done.
    Resolving deltas: 100% (8436/8436), done.
    Checking connectivity... done.
    root@orangepione:~# cd MySensors
    root@orangepione:~/MySensors# ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=67
    [SECTION] Detecting target machine.
      [OK] machine detected: SoC=H3, Type=unknown, CPU=armv7l.
    [SECTION] Checking GPIO Sysfs.
      [OK] /sys/class/gpio/export found
    [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@orangepione:~/MySensors# ./configure --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyUSB020
    [SECTION] Detecting target machine.
      [OK] machine detected: SoC=H3, Type=unknown, CPU=armv7l.
    [SECTION] Checking GPIO Sysfs.
      [OK] /sys/class/gpio/export found
    [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@orangepione:~/MySensors# make
    gcc -MT build/drivers/Linux/log.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/log.c -o build/drivers/Linux/log.o
    g++ -MT build/drivers/Linux/noniso.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/Stream.cpp -o build/drivers/Linux/Stream.o
    g++ -MT build/drivers/Linux/IPAddress.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/IPAddress.cpp -o build/drivers/Linux/IPAddress.o
    g++ -MT build/drivers/Linux/compatibility.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/interrupt.cpp -o build/drivers/Linux/interrupt.o
    g++ -MT build/drivers/Linux/SerialSimulator.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/Linux/SerialSimulator.cpp -o build/drivers/Linux/SerialSimulator.o
    g++ -MT build/drivers/Linux/SoftEeprom.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -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=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o
    g++ -MT build/drivers/SPIDEV/SPI.o -MMD -MP -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -DMY_RADIO_NRF24 -DMY_GATEWAY_SERIAL -DMY_DEBUG -DLINUX_SPI_SPIDEV -DMY_LINUX_SERIAL_PTY=\"/dev/ttyUSB020\" -DMY_LINUX_IS_SERIAL_PTY  -Ofast -g -Wall -Wextra  -I. -I./core -I./drivers/Linux -I./drivers/SPIDEV -c drivers/SPIDEV/SPI.cpp -o build/drivers/SPIDEV/SPI.o
    g++ -pthread  -o bin/mysgw build/drivers/Linux/log.o build/drivers/Linux/noniso.o build/drivers/Linux/GPIO.o build/drivers/Linux/Print.o build/drivers/Linux/EthernetClient.o build/drivers/Linux/SerialPort.o build/drivers/Linux/Stream.o build/drivers/Linux/IPAddress.o build/drivers/Linux/compatibility.o build/drivers/Linux/interrupt.o build/drivers/Linux/SerialSimulator.o build/drivers/Linux/SoftEeprom.o build/drivers/Linux/EthernetServer.o build/examples_linux/mysgw.o  build/drivers/SPIDEV/SPI.o
    root@orangepione:~/MySensors# sudo ./bin/mysgw -d
    mysgw: Starting gateway...
    mysgw: Protocol version - 2.2.0-beta
    mysgw: MCO:BGN:INIT GW,CP=RNNG----,VER=2.2.0-beta
    mysgw: TSM:INIT
    mysgw: TSF:WUR:MS=0
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=1
    mysgw: TSM:FAIL:PDT
    mysgw: TSM:FAIL:RE-INIT
    mysgw: TSM:INIT
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=2
    mysgw: TSM:FAIL:PDT
    mysgw: TSM:FAIL:RE-INIT
    mysgw: TSM:INIT
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=3
    mysgw: TSM:FAIL:PDT
    ^Z
    [1]+  Stopped                 sudo ./bin/mysgw -d
    root@orangepione:~/MySensors#
    

    also i change 3.3v and gnd to 17 and 20 but . . . šŸ˜ž



  • Hi all
    I have problems with Orange zero to make it work as a MYS gateway.

    What is done:

    1. take Debian img from https://www.armbian.com/orange-pi-zero/
    2. added /dev/spidev1.0 using instructions from here: https://www.mysensors.org/build/orange
      So I actually see spidev1.0 in ls -l /dev/spidev*
    3. wired everything up as is described here: https://www.mysensors.org/build/orange
      So everything is connected to the spi1 pins.
      I used nrf24 with a capacitor and without - same result
    4. ran commands
    sudo modprobe gpio-sunxi
    
    echo "gpio-sunxi" >> /etc/modules
    
    git clone https://github.com/mysensors/MySensors.git
    
    cd MySensors
    
    ./configure --spi-spidev-device=/dev/spidev1.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=13 --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyUSB020 --my-serial-baudrate=115200
    
    sudo make
    
    sudo make install
    
    sudo systemctl enable mysgw.service
    sudo systemctl start mysgw.service
    
    sudo ./bin/mysgw -d
    

    And I see failed logs

    mysgw: Starting gateway...
    mysgw: Protocol version - 2.2.0-beta
    mysgw: MCO:BGN:INIT GW,CP=RNNG----,VER=2.2.0-beta
    mysgw: TSM:INIT
    mysgw: TSF:WUR:MS=0
    mysgw: !TSM:INIT:TSP FAIL
    mysgw: TSM:FAIL:CNT=1
    mysgw: TSM:FAIL:PDT
    mysgw: TSM:FAIL:RE-INIT
    mysgw: TSM:INIT
    ....
    

    Has anyone set it up for Zero?
    What am I doing wrong?

    Thanks in advance!



  • @giran hi i don't think you can run the service and the binary standalone at the same time since hardware access is exclusive. Try to stop the service and then run the binary again.



  • @pansen Thanks for answering.
    Even when I stopped the service
    or when I run

    ./configure --spi-spidev-device=/dev/spidev1.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=13 --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyUSB020 --my-serial-baudrate=115200
    
    sudo make
    
    sudo ./bin/mysgw -d
    

    I still see failed logs.



  • @giran Hi, how did you connect you NRF module on the Orange PI ?
    Is you use the GPIO, you should'nt use TTY stup for MuSensors.

    Look above my setup in this forum, if you use the GPIO.

    Regards.



  • @SdeWeb Just a minute ago everything worked )) With all steps I described, instead of the 1st one.
    I faced with issues when I installed Debian Jessie (https://www.armbian.com/orange-pi-zero/)
    but when I tried Ubuntu Xential - everything worked!

    By using this img time to time my OrangeZero stops to respond. I'll investigate this later.

    But for now I'm happy I set up MYS.
    Thanks everyone who was trying to help. And I believe someone would find this post useful, with trying another img.


  • Code Contributor

    Support for RFM69 has been added, check the build guide for more information.



  • Hi, everyone

    I hope someone can help me, I'm lost trying to wrap my head around the proper pin numbers. I'm using a 433MHz RFM69 connected to an OrangePi PC with this configuration:

       OPI PC <-----------> RFM69
    17 / 3.3V <-----------> VCC
     19 / PC0 <-----------> MOSI
     21 / PC1 <-----------> MISO
     22 / PA2 <-----------> DI00
     23 / PC2 <-----------> SCK
     24 / PC3 <-----------> NSS
     25 / GND <-----------> GND
    

    Pin codes were taken from this picture:
    OrangePi pins

    I have the most recent version of the code in the development branch:

    fanta@orangepipc:~/MySensors$ git status
    On branch development
    Your branch is up-to-date with 'origin/development'.
    nothing to commit, working directory clean
    fanta@orangepipc:~/MySensors$ git log --pretty=format:'%h' -n 1
    ff0953d
    

    Although the OrangePi PC apparently does not use spidev0.0 for NAND flash like the Zero, I ended up changing the FEX. This is my current state:

    [product]
    version = "100"
    machine = "orangepi-pc"
    
    [platform]
    debug_mode = 1
    eraseflag = 1
    next_work = 2
    
    [target]
    boot_clock = 1008
    storage_type = -1
    
    [key_detect_en]
    keyen_flag = 0
    
    [fel_key]
    fel_key_max = 7
    fel_key_min = 2
    
    [card_boot]
    logical_start = 40960
    sprite_work_delay = 500
    sprite_err_delay = 200
    sprite_gpio0 = port:PL10<1><default><default><default>
    next_work = 3
    
    [box_start_os]
    used = 1
    start_type = 1
    irkey_used = 1
    pmukey_used = 1
    pmukey_num = 3
    led_power = 0
    led_state = 0
    
    [boot_init_gpio]
    used = 1
    gpio0 = port:PL10<1><default><default><1>
    gpio1 = port:PG11<1><default><default><1>
    
    [recovery_para]
    used = 1
    mode = 2
    recovery_key = port:PL04<0><default><default><default>
    
    [pm_para]
    standby_mode = 1
    
    [card0_boot_para]
    card_ctrl = 0
    card_high_speed = 1
    card_line = 4
    sdc_d1 = port:PF00<2><1><2><default>
    sdc_d0 = port:PF01<2><1><2><default>
    sdc_clk = port:PF02<2><1><2><default>
    sdc_cmd = port:PF03<2><1><2><default>
    sdc_d3 = port:PF04<2><1><2><default>
    sdc_d2 = port:PF05<2><1><2><default>
    
    [card2_boot_para]
    card_ctrl = 2
    card_high_speed = 1
    card_line = 8
    sdc_cmd = port:PC06<3><1><2><default>
    sdc_clk = port:PC05<3><1><2><default>
    sdc_d0 = port:PC08<3><1><2><default>
    sdc_d1 = port:PC09<3><1><2><default>
    sdc_d2 = port:PC10<3><1><2><default>
    sdc_d3 = port:PC11<3><1><2><default>
    sdc_d4 = port:PC12<3><1><2><default>
    sdc_d5 = port:PC13<3><1><2><default>
    sdc_d6 = port:PC14<3><1><2><default>
    sdc_d7 = port:PC15<3><1><2><default>
    sdc_2xmode = 1
    sdc_ddrmode = 1
    
    [twi_para]
    twi_port = 0
    twi_scl = port:PA11<2><default><default><default>
    twi_sda = port:PA12<2><default><default><default>
    
    [uart_para]
    uart_debug_port = 0
    uart_debug_tx = port:PA04<2><1><default><default>
    uart_debug_rx = port:PA05<2><1><default><default>
    
    [force_uart_para]
    force_uart_port = 0
    force_uart_tx = port:PF02<3><1><default><default>
    force_uart_rx = port:PF04<3><1><default><default>
    
    [jtag_para]
    jtag_enable = 0
    jtag_ms = port:PA00<3><default><default><default>
    jtag_ck = port:PA01<3><default><default><default>
    jtag_do = port:PA02<3><default><default><default>
    jtag_di = port:PA03<3><default><default><default>
    
    [clock]
    pll_video = 297
    pll_ve = 402
    pll_periph0 = 600
    pll_gpu = 576
    pll_periph1 = 600
    pll_de = 864
    
    [dram_para]
    dram_clk = 624
    dram_type = 3
    dram_zq = 0x3b3bfb
    dram_odt_en = 1
    dram_para1 = 283377664
    dram_para2 = 0
    dram_mr0 = 6208
    dram_mr1 = 64
    dram_mr2 = 24
    dram_mr3 = 2
    dram_tpr0 = 0x48a192
    dram_tpr1 = 0x1c2418d
    dram_tpr2 = 0x76051
    dram_tpr3 = 0x0
    dram_tpr4 = 0x0
    dram_tpr5 = 0x0
    dram_tpr6 = 0x64
    dram_tpr7 = 0x0
    dram_tpr8 = 0x0
    dram_tpr9 = 0x0
    dram_tpr10 = 0x0
    dram_tpr11 = 0x6aaa0000
    dram_tpr12 = 0x7979
    dram_tpr13 = 0x800800
    
    [wakeup_src_para]
    cpu_en = 0
    cpu_freq = 48
    pll_ratio = 273
    dram_selfresh_en = 1
    dram_freq = 36
    wakeup_src0 =
    wakeup_src_wl = port:PG10<4><default><default><0>
    wakeup_src_bt = port:PL03<6><default><default><0>
    
    [twi0]
    twi_used = 1
    twi_scl = port:PA11<2><default><default><default>
    twi_sda = port:PA12<2><default><default><default>
    
    [twi1]
    twi_used = 1
    twi_scl = port:PA18<3><default><default><default>
    twi_sda = port:PA19<3><default><default><default>
    
    [twi2]
    twi_used = 0
    twi_scl = port:PE12<3><default><default><default>
    twi_sda = port:PE13<3><default><default><default>
    
    [uart0]
    uart_used = 1
    uart_port = 0
    uart_type = 2
    uart_tx = port:PA04<2><1><default><default>
    uart_rx = port:PA05<2><1><default><default>
    
    [uart1]
    uart_used = 0
    uart_port = 1
    uart_type = 4
    uart_tx = port:PG06<2><1><default><default>
    uart_rx = port:PG07<2><1><default><default>
    uart_rts = port:PG08<2><1><default><default>
    uart_cts = port:PG09<2><1><default><default>
    
    [uart2]
    uart_used = 0
    uart_port = 2
    uart_type = 4
    uart_tx = port:PA00<2><1><default><default>
    uart_rx = port:PA01<2><1><default><default>
    uart_rts = port:PA02<2><1><default><default>
    uart_cts = port:PA03<2><1><default><default>
    
    [uart3]
    uart_used = 0
    uart_port = 3
    uart_type = 4
    uart_tx = port:PA13<3><1><default><default>
    uart_rx = port:PA14<3><1><default><default>
    uart_rts = port:PA15<3><1><default><default>
    uart_cts = port:PA16<3><1><default><default>
    
    [spi0]
    spi_used = 1
    spi_cs_bitmap = 1
    spi_mosi = port:PC00<3><default><default><default>
    spi_miso = port:PC01<3><default><default><default>
    spi_sclk = port:PC02<3><default><default><default>
    spi_cs0 = port:PC03<3><1><default><default>
    
    [spi1]
    spi_used = 1
    spi_cs_bitmap = 1
    spi_cs0 = port:PA13<2><1><default><default>
    spi_sclk = port:PA14<2><default><default><default>
    spi_mosi = port:PA15<2><default><default><default>
    spi_miso = port:PA16<2><default><default><default>
    
    [spi_devices]
    spi_dev_num = 2
    
    [spi_board0]
    modalias = "spidev"
    max_speed_hz = 33000000
    bus_num = 0
    chip_select = 0
    mode = 0
    full_duplex = 1
    manual_cs = 0
    
    [spi_board1]
    modalias = "spidev"
    max_speed_hz = 33000000
    bus_num = 1
    chip_select = 0
    mode = 0
    full_duplex = 1
    manual_cs = 0
    
    [gpio_para]
    gpio_used = 1
    gpio_num = 20
    gpio_pin_1 = port:PA06<1><default><default><0>
    gpio_pin_2 = port:PA13<1><default><default><0>
    gpio_pin_3 = port:PA14<1><default><default><0>
    gpio_pin_4 = port:PA01<1><default><default><0>
    gpio_pin_5 = port:PD14<1><default><default><0>
    gpio_pin_6 = port:PA00<1><default><default><0>
    gpio_pin_7 = port:PA03<1><default><default><0>
    gpio_pin_8 = port:PC04<1><default><default><0>
    gpio_pin_9 = port:PC07<1><default><default><0>
    gpio_pin_10 = port:PA02<1><default><default><0>
    gpio_pin_11 = port:PA21<1><default><default><0>
    gpio_pin_12 = port:PA07<1><default><default><0>
    gpio_pin_13 = port:PA08<1><default><default><0>
    gpio_pin_14 = port:PG08<1><default><default><0>
    gpio_pin_15 = port:PA09<1><default><default><0>
    gpio_pin_16 = port:PA10<1><default><default><0>
    gpio_pin_17 = port:PG09<1><default><default><0>
    gpio_pin_18 = port:PG06<1><default><default><0>
    gpio_pin_19 = port:PG07<1><default><default><0>
    gpio_pin_20 = port:PC03<1><default><default><0>
    
    [leds_para]
    leds_used = 1
    green_led = port:PL10<1><default><default><1>
    green_led_active_low = 0
    red_led = port:PA15<1><default><default><0>
    red_led_active_low = 0
    
    [ths_para]
    ths_used = 1
    ths_trip1_count = 6
    ths_trip1_0 = 75
    ths_trip1_1 = 80
    ths_trip1_2 = 85
    ths_trip1_3 = 90
    ths_trip1_4 = 95
    ths_trip1_5 = 105
    ths_trip1_6 = 0
    ths_trip1_7 = 0
    ths_trip1_0_min = 0
    ths_trip1_0_max = 1
    ths_trip1_1_min = 1
    ths_trip1_1_max = 2
    ths_trip1_2_min = 2
    ths_trip1_2_max = 3
    ths_trip1_3_min = 3
    ths_trip1_3_max = 4
    ths_trip1_4_min = 4
    ths_trip1_4_max = 8
    ths_trip1_5_min = 8
    ths_trip1_5_max = 8
    ths_trip1_6_min = 0
    ths_trip1_6_max = 0
    ths_trip2_count = 1
    ths_trip2_0 = 105
    
    [cooler_table]
    cooler_count = 9
    cooler0 = "1296000 4 4294967295 0"
    cooler1 = "1200000 4 4294967295 0"
    cooler2 = "1008000 4 4294967295 0"
    cooler3 = "816000 4 4294967295 0"
    cooler4 = "648000 4 4294967295 0"
    cooler5 = "480000 4 4294967295 0"
    cooler6 = "480000 3 4294967295 0"
    cooler7 = "480000 2 4294967295 0"
    cooler8 = "480000 1 4294967295 0"
    
    [nand0_para]
    nand_support_2ch = 0
    nand0_used = 0
    nand0_we = port:PC00<2><default><default><default>
    nand0_ale = port:PC01<2><default><default><default>
    nand0_cle = port:PC02<2><default><default><default>
    nand0_ce1 = port:PC03<2><default><default><default>
    nand0_ce0 = port:PC04<2><default><default><default>
    nand0_nre = port:PC05<2><default><default><default>
    nand0_rb0 = port:PC06<2><default><default><default>
    nand0_rb1 = port:PC07<2><default><default><default>
    nand0_d0 = port:PC08<2><default><default><default>
    nand0_d1 = port:PC09<2><default><default><default>
    nand0_d2 = port:PC10<2><default><default><default>
    nand0_d3 = port:PC11<2><default><default><default>
    nand0_d4 = port:PC12<2><default><default><default>
    nand0_d5 = port:PC13<2><default><default><default>
    nand0_d6 = port:PC14<2><default><default><default>
    nand0_d7 = port:PC15<2><default><default><default>
    nand0_ndqs = port:PC16<2><default><default><default>
    
    [boot_disp]
    advert_disp = 0
    auto_hpd = 1
    output_type = 4
    hdmi_channel = 0
    hdmi_mode = 4
    cvbs_channel = 1
    cvbs_mode = 11
    output_full = 1
    hdmi_mode_check = 1
    
    [disp_init]
    disp_init_enable = 1
    disp_mode = 0
    screen0_output_type = 3
    screen0_output_mode = 5
    screen1_output_type = 3
    screen1_output_mode = 5
    fb0_format = 0
    fb0_width = 0
    fb0_height = 0
    fb1_format = 0
    fb1_width = 0
    fb1_height = 0
    
    [hdmi_para]
    hdmi_used = 1
    hdmi_power = "vcc-hdmi-18"
    
    [tv_para]
    tv_used = 0
    tv_dac_used = 1
    tv_dac_src0 = 0
    
    [pwm0_para]
    pwm_used = 0
    pwm_positive = port:PA05<3><0><default><default>
    
    [gmac0]
    gmac_used = 2
    gmac_power1 =
    
    [csi0]
    vip_used = 1
    vip_mode = 0
    vip_dev_qty = 1
    vip_define_sensor_list = 0
    vip_csi_pck = port:PE00<2><default><default><default>
    vip_csi_mck = port:PE01<2><default><default><default>
    vip_csi_hsync = port:PE02<2><default><default><default>
    vip_csi_vsync = port:PE03<2><default><default><default>
    vip_csi_d0 = port:PE04<2><default><default><default>
    vip_csi_d1 = port:PE05<2><default><default><default>
    vip_csi_d2 = port:PE06<2><default><default><default>
    vip_csi_d3 = port:PE07<2><default><default><default>
    vip_csi_d4 = port:PE08<2><default><default><default>
    vip_csi_d5 = port:PE09<2><default><default><default>
    vip_csi_d6 = port:PE10<2><default><default><default>
    vip_csi_d7 = port:PE11<2><default><default><default>
    vip_csi_sck = port:PE12<2><default><default><default>
    vip_csi_sda = port:PE13<2><default><default><default>
    vip_dev0_mname = "gc2035"
    vip_dev0_pos = "front"
    vip_dev0_lane = 1
    vip_dev0_twi_id = 2
    vip_dev0_twi_addr = 120
    vip_dev0_isp_used = 0
    vip_dev0_fmt = 0
    vip_dev0_stby_mode = 0
    vip_dev0_vflip = 1
    vip_dev0_hflip = 1
    vip_dev0_iovdd = ""
    vip_dev0_iovdd_vol = 2800000
    vip_dev0_avdd = ""
    vip_dev0_avdd_vol = 2800000
    vip_dev0_dvdd = ""
    vip_dev0_dvdd_vol = 1800000
    vip_dev0_afvdd = ""
    vip_dev0_afvdd_vol = 2800000
    vip_dev0_power_en = port:PA17<1><default><default><1>
    vip_dev0_reset = port:PE14<1><default><default><1>
    vip_dev0_pwdn = port:PE15<1><default><default><0>
    vip_dev0_flash_en =
    vip_dev0_flash_mode =
    vip_dev0_af_pwdn =
    vip_dev0_act_used = 0
    vip_dev0_act_name = "ad5820_act"
    vip_dev0_act_slave = 24
    vip_dev1_mname = ""
    vip_dev1_pos = "rear"
    vip_dev1_lane = 1
    vip_dev1_twi_id = 0
    vip_dev1_twi_addr =
    vip_dev1_isp_used = 0
    vip_dev1_fmt = 1
    vip_dev1_stby_mode = 0
    vip_dev1_vflip = 0
    vip_dev1_hflip = 0
    vip_dev1_iovdd = ""
    vip_dev1_iovdd_vol = 2800000
    vip_dev1_avdd = ""
    vip_dev1_avdd_vol = 2800000
    vip_dev1_dvdd = ""
    vip_dev1_dvdd_vol = 1500000
    vip_dev1_afvdd = ""
    vip_dev1_afvdd_vol = 2800000
    vip_dev1_power_en =
    vip_dev1_reset =
    vip_dev1_pwdn =
    vip_dev1_flash_en =
    vip_dev1_flash_mode =
    vip_dev1_af_pwdn =
    
    [tvout_para]
    tvout_used =
    tvout_channel_num =
    tv_en =
    
    [tvin_para]
    tvin_used =
    tvin_channel_num =
    
    [di_para]
    di_used = 1
    
    [mmc0_para]
    sdc_used = 1
    sdc_detmode = 3
    sdc_buswidth = 4
    sdc_clk = port:PF02<2><1><2><default>
    sdc_cmd = port:PF03<2><1><2><default>
    sdc_d0 = port:PF01<2><1><2><default>
    sdc_d1 = port:PF00<2><1><2><default>
    sdc_d2 = port:PF05<2><1><2><default>
    sdc_d3 = port:PF04<2><1><2><default>
    sdc_det = port:PF06<0><1><2><default>
    sdc_use_wp = 0
    sdc_wp =
    sdc_isio = 0
    sdc_regulator = "none"
    sdc_power_supply = "none"
    
    [mmc1_para]
    sdc_used = 1
    sdc_detmode = 4
    sdc_buswidth = 4
    sdc_clk = port:PG00<2><1><3><default>
    sdc_cmd = port:PG01<2><1><3><default>
    sdc_d0 = port:PG02<2><1><3><default>
    sdc_d1 = port:PG03<2><1><3><default>
    sdc_d2 = port:PG04<2><1><3><default>
    sdc_d3 = port:PG05<2><1><3><default>
    sdc_det =
    sdc_use_wp = 0
    sdc_wp =
    sdc_isio = 1
    sdc_regulator = "none"
    sdc_power_supply = "none"
    sdc_2xmode = 1
    sdc_ddrmode = 1
    
    [mmc2_para]
    sdc_used = 0
    sdc_detmode = 3
    sdc_buswidth = 8
    sdc_clk = port:PC05<3><1><2><default>
    sdc_cmd = port:PC06<3><1><2><default>
    sdc_d0 = port:PC08<3><1><2><default>
    sdc_d1 = port:PC09<3><1><2><default>
    sdc_d2 = port:PC10<3><1><2><default>
    sdc_d3 = port:PC11<3><1><2><default>
    sdc_d4 = port:PC12<3><1><2><default>
    sdc_d5 = port:PC13<3><1><2><default>
    sdc_d6 = port:PC14<3><1><2><default>
    sdc_d7 = port:PC15<3><1><2><default>
    emmc_rst = port:PC16<3><1><2><default>
    sdc_det =
    sdc_use_wp = 0
    sdc_wp =
    sdc_isio = 0
    sdc_regulator = "none"
    sdc_power_supply = "none"
    sdc_2xmode = 1
    sdc_ddrmode = 1
    
    [smc_para]
    smc_used = 0
    smc_rst = port:PA09<2><default><default><default>
    smc_vppen = port:PA20<3><default><default><default>
    smc_vppp = port:PA21<3><default><default><default>
    smc_det = port:PA10<2><default><default><default>
    smc_vccen = port:PA06<2><default><default><default>
    smc_sck = port:PA07<2><default><default><default>
    smc_sda = port:PA08<2><default><default><default>
    
    [usbc0]
    usb_used = 1
    usb_port_type = 2
    usb_detect_type = 0
    usb_id_gpio = port:PG12<0><1><default><default>
    usb_det_vbus_gpio = port:PG12<0><1><default><default>
    usb_drv_vbus_gpio = port:PL02<1><0><default><0>
    usb_host_init_state = 1
    usb_restrict_gpio =
    usb_restric_flag = 0
    usb_restric_voltage = 3550000
    usb_restric_capacity = 5
    usb_regulator_io = "nocare"
    usb_regulator_vol = 0
    usb_not_suspend = 0
    
    [usbc1]
    usb_used = 1
    usb_drv_vbus_gpio =
    usb_restrict_gpio =
    usb_host_init_state = 1
    usb_restric_flag = 0
    usb_regulator_io = "nocare"
    usb_regulator_vol = 0
    usb_not_suspend = 0
    
    [usbc2]
    usb_used = 1
    usb_drv_vbus_gpio =
    usb_restrict_gpio =
    usb_host_init_state = 1
    usb_restric_flag = 0
    usb_regulator_io = "nocare"
    usb_regulator_vol = 0
    usb_not_suspend = 0
    
    [usbc3]
    usb_used = 1
    usb_drv_vbus_gpio =
    usb_restrict_gpio =
    usb_host_init_state = 1
    usb_restric_flag = 0
    usb_regulator_io = "nocare"
    usb_regulator_vol = 0
    usb_not_suspend = 0
    
    [usb_feature]
    vendor_id = 6353
    mass_storage_id = 1
    adb_id = 2
    manufacturer_name = "USB Developer"
    product_name = "Android"
    serial_number = "20080411"
    
    [msc_feature]
    vendor_name = "USB 2.0"
    product_name = "USB Flash Driver"
    release = 100
    luns = 3
    
    [serial_feature]
    serial_unique = 0
    
    [module_para]
    module_num = 7
    module_power0 = "vcc-wifi-33"
    module_power0_vol = 0
    module_power1 =
    module_power1_vol =
    module_power2 =
    module_power2_vol =
    module_power3 =
    module_power3_vol =
    chip_en =
    lpo_use_apclk =
    
    [wifi_para]
    wifi_used = 0
    wifi_sdc_id = 1
    wifi_usbc_id = 5
    wifi_usbc_type = 1
    wl_reg_on = port:PL07<1><default><default><0>
    wl_host_wake = port:PG10<0><default><default><0>
    wl_host_wake_invert = 0
    
    [bt_para]
    bt_used = 0
    bt_uart_id = 1
    bt_rst_n =
    bt_wake =
    bt_host_wake =
    bt_host_wake_invert = 0
    
    [pcm0]
    daudio_used = 0
    daudio_master = 4
    daudio_select = 1
    audio_format = 1
    signal_inversion = 1
    mclk_fs = 128
    sample_resolution = 16
    slot_width_select = 32
    pcm_lrck_period = 32
    pcm_lrckr_period = 1
    msb_lsb_first = 0
    sign_extend = 0
    slot_index = 0
    slot_width = 32
    frame_width = 0
    tx_data_mode = 0
    rx_data_mode = 0
    i2s_mclk = port:PA18<2><1><default><default>
    i2s_bclk = port:PA19<2><1><default><default>
    i2s_dout0 = port:PA20<2><1><default><default>
    i2s_din = port:PA21<2><1><default><default>
    
    [pcm1]
    daudio_used = 0
    daudio_master = 4
    daudio_select = 1
    audio_format = 1
    signal_inversion = 1
    mclk_fs = 128
    sample_resolution = 16
    slot_width_select = 32
    pcm_lrck_period = 32
    pcm_lrckr_period = 1
    msb_lsb_first = 0
    sign_extend = 0
    slot_index = 0
    slot_width = 32
    frame_width = 0
    tx_data_mode = 0
    rx_data_mode = 0
    i2s_mclk = port:PG10<2><1><default><default>
    i2s_bclk = port:PG11<2><1><default><default>
    i2s_dout0 = port:PG12<2><1><default><default>
    i2s_din = port:PG13<2><1><default><default>
    
    [audio0]
    audio_used = 1
    lineout_vol = 31
    cap_vol = 5
    audio_hp_ldo = "none"
    adcagc_used = 0
    adcdrc_used = 0
    dacdrc_used = 0
    adchpf_used = 0
    dachpf_used = 0
    audio_pa_ctrl = port:PA16<1><default><default><0>
    
    [spdif0]
    spdif_used = 0
    spdif_dout = port:PA17<2><1><default><default>
    
    [audiohub]
    hub_used = 0
    codec_used = 1
    spdif_used = 1
    hdmi_used = 1
    
    [s_cir0]
    ir_used = 1
    ir_rx = port:PL11<2><1><default><default>
    ir_power_key_code0 = 87
    ir_addr_code0 = 40704
    ir_power_key_code1 = 26
    ir_addr_code1 = 64260
    ir_power_key_code2 = 20
    ir_addr_code2 = 32640
    ir_power_key_code3 = 21
    ir_addr_code3 = 32640
    ir_power_key_code4 = 11
    ir_addr_code4 = 63240
    ir_power_key_code5 = 3
    ir_addr_code5 = 239
    ir_power_key_code6 = 159
    ir_addr_code6 = 19635
    ir_power_key_code7 = 10
    ir_addr_code7 = 30536
    ir_power_key_code8 = 69
    ir_addr_code8 = 48386
    ir_power_key_code9 = 77
    ir_addr_code9 = 56865
    ir_power_key_code10 = 24
    ir_addr_code10 = 65025
    ir_power_key_code11 = 87
    ir_addr_code11 = 65280
    ir_power_key_code12 = 77
    ir_addr_code12 = 65344
    
    [cir]
    ir_used = 1
    ir_tx = port:PH07<2><default><default><default>
    
    [dvfs_table]
    pmuic_type = 2
    pmu_gpio0 = port:PL06<1><1><2><1>
    pmu_level0 = 11300
    pmu_level1 = 1100
    extremity_freq = 1296000000
    max_freq = 1200000000
    min_freq = 480000000
    LV_count = 7
    LV1_freq = 1296000000
    LV1_volt = 1320
    LV2_freq = 1200000000
    LV2_volt = 1240
    LV3_freq = 1104000000
    LV3_volt = 1180
    LV4_freq = 1008000000
    LV4_volt = 1140
    LV5_freq = 960000000
    LV5_volt = 1080
    LV6_freq = 816000000
    LV6_volt = 1020
    LV7_freq = 480000000
    LV7_volt = 980
    
    [gpu_dvfs_table]
    G_LV_count = 3
    G_LV0_freq = 312000000
    G_LV0_volt = 1200000
    G_LV1_freq = 384000000
    G_LV1_volt = 1200000
    G_LV2_freq = 456000000
    G_LV2_volt = 1200000
    
    [Vdevice]
    Vdevice_used = 0
    Vdevice_0 = port:PH10<5><1><2><default>
    Vdevice_1 = port:PH11<5><1><2><default>
    
    [s_uart0]
    s_uart_used = 0
    s_uart_tx = port:PL02<2><default><default><default>
    s_uart_rx = port:PL03<2><default><default><default>
    
    [s_rsb0]
    s_rsb_used = 1
    s_rsb_sck = port:PL00<2><1><2><default>
    s_rsb_sda = port:PL01<2><1><2><default>
    
    [s_jtag0]
    s_jtag_used = 0
    s_jtag_tms = port:PL04<2><1><2><default>
    s_jtag_tck = port:PL05<2><1><2><default>
    s_jtag_tdo = port:PL06<2><1><2><default>
    s_jtag_tdi = port:PL07<2><1><2><default>
    
    [s_powchk]
    s_powchk_used = -2147483648
    s_power_reg = 0
    s_system_power = 50
    
    [sim0]
    scr_used = 0
    scr_vccen = port:PA06<2><default><default><default>
    scr_slk = port:PA07<2><default><default><default>
    scr_sda = port:PA08<2><default><default><default>
    scr_rst = port:PA09<2><default><default><default>
    scr_det = port:PA10<2><default><default><default>
    
    [ts0]
    tsc_used = 0
    tsc_clk = port:PE00<3><default><default><default>
    tsc_err = port:PE01<3><default><default><default>
    tsc_sync = port:PE02<3><default><default><default>
    tsc_dvld = port:PE03<3><default><default><default>
    tsc_d0 = port:PE04<3><default><default><default>
    tsc_d1 = port:PE05<3><default><default><default>
    tsc_d2 = port:PE06<3><default><default><default>
    tsc_d3 = port:PE07<3><default><default><default>
    tsc_d4 = port:PE08<3><default><default><default>
    tsc_d5 = port:PE09<3><default><default><default>
    tsc_d6 = port:PE10<3><default><default><default>
    tsc_d7 = port:PE11<3><default><default><default>
    
    [gpio_power_key]
    key_used = 1
    key_io = port:PL03<6><default><default><0>
    
    [key_para]
    key_used = 0
    key_cnt = 5
    key1_vol = 222
    key2_vol = 444
    key3_vol = 666
    key4_vol = 857
    key5_vol = 2000
    
    [d7s_para]
    d7s_used = 0
    din_gpio = port:PD00<1><default><default><1>
    clk_gpio = port:PD01<1><default><default><1>
    stb_gpio = port:PD02<1><default><default><1>
    
    [mali_para]
    mali_used = 1
    mali_clkdiv = 1
    mali_extreme_freq = 600
    mali_extreme_vol = 1400
    
    [w1_para]
    w1_used = 1
    gpio = 20
    
    [corekeeper]
    corekeeper_enabled = 1
    
    

    Note that I added a line to the gpio section in one of my attempts to make this work, in order to map PA2 to GPIO20 (or at least that was what I was trying to accomplish).

    I'm trying to compile an MQTT gateway, so my configure line is:

    ./configure --spi-spidev-device=/dev/spidev0.0 --my-rfm69-irq-pin=10 --my-rfm69-cs-pin=20 --my-transport=rfm69 --my-rfm69-frequency=433 --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-mqtt-publish-topic-prefix=mysensors-out --my-mqtt-subscribe-topic-prefix=mysensors-in --my-mqtt-client-id=mygateway1 --extra-cxxflags="-DMY_DEBUG_VERBOSE_RFM69"
    

    And here is the core of my problem - which values to use for IRQ pin and CS pin. If I use 10 for IRQ. I compile with no problems, but when I run

    sudo bin/mysgw -d
    

    I get:

    fanta@orangepipc:~/MySensors$ sudo bin/mysgw -d
    mysgw: Starting gateway...
    mysgw: Protocol version - 2.2.0-beta
    mysgw: MCO:BGN:INIT GW,CP=RPNG----,VER=2.2.0-beta
    mysgw: TSF:LRT:OK
    mysgw: TSM:INIT
    mysgw: TSF:WUR:MS=0
    mysgw: RFM69:INIT
    mysgw: RFM69:INIT:PIN,CS=20,IQP=10,IQN=2
    mysgw: RFM69:PTX:LEVEL=5 dBm
    mysgw: Could not open /sys/class/gpio/gpio10/direction
    

    I have already tried enabling GPIO10:

    fanta@orangepipc:~/MySensors$ echo "10" |sudo tee /sys/class/gpio/export
    10
    tee: /sys/class/gpio/export: Device or resource busy
    

    My gpio readall outputs this:

    fanta@orangepipc:~/MySensors$ 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 |  OUT | 0 |  7 || 8  | 0 | OUT  | TxD3     | 15  | 13  |
     |     |     |       0v |      |   |  9 || 10 | 0 | OUT  | RxD3     | 16  | 14  |
     |   1 |   0 |     RxD2 |  OUT | 0 | 11 || 12 | 0 | OUT  | GPIO.1   | 1   | 110 |
     |   0 |   2 |     TxD2 |  OUT | 0 | 13 || 14 |   |      | 0v       |     |     |
     |   3 |   3 |     CTS2 |  OUT | 0 | 15 || 16 | 0 | OUT  | GPIO.4   | 4   | 68  |
     |     |     |     3.3v |      |   | 17 || 18 | 0 | OUT  | 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 | OUT  | CE0      | 10  | 67  |
     |     |     |       0v |      |   | 25 || 26 | 0 | OUT  | GPIO.11  | 11  | 21  |
     |  19 |  30 |    SDA.1 | ALT4 | 0 | 27 || 28 | 0 | ALT4 | SCL.1    | 31  | 18  |
     |   7 |  21 |  GPIO.21 |  OUT | 0 | 29 || 30 |   |      | 0v       |     |     |
     |   8 |  22 |  GPIO.22 |  OUT | 0 | 31 || 32 | 0 | OUT  | RTS1     | 26  | 200 |
     |   9 |  23 |  GPIO.23 |  OUT | 0 | 33 || 34 |   |      | 0v       |     |     |
     |  10 |  24 |  GPIO.24 |  OUT | 0 | 35 || 36 | 0 | OUT  | CTS1     | 27  | 201 |
     |  20 |  25 |  GPIO.25 |  OUT | 1 | 37 || 38 | 0 | OUT  | TxD1     | 28  | 198 |
     |     |     |       0v |      |   | 39 || 40 | 0 | OUT  | RxD1     | 29  | 199 |
     +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
     | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
     +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+-----+
    

    So I tried --my-rfm69-irq-pin=2 --my-rfm69-cs-pin=67 as well, but I run into the same problem with pin 2.

    Can anyone help me find out which pin numbers to use?

    Thanks in advance!



  • @awilner I am in a hurry right now so I cannot go through what you wrote in detail, but maybe my post about pin numbering can help you: https://forum.mysensors.org/post/58309 It is related to an OPi Plus2e using nrf24 but the numbering formulas should still be valid.

    Good luck!



  • @pansen , Thank you so much!!! I managed to find two pins that didn't give me this error, PA11 and PA12, and now at least the chip configuration and communication apparently works.



  • I wanted to build MQTT client gateway with whitelisting and encryption + 3 LEDs with Arduino UNO and Ethernet shield but it does not have enough memory.

    Before going to Arduino MEGA I found this and I think this will be a better way to do it. Smaller, cheaper..just not sure if it has all the options. Can someone confirm? Whitelisting will be easier then reflashing Arduino all the time too.

    I plan to use Orange Pi Zero H2+ Quad Core 256MB



  • If your conditions are

    • 3 LEDs: yes through GPIO
    • Ethernet: yes (d'uh)
    • beefy enough for software encryption: I guess? For an IoT-low data rate scenario for sure

    I'm running armbian on my Orange Pi and setting up mosquitto is a breeze. But you don't need a broker right? Don't forget you need an SD card on top and more power.



  • Thanks, I already have a broker and OpenHAB. Want this gateway to act as a client....maybe it will even support SSL MQTT. And encryption with

    #define MY_RF24_ENABLE_ENCRYPTION is wanted.

    In the article, there is no list of all available configurations...yea adding SD card does not make it cheaper



  • i'm sorry, i do not have experience with encryption. essentially it depends on the code you want to write, since on the pi you are kind of limited to scripting, whereas microcontroller code is closer to hardware. also, if you need things like an adc or spi you're better of with a microcontroller. if it's just about some LEDs lighting up..


  • Mod

    @8667 said in šŸ’¬ Building a Orange Pi Gateway:

    In the article, there is no list of all available configurations..

    From the article:

    For a complete list of configuration parameters, run:

    ./configure --help

    Did you miss this or is there something I'm not understanding?



  • mysgw: Could not open /sys/class/gpio/gpio10/direction
    Please help me to solve this error


  • Mod

    @BAsavaraj004 could you describe what you did when you got that error?



  • @mfalkvidd
    When I executed sudo ./bin/mysgw -d this command after that i'm facing error like :

    mysgw: Starting gateway...
    mysgw: Protocol version - 2.2.0-beta
    mysgw: MCO:BGN:INIT GW,CP=RNNG----,VER=2.2.0-beta
    mysgw: TSF:LRT:OK
    mysgw: TSM:INIT
    mysgw: TSF:WUR:MS=0
    mysgw: Could not open /sys/class/gpio/gpio24/direction
    I followed all the steps provide in the site but still I am getting error.


  • Mod

    @BAsavaraj004 thanks. Earlier posts indicate that the "Could not open" error could be caused by a problem with the pin mapping. I don't have an OrangePi myself so I don't know the details but maybe these posts can help:
    https://forum.mysensors.org/post/69656
    https://forum.mysensors.org/post/60943
    https://forum.mysensors.org/post/56374



  • @SdeWeb said in šŸ’¬ Building a Orange Pi Gateway:

    Hi,
    Well done finally i used the dedicated .fex file for Orange Pi Plus 2E here :
    https://linux-sunxi.org/Xunlong_Orange_Pi_Plus_2E#Expansion_Port

    at this point :
    https://github.com/igorpecovnik/lib/blob/master/config/fex/orangepiplus2e.fex

    Read the .fex file in a text editor, u'll see important things about "gpio_config" for H3 cpu :

    ; NOTE: This section is necessary only for "gpio_sunxi" driver
    ; which is obsolete for H3 boards
    [gpio_para]
    gpio_used = 0
    gpio_num = 0
    

    I connected my NRF24L01 on OPI P2E like this :

    NRF24L01 Port Name / (Pin NĀ°) ----- OPI Port (Pin NĀ°) / Name
                          GND (1)  <-----------> (20) / GND
                          VCC (2)  <-----------> (17) / 3.3V PWR
                          CE (3)   <-----------> (22) / (PA2 / GPIO2)
                          CSN (4)  <-----------> (24) / (PC3 / GPIO67)
                          SCK (5)  <-----------> (23)
                          MOSI (6) <-----------> (19) MOSI
                          MISO (7) <-----------> (21) MISO
                          IRQ (8)  <-----------> NC
    

    So "MySensors" setup is :

    ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=67
    

    Then

    ./bin/mysgw -d
    

    Return :

    root@orangepiplus2e:~/MySensors# ./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 OK
    mysgw: TSM:INIT:GW MODE
    mysgw: TSM:READY:ID=0,PAR=0,DIS=0
    mysgw: MCO:REG:NOT NEEDED
    mysgw: Listening for connections on 0.0.0.0:5003
    mysgw: MCO:BGN:STP
    mysgw: MCO:BGN:INIT OK,TSP=1
    

    Best.
    Seb.

    This worked great on my Orange Pi Lite.
    I was trying to follow the tutorial at Building a Orange Pi Gateway and I tried all sorts of things that didn't work.
    IMO the main tutorial should have this as instruction to building a gateway with Orange Pi Lite/Plus.
    Thanks!!
    ( Sorry for quoting the entire original post, but this will help anyone searching for help with their Orange Pi Lite)



  • I got the OrangeZero and was building the configuration command... can someone provide me more detailed instructions about using higher security?

    1. Is it possible to use SSL for the connecting to the broker?
    2. How whitelisting works with Pi? I moved away of Arduino as I do not want to recompile it everytime I need to include new node. So far I have
    -my-signing-request-signatures --my-signing-debug --my-signing=password --my-signing-password=SOMETHING --my-rf24-encryption-enabled
    

    but this will not allow me to exclude stolen nodes right?


  • Contest Winner

    @8667 no, it won't. As it is for the moment, whitelisting works no different compared to Arduino based devices. You will have to recompile your GW if you add new nodes as you will need to add their serials to the whitelist in the GW.



  • @Anticimex said in šŸ’¬ Building a Orange Pi Gateway:

    @8667 no, it won't. As it is for the moment, whitelisting works no different compared to Arduino based devices. You will have to recompile your GW if you add new nodes as you will need to add their serials to the whitelist in the GW.

    So how personalization works on the orange and how to pass the list of serials?


  • Contest Winner

    @8667 not sure. I have not been involved in the rPi port. I suggest you pass --help to the configure command. It should give a list of options.



  • This should be in the wiki

    root@pi0:~/MySensors# ./configure --help
    configure script for MySensors gateway.
    Options:
    
    Help:
        -h, --help                  print this message
    
    SPI driver options:
        --spi-driver=[BCM|SPIDEV]
        --spi-spidev-device=<DEVICE>
                                    Device path. [/dev/spidev0.0]
    
    Building options:
        --soc=[BCM2835|BCM2836|BCM2837|AM33XX|A10|A13|A20|H3]
                                    SoC type to be used. [configure autodetected]
        --cpu-flags=<CPUFLAGS>      CPU defining/optimizing flags to be used. [configure autodetected]
        --extra-cflags=<CFLAGS>     Extra C flags passed to C compilation. []
        --extra-cxxflags=<CXXFLAGS> Extra C++ flags passed to C++ compilation. []
        --extra-ldflags=<LDFLAGS>   Extra C flags passed to linking. []
        --c_compiler=<CC>           C compiler. [arm-linux-gnueabihf-gcc][gcc]
        --cxx_compiler=<CXX>        C++ compiler. [arm-linux-gnueabihf-g++][g++]
        --build-dir=<DIR>           Compiler directory to store object files. [build]
        --bin-dir=<DIR>             Compiler directory to store binary files. [bin]
        --arduino-lib-dir=<DIR>     Arduino library directory.
        --no-clean                  Don't clean previous build artifacts.
    
    Installation options:
        --prefix=<PREFIX>           Installation prefix path. [/usr/local]
        --gateway-dir=<DIR>         Gateway files installation directory. [PREFIX/bin]
    
    MySensors options:
        --my-debug=[enable|disable] Enables or disables MySensors core debugging. [enable]
        --my-config-file=<FILE>     Config file path. [/etc/mysensors.dat]
        --my-gateway=[none|ethernet|serial|mqtt]
                                    Set the protocol used to communicate with the controller.
                                    [ethernet]
        --my-node-id=<ID>           Disable gateway feature and run as a node with the specified id.
        --my-controller-url-address=<URL>
                                    Controller or MQTT broker url.
        --my-controller-ip-address=<IP>
                                    Controller or MQTT broker ip.
        --my-port=<PORT>            The port to keep open on gateway mode.
                                    If gateway is set to mqtt, it sets the broker port.
        --my-serial-port=<PORT>     Serial port. [/dev/ttyACM0]
        --my-serial-baudrate=<BAUD> Serial baud rate. [115200]
        --my-serial-is-pty          Set the serial port to be a pseudo terminal. Use this if you want
                                    to connect to a controller running on the same device.
        --my-serial-pty=<NAME>      Symlink name for the PTY device. [/dev/ttyMySensorsGateway]
        --my-serial-groupname=<GROUP>
                                    Grant access to the specified system group for the serial device.
        --my-mqtt-client-id=<ID>    MQTT client id.
        --my-mqtt-user=<UID>        MQTT user id.
        --my-mqtt-password=<PASS>   MQTT password.
        --my-mqtt-publish-topic-prefix=<PREFIX>
                                    MQTT publish topic prefix.
        --my-mqtt-subscribe-topic-prefix=<PREFIX>
                                    MQTT subscribe topic prefix.
        --my-transport=[none|nrf24|rs485|rfm95|rfm69]
                                    Set the transport to be used to communicate with other nodes.
                                    [nrf24]
        --my-rf24-channel=<0-125>   RF channel for the sensor net. [76]
        --my-rf24-pa-level=[RF24_PA_MAX|RF24_PA_LOW]
                                    RF24 PA level. [RF24_PA_MAX]
        --my-rf24-ce-pin=<PIN>      Pin number to use for rf24 Chip-Enable.
        --my-rf24-cs-pin=<PIN>      Pin number to use for rf24 Chip-Select.
        --my-rf24-irq-pin=<PIN>     Pin number connected to nRF24L01 IRQ pin.
        --my-rf24-encryption-enabled
                                    Enables RF24 encryption.
                                    All nodes and gateway must have this enabled, and all must be
                                    personalized with the same AES key
        --my-rx-message-buffer-size=<SIZE>
                                    Buffer size for incoming messages when using rf24 interrupts. [20]
        --my-rfm69-frequency=[315|433|868|915]
                                    RFM69 Module Frequency. [868]
        --my-is-rfm69hw             Enable high-powered rfm69hw.
        --my-rfm69-irq-pin=<PIN>    Pin number connected to RFM69 IRQ pin.
        --my-rfm69-cs-pin=<PIN>     Pin number to use for RFM69 Chip-Select.
        --my-rs485-serial-port=<PORT>
                                    RS485 serial port. You must provide a port.
        --my-rs485-baudrate=<BAUD>  RS485 baudrate. [9600]
        --my-rs485-de-pin=<PIN>     Pin number connected to RS485 driver enable pin.
        --my-rs485-max-msg-length=<LENGTH>
                                    The maximum message length used for RS485. [40]
        --my-leds-err-pin=<PIN>     Error LED pin.
        --my-leds-rx-pin=<PIN>      Receive LED pin.
        --my-leds-tx-pin=<PIN>      Transmit LED pin.
        --my-leds-blinking-inverse  Inverse the blinking feature.
        --my-signing=[none|software|password]
                                    Message signing. [none]
        --my-signing-debug          Enable signing related debug.
        --my-signing-request-signatures
                                    Enable signature request from nodes that in turn requested
                                    gateway signature.
        --my-signing-weak_security  Enable this to permit downgrade of security preferences and
                                    relaxed gateway signing requirements.
        --my-signing-password=<PASSWORD>
                                    If you are using password as the signature type, set your password here.
    
    root@pi0:~/MySensors# sudo ./bin/mysgw -h
    mysgw: Config file /etc/mysensors.dat does not exist, creating new config file.
    Usage: mysgw [options]
    
    Options:
      -h, --help                 Display a short summary of all program options.
      -d, --debug                Enable debug.
      -b, --background           Run as a background process.
      --gen-soft-hmac-key        Generate and print a soft hmac key.
      --gen-soft-serial-key      Generate and print a soft serial key.
      --gen-aes-key              Generate and print an aes encryption key.
      --print-soft-hmac-key      Print the soft hmac key from the config file.
      --print-soft-serial-key    Print the soft serial key from the config file.
      --print-aes-key            Print the aes encryption key from the config file.
      --set-soft-hmac-key        Write a soft hmac key to the config file.
      --set-soft-serial-key      Write a soft serial key to the config file.
      --set-aes-key              Write an aes encryption key to the config file.
    

  • Contest Winner

    @8667 if there is no option for the whitelist, you should still be able to set it using the same #define as mentioned in the signing documentation. The implementation is shared.
    It makes sense to keep it like that since the list could be quite long.


  • Mod

    @8667 a first try of making the help text available online is now available at https://ci.mysensors.org/job/MySensors/job/MySensors/job/PR-952/12/Doxygen_HTML/group__RaspberryPiGateway.html
    If/when the pull request is accepted, a link can be added on the build page.



  • Hello! I followed instructions by SdeWeb on my Orange Pi Lite with Armbian, and gateway is working fine, I can see debug messages from other node. But when I try to add a serial port in node-red I can't find the gateway one. Can you help me?



  • FYI i configure like this:
    ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=67 --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyUSB10 --my-serial-baudrate=115200



  • NOTE for Armbian and Orange Pi Zero.

    Set static IP address or the device will lose connection on next DHCP request. I use only the LAN and was having problems for few days.


  • Mod

    @8667 I didn't know it was possibe to set ip address for the Pi gateway. How did you do that?



  • Hi,
    You should set your gateway as a ethernet / network gateway. By default, it run on port 5003 (ex : [gwipadresse]:5003.
    If you controler is hosted on the same machine that the gateway, then you can call the ip adresse : 127.0.0.1:5003. (the localhost adress) whatever the real IP adresse of your PI.
    if you got a good router on u'r network, that it running DHCP server and give IP adresses of your devices on the network, then you can define static IP adresse for the MAC adresse of your PI.

    Regards.



  • I had to use spidev0.0 and not spidev1.0:
    +++
    opilite@orangepilite:~/MySensors$ sudo ./bin/mysgw -d
    mysgw: Starting gateway...
    mysgw: Protocol version - 2.2.0-beta
    mysgw: MCO:BGN:INIT GW,CP=RNNGL---,VER=2.2.0-beta
    mysgw: TSF:LRT:OK
    mysgw: TSM:INIT
    mysgw: TSF:WUR:MS=0
    mysgw: TSM:INIT:TSP OK
    mysgw: TSM:INIT:GW MODE
    mysgw: TSM:READY:ID=0,PAR=0,DIS=0
    mysgw: MCO:REG:NOT NEEDED
    mysgw: MCO:BGN:STP
    mysgw: MCO:BGN:INIT OK,TSP=1
    +++
    opilite@orangepilite:~/MySensors$ ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=67 --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyMySensorsGateway



  • With mqtt gateway I got further ahead:
    +++
    opilite@orangepilite:~/MySensors$ ./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=67 --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-mqtt-publish-topic-prefix=mysensors-out --my-mqtt-subscribe-topic-prefix=mysensors-in --my-mqtt-client-id=my_mqtt_gateway
    +++
    opilite@orangepilite:~/MySensors$ sudo ./bin/mysgw -d
    mysgw: Starting gateway...
    mysgw: Protocol version - 2.2.0-beta
    mysgw: MCO:BGN:INIT GW,CP=RNNGL---,VER=2.2.0-beta
    mysgw: TSF:LRT:OK
    mysgw: TSM:INIT
    mysgw: TSF:WUR:MS=0
    mysgw: TSM:INIT:TSP OK
    mysgw: TSM:INIT:GW MODE
    mysgw: TSM:READY:ID=0,PAR=0,DIS=0
    mysgw: MCO:REG:NOT NEEDED
    mysgw: MCO:BGN:STP
    mysgw: MCO:BGN:INIT OK,TSP=1
    mysgw: Attempting MQTT connection...
    mysgw: connected to 127.0.0.1
    mysgw: MQTT connected
    mysgw: Sending message on topic: mysensors-out/0/255/0/0/18
    +++
    mysensors-out/0/255/0/0/18 : msg.payload : string[10]
    "2.2.0-beta"



  • Ok, now I load a sketch into an arduino nanowith nrf24l01+ and this is all I got:
    +++
    opilite@orangepilite:~/MySensors$ sudo ./bin/mysgw -d
    mysgw: Starting gateway...
    mysgw: Protocol version - 2.2.0-beta
    mysgw: MCO:BGN:INIT GW,CP=RNNGL---,VER=2.2.0-beta
    mysgw: TSF:LRT:OK
    mysgw: TSM:INIT
    mysgw: TSF:WUR:MS=0
    mysgw: TSM:INIT:TSP OK
    mysgw: TSM:INIT:GW MODE
    mysgw: TSM:READY:ID=0,PAR=0,DIS=0
    mysgw: MCO:REG:NOT NEEDED
    mysgw: MCO:BGN:STP
    mysgw: MCO:BGN:INIT OK,TSP=1
    mysgw: Attempting MQTT connection...
    mysgw: connected to 127.0.0.1
    mysgw: MQTT connected
    mysgw: Sending message on topic: mysensors-out/0/255/0/0/18
    mysgw: TSF:MSG:READ,255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    mysgw: TSF:MSG:BC
    mysgw: TSF:MSG:FPAR REQ,ID=255
    mysgw: TSF:CKU:OK,FCTRL
    mysgw: TSF:MSG:GWL OK
    mysgw: TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=OK:0
    mysgw: TSF:MSG:READ,255-255-0,s=255,c=3,t=3,pt=0,l=0,sg=0:
    mysgw: Sending message on topic: mysensors-out/255/255/3/0/3
    mysgw: TSF:MSG:READ,255-255-0,s=255,c=3,t=3,pt=0,l=0,sg=0:
    mysgw: Sending message on topic: mysensors-out/255/255/3/0/3
    mysgw: TSF:MSG:READ,255-255-0,s=255,c=3,t=3,pt=0,l=0,sg=0:
    mysgw: Sending message on topic: mysensors-out/255/255/3/0/3
    mysgw: TSF:MSG:READ,255-255-0,s=255,c=3,t=3,pt=0,l=0,sg=0:
    mysgw: Sending message on topic: mysensors-out/255/255/3/0/3
    mysgw: TSF:MSG:READ,255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    mysgw: TSF:MSG:BC
    mysgw: TSF:MSG:FPAR REQ,ID=255
    mysgw: TSF:PNG:SEND,TO=0
    mysgw: TSF:CKU:OK
    mysgw: TSF:MSG:GWL OK
    (...)
    +++

    Stuck again.


  • Mod

    @Ricardo-Ribeiro that looks normal. Is this different from what you expected? If so, how does it differ?



  • Had anyone succeeded using signing+encryption on OrangePi MQTT gateway? I managed to make Arduino gateway and it worked but I can not replicate the same thing with Pi. What file should be edited to enter the keys? and the whitelist?



  • Am getting this error:
    ERROR Could not open /sys/class/gpio/gpio24/direction
    My config is:

    ./configure --spi-spidev-device=/dev/spidev1.0 --my-node-id=1 --my-transport=rfm95 --my-rfm95-cs-pin=13 --my-rfm95-irq-pin=10 --my-rfm69-frequency=915E6
    

    Whole output is:

    root@ttn-gateway:~/MySensors# sudo ./bin/mysgw
    May 23 09:37:31 INFO  Starting gateway...
    May 23 09:37:31 INFO  Protocol version - 2.3.0-alpha
    
     __  __       ____
    |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
    | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
    | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
    |_|  |_|\__, |____/ \___|_| |_|___/\___/|_|  |___/
            |___/                      2.3.0-alpha
    
    May 23 09:37:31 DEBUG MCO:BGN:INIT NODE,CP=RLNNL---,VER=2.3.0-alpha
    May 23 09:37:31 DEBUG TSM:INIT
    May 23 09:37:31 DEBUG TSF:WUR:MS=0
    May 23 09:37:42 ERROR Could not open /sys/class/gpio/gpio24/direction
    


  • @pii

    • Does /sys/class/gpio/gpio24/direction exists?
    • Does /sys/class/gpio/gpio24 exists?
    • Can you write to them using echo?


  • @pansen No.... nothing... /sys/class/gpio/gpio24doesn't exist.
    even "echo "24" > /sys/class/gpio/export doesn't work.
    But, yes otherwise if I try the same with 13 i.e "echo "13" > /sys/class/gpio/export Then a directory is created and then /sys/class/gpio/gpio24/direction do exist.



  • @pansen Thank you sooooooo much for your reply.!!! By the way, What I actually have to do is "Make an MQTT based LoRa(RA-02) receiver gateway on OrangePi Zero". And I'm stuck since whole week šŸ˜¢ of course spent time trying code without solid base. šŸ˜•
    Yes, yet I'm trying to first set up a LoRa receiver(not MQTT, not gateway)


  • Code Contributor

    @pii --my-rfm95-cs-pin and --my-rfm95-irq-pin options are not currently supported by the configure script.
    Until we fix this, could you please try adding the following to your examples_linux/mysgw.cpp (before the #include <MySensors.h>)

    #define MY_RFM95_CS_PIN 13
    #define MY_RFM95_IRQ_PIN 10
    #define MY_RFM95_FREQUENCY RFM95_915MHZ
    

    and run the make command again.



  • @marceloaqno said in šŸ’¬ Building a Orange Pi Gateway:

    #define MY_RFM95_CS_PIN 13
    #define MY_RFM95_IRQ_PIN 10
    #define MY_RFM95_FREQUENCY RFM95_915MHZ

    Thank you sooo much. I just did this. But, Now got a new error.

     ERROR Could not open /sys/class/gpio/gpio10/direction
    

    and when I tried to export pin 10 it says:

    :/sys/class/gpio# echo '10' > export
    -bash: echo: write error: Device or resource busy
    

    Though yes still I'm able to export/unexport pin 13(just for testing)



  • @pii Try my library for Orange Pi Zero and Semtech SX1278 radio (RA-02 module)


Log in to reply
 

Suggested Topics

  • 3
  • 10
  • 2
  • 109
  • 109
  • 347

0
Online

11.4k
Users

11.1k
Topics

112.7k
Posts