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

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Announcements
  3. 💬 Building a Raspberry Pi Gateway

💬 Building a Raspberry Pi Gateway

Scheduled Pinned Locked Moved Announcements
1.1k Posts 173 Posters 423.1k Views 131 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K kted

    @rolo6442u I built an Raspberry gateway using an RFM69 radio, to replace one built around a NodeMCU.
    All nodes are transmit only, and using the latest stable API.
    I noticed that all sensors were using max TX power after the first couple of transmissions, although they were respecting the ATC setting before, and were using minimum power most of the time.
    Now I am concerned about battery life, so I switched back to the NodeMCU gateway, waiting for a fix.
    I'll put together a temporary net, with a RPi0 gateway and a single node later, to show some real data, if you need any more information.

    R Offline
    R Offline
    Rolo6442u
    wrote on last edited by Rolo6442u
    #984

    @kted I wil do some tests to check if I see this behavior. Just build a simple test node with a pushbutton, on 2 AA batteries. This node has the low power W radio module. How did you discover/measure that the max TX power was used?

    K 1 Reply Last reply
    0
    • K kted

      @rolo6442u I built an Raspberry gateway using an RFM69 radio, to replace one built around a NodeMCU.
      All nodes are transmit only, and using the latest stable API.
      I noticed that all sensors were using max TX power after the first couple of transmissions, although they were respecting the ATC setting before, and were using minimum power most of the time.
      Now I am concerned about battery life, so I switched back to the NodeMCU gateway, waiting for a fix.
      I'll put together a temporary net, with a RPi0 gateway and a single node later, to show some real data, if you need any more information.

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

      @kted could be the same problem as discussed in https://forum.mysensors.org/topic/9796/rfm69-atc-not-working/

      1 Reply Last reply
      0
      • R Rolo6442u

        @kted I wil do some tests to check if I see this behavior. Just build a simple test node with a pushbutton, on 2 AA batteries. This node has the low power W radio module. How did you discover/measure that the max TX power was used?

        K Offline
        K Offline
        kted
        wrote on last edited by
        #986

        @rolo6442u From what the node itself reports from transportGetSignalReport(SR_TX_POWER_PERCENT). It starts from say 50%, and after a coule of transmissions it goes up to 100%, when the nodes are 1m apart. When using a stand alone ESP8266 gateway, it drops to 0%.
        I'll have the nodes ready in a couple of hours, after I come home from work...

        1 Reply Last reply
        0
        • R Offline
          R Offline
          Rolo6442u
          wrote on last edited by
          #987

          Did some tests and I do see the TX power climbing to 100% after a few transmits :

          -42 :transportGetReceivingRSSI()
          127 :transportGetSendingRSSI()
          -256 :transportGetReceivingSNR()
          -256 :transportGetSendingSNR()
          6 :transportGetTxPowerLevel()
          77 :transportGetTxPowerPercent()
          0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI)
          
          -46 :transportGetReceivingRSSI()
          -102 :transportGetSendingRSSI()
          -256 :transportGetReceivingSNR()
          -256 :transportGetSendingSNR()
          7 :transportGetTxPowerLevel()
          80 :transportGetTxPowerPercent()
          0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI)
          
          -47 :transportGetReceivingRSSI()
          -102 :transportGetSendingRSSI()
          -256 :transportGetReceivingSNR()
          -256 :transportGetSendingSNR()
          10 :transportGetTxPowerLevel()
          90 :transportGetTxPowerPercent()
          0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI)
          
          -47 :transportGetReceivingRSSI()
          -105 :transportGetSendingRSSI()
          -256 :transportGetReceivingSNR()
          -256 :transportGetSendingSNR()
          11 :transportGetTxPowerLevel()
          93 :transportGetTxPowerPercent()
          0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI)
          
          -47 :transportGetReceivingRSSI()
          -103 :transportGetSendingRSSI()
          -256 :transportGetReceivingSNR()
          -256 :transportGetSendingSNR()
          13 :transportGetTxPowerLevel()
          100 :transportGetTxPowerPercent()
          0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI)
          
          -47 :transportGetReceivingRSSI()
          -106 :transportGetSendingRSSI()
          -256 :transportGetReceivingSNR()
          -256 :transportGetSendingSNR()
          13 :transportGetTxPowerLevel()
          100 :transportGetTxPowerPercent()
          0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI)
          
          

          Not sure if this has a great impact on battery life, depends on how often the node sends a message. Al my nodes have an interval of about 10 minutes. I leave the gateway running for now. Having it running on this PI is a great advantage for me. Will try to do some current measurement on this node and calculate what the impact is on battery life.

          1 Reply Last reply
          0
          • B barrydou

            Hello

            Is it possible to redefine pin used for DI00 with rfm69 (with configure option for example) ?
            Indeed, DI00 is on pin 22 on raspberry, and pin 2 on arduino.
            But with NRF, pin 2 on arduino is for IRQ, which is connected to pin 15 on raspberry.

            So if it was possible to force pin 15 for DI00, we could use adaptator card like this one https://www.mysensors.org/hardware/nrf2rfm69.

            gohanG Offline
            gohanG Offline
            gohan
            Mod
            wrote on last edited by
            #988

            @barrydou I gave a double gateway running on my raspberry both nrf24 and rfm69, still on v. 2.2

            K 1 Reply Last reply
            0
            • gohanG gohan

              @barrydou I gave a double gateway running on my raspberry both nrf24 and rfm69, still on v. 2.2

              K Offline
              K Offline
              kted
              wrote on last edited by
              #989

              @gohan Nice. I was thinking to do that same at some time, but I wasn't sure if the Raspberry could handle the load, since I also run domoticz on it, along with pi-hole.
              How many devices do you have on each gateway?

              1 Reply Last reply
              0
              • gohanG Offline
                gohanG Offline
                gohan
                Mod
                wrote on last edited by
                #990

                I got the same, domoticz and pi hole, but the load of the gateway is minimal

                K 1 Reply Last reply
                0
                • gohanG gohan

                  I got the same, domoticz and pi hole, but the load of the gateway is minimal

                  K Offline
                  K Offline
                  kted
                  wrote on last edited by
                  #991

                  @gohan I meant multiple gateways on the same raspberry.
                  Right now, I have an NRF24L01 gateway, Domoticz, pi-hole, and a VPN server running, with 2 more gateways connected, one local and one remote RFM69 on ESP8266.
                  It would be nice if I could combine the two local gateways, the RFM and the NRF on the same Raspberry's GPIO...

                  1 Reply Last reply
                  0
                  • gohanG Offline
                    gohanG Offline
                    gohan
                    Mod
                    wrote on last edited by
                    #992

                    Yes, I have both radios on the same raspberry.

                    1 Reply Last reply
                    0
                    • MasMatM Offline
                      MasMatM Offline
                      MasMat
                      wrote on last edited by MasMat
                      #993

                      More problems when I try to "make" after configuring. Tried with and without sudo...

                      dietpi@Domoticz:~/MySensors$ sudo make
                      gcc -MT build/hal/architecture/Linux/drivers/core/log.o -MMD -MP -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -DMY_SIGNING_SIMPLE_PASSWD=\"ZZZZZZZ\" -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_GATEWAY_MQTT_CLIENT -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI -DMY_LINUX_CONFIG_FILE=\"/etc/mysensors.conf\" -DMY_DEFAULT_TX_LED_PIN=18 -DMY_DEFAULT_RX_LED_PIN=16 -DMY_DEFAULT_ERR_LED_PIN=12 -DMY_MQTT_CLIENT_ID=\"mygateway1\" -DMY_MQTT_SUBSCRIBE_TOPIC_PREFIX=\"mysensors-in\" -DMY_MQTT_PUBLISH_TOPIC_PREFIX=\"mysensors-out\" -DMY_MQTT_PASSWORD=\"YYYYY\" -DMY_MQTT_USER=\"XXXX\" -DMY_CONTROLLER_IP_ADDRESS=127,0,0,1 -DMY_DEBUG_VERBOSE_SIGNING -DMY_RX_MESSAGE_BUFFER_FEATURE -DMY_RF24_IRQ_PIN=15  -Ofast -g -Wall -Wextra  -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/log.c -o build/hal/architecture/Linux/drivers/core/log.o
                      In file included from hal/architecture/Linux/drivers/core/log.c:20:0:
                      hal/architecture/Linux/drivers/core/log.h:24:19: fatal error: stdio.h: File not found
                       #include <stdio.h>
                                         ^
                      compilation terminated.
                      Makefile:102: recipe for target 'build/hal/architecture/Linux/drivers/core/log.o' failed
                      make: *** [build/hal/architecture/Linux/drivers/core/log.o] Error 1
                      

                      EDIT: ...and here's the fix: "sudo apt-get install g++" (I'm using DietPi now to make it lighter for Pi Zero W).

                      1 Reply Last reply
                      0
                      • cozaC Offline
                        cozaC Offline
                        coza
                        wrote on last edited by coza
                        #994

                        Running Version 2.3.2-beta just cloned today. On a raspberry pi B rev2.
                        A little bug/problem I have discovered with the MQTT gateway.

                        When you run the gateway with command and switch:-

                        mysgw -c /etc/mysensors.conf
                        

                        It segfaults.

                        When its run with the command and switch :-

                        mysgw --config-file /etc/mysensors.conf
                        

                        It works fine

                        I was playing with the ethernet gateway compile and the -c worked fine.

                        1 Reply Last reply
                        1
                        • cozaC Offline
                          cozaC Offline
                          coza
                          wrote on last edited by coza
                          #995

                          Another thing I have found is I cannot get any logging working with the mqqt gateway compile.

                          It worked fine (named pipe) with the ethernet gateway compile.

                          Edit
                          It seems logging with the mqtt is not instant. It seem to dump the log out of memory periodically, is this expected? Makes it a bit hard to debug real-time.

                          mfalkviddM 1 Reply Last reply
                          0
                          • gohanG Offline
                            gohanG Offline
                            gohan
                            Mod
                            wrote on last edited by
                            #996

                            Just use mqtt client

                            1 Reply Last reply
                            0
                            • cozaC coza

                              Another thing I have found is I cannot get any logging working with the mqqt gateway compile.

                              It worked fine (named pipe) with the ethernet gateway compile.

                              Edit
                              It seems logging with the mqtt is not instant. It seem to dump the log out of memory periodically, is this expected? Makes it a bit hard to debug real-time.

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

                              @coza I have experienced that the raspberry pigateway does not flush the logs immediately when logging to file. Syslog logs immediately though. See if switching to syslog helps.

                              1 Reply Last reply
                              0
                              • B Offline
                                B Offline
                                barrydou
                                wrote on last edited by barrydou
                                #998

                                @gohan Sorry I miss your answer a few days ago
                                I don't want to a gateway with both rfm69 and nrf24..

                                I'm planning to change my nrf24 sensors with rfm69, to have a better transmission distance. My two nodes are outside, and i have communication trouble if i put them where i wanted, specially for my rain gauge.
                                So I wanted to use those adaptors https://www.openhardware.io/view/16/NRF2RFM69.
                                I received them, and I'm still waiting RFM69 board to test it.

                                But as the pinout is not the same between nrf24 and rfm69 on raspberry gateway, I could not use the adaptor on the gateway. So before making a new board for my raspberry, I wanted to know if it's possible to change the default pin configuration, to have exactly the same as nrf24, and use an adaptor on the gateway too.
                                For that, I "just" need to redefine DIO0 on pin 15 (default is 22). So I wonder if it's possible to do it.

                                And "bonus question", I'd like to know why pin configuration is not the same between arduino and raspberry. Why pin 15 is not used for DIO0 on raspberry (equivalent to pin 2 on arduino). I'm telling myself it should be a good reason, but I don't get it.

                                mfalkviddM 1 Reply Last reply
                                0
                                • B barrydou

                                  @gohan Sorry I miss your answer a few days ago
                                  I don't want to a gateway with both rfm69 and nrf24..

                                  I'm planning to change my nrf24 sensors with rfm69, to have a better transmission distance. My two nodes are outside, and i have communication trouble if i put them where i wanted, specially for my rain gauge.
                                  So I wanted to use those adaptors https://www.openhardware.io/view/16/NRF2RFM69.
                                  I received them, and I'm still waiting RFM69 board to test it.

                                  But as the pinout is not the same between nrf24 and rfm69 on raspberry gateway, I could not use the adaptor on the gateway. So before making a new board for my raspberry, I wanted to know if it's possible to change the default pin configuration, to have exactly the same as nrf24, and use an adaptor on the gateway too.
                                  For that, I "just" need to redefine DIO0 on pin 15 (default is 22). So I wonder if it's possible to do it.

                                  And "bonus question", I'd like to know why pin configuration is not the same between arduino and raspberry. Why pin 15 is not used for DIO0 on raspberry (equivalent to pin 2 on arduino). I'm telling myself it should be a good reason, but I don't get it.

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

                                  @barrydou is this what you need (from the documentation and ./configure--help)

                                  --my-rfm69-irq-pin=<PIN>    Pin number connected to RFM69 IRQ pin.
                                  

                                  For the bonus question: I wasn't aware that there was a mapping between Raspberry Pi gpio and Arduino pins. Could you share he rest of the list?

                                  1 Reply Last reply
                                  0
                                  • B Offline
                                    B Offline
                                    barrydou
                                    wrote on last edited by barrydou
                                    #1000

                                    @mfalkvidd I don't know what DI00 is, and if it's equivalent to IRQ ? If Yes, it's exactly what I need ! Thank you !!! :) I will test it as soon as I get my RFM69

                                    Here is the pin mapping between RFM69W/NRF24 and Arduino/Raspberry

                                    Arduino mini - NRF24  - RFM69 - Raspberry GW NRF - Raspberry GW RFM 
                                    9            - CE     - N/A   - 22               - N/A
                                    10           - CSN/CS - NSS   - 24               - 24
                                    13           - SCK    - SCK   - 23               - 23
                                    11           - MOSI   - MOSI  - 19               - 19
                                    12           - MISO   - MISO  - 21               - 21
                                    2            - IRQ    - DI00  - 15               - 22
                                    

                                    So, the only mismatch breaking pin compatibility (and preventing to use adaptors on the raspberry pi gateway) is on IRQ/DI00. Adaptors wire RFM69 DI00 on NRF24 IRQ pin, but they don't use, by default, the same pin on raspberry, depending the radio type.

                                    mfalkviddM 1 Reply Last reply
                                    0
                                    • B barrydou

                                      @mfalkvidd I don't know what DI00 is, and if it's equivalent to IRQ ? If Yes, it's exactly what I need ! Thank you !!! :) I will test it as soon as I get my RFM69

                                      Here is the pin mapping between RFM69W/NRF24 and Arduino/Raspberry

                                      Arduino mini - NRF24  - RFM69 - Raspberry GW NRF - Raspberry GW RFM 
                                      9            - CE     - N/A   - 22               - N/A
                                      10           - CSN/CS - NSS   - 24               - 24
                                      13           - SCK    - SCK   - 23               - 23
                                      11           - MOSI   - MOSI  - 19               - 19
                                      12           - MISO   - MISO  - 21               - 21
                                      2            - IRQ    - DI00  - 15               - 22
                                      

                                      So, the only mismatch breaking pin compatibility (and preventing to use adaptors on the raspberry pi gateway) is on IRQ/DI00. Adaptors wire RFM69 DI00 on NRF24 IRQ pin, but they don't use, by default, the same pin on raspberry, depending the radio type.

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

                                      @barrydou I don't know what dio0 is either, but https://learn.sparkfun.com/tutorials/rfm69hcw-hookup-guide/all describes it like this:

                                      Digital I/O 0
                                      RX interrupt Received data ready interrupt signal from RFM69HCW to microcontroller

                                      which sounds like it could be interrupt. It might be worth a try at least.

                                      1 Reply Last reply
                                      0
                                      • B Offline
                                        B Offline
                                        barrydou
                                        wrote on last edited by
                                        #1002

                                        @mfalkvidd Thank you.
                                        I've found that too https://www.mysensors.org/apidocs/RFM69_8h_source.html
                                        It's clearly indicated that DIO0 is IRQ.

                                        So I think with "--my-rfm69-irq-pin=" it will do the job.

                                        I'll test it as soon as i'll receive RFM69.

                                        Thank you again

                                        1 Reply Last reply
                                        1
                                        • M marceloaqno

                                          @jerseyguy1996 Are you using a decoupling capacitor?

                                          R Offline
                                          R Offline
                                          rolandow
                                          wrote on last edited by
                                          #1003

                                          @marceloaqno Sorry to kick this old topic, but I will soon be trying to build my gateway with a Raspberry pi. I was wondering if the capacitor is also required for the gateway, or just for the nodes?

                                          Because at the instruction page on how to wire and build a Raspberry Pi gateway, the capacitor isn't mentioned.

                                          I'll be using a RPI 1 and NRF24L01+

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


                                          14

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


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

                                          • Don't have an account? Register

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