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. Hardware
  3. New 2.2.0 Signal report function

New 2.2.0 Signal report function

Scheduled Pinned Locked Moved Hardware
14 Posts 6 Posters 4.6k Views 8 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.
  • gohanG Offline
    gohanG Offline
    gohan
    Mod
    wrote on last edited by
    #2

    https://forum.mysensors.org/topic/7822/portable-rfm69-signal-scanner/6

    It works only for RFM69 and I didn't need to add the define you mentioned

    1 Reply Last reply
    0
    • F Offline
      F Offline
      flopp
      wrote on last edited by flopp
      #3

      I tried to send RSSI with nRF and it seemed to work, I could get a value that was changing if I moved away from Gateway.

      i was using this variable, transportGetSignalReport(SR_TX_RSSI)

      so to send the RSSI create a Child, I think you can pick anyone that can handle value from 0-1024 then use below message to send the value

      send(RSSIMsg.set(transportGetSignalReport(SR_TX_RSSI)));

      I am using Domoticz as Controller

      1 Reply Last reply
      2
      • gohanG Offline
        gohanG Offline
        gohan
        Mod
        wrote on last edited by
        #4

        I'll give it a try

        1 Reply Last reply
        0
        • F Offline
          F Offline
          flopp
          wrote on last edited by
          #5

          I just now found some other maybe interested variables

          transportGetReceivingRSSI()
          transportGetSendingRSSI()
          transportGetReceivingSNR()
          transportGetSendingSNR()
          transportGetTxPowerLevel()
          transportGetTxPowerPercent()
          transportInternalToRSSI(_transportSM.uplinkQualityRSSI)

          i have not tested anyone of them, but it seems that "transportGetSendingRSSI()" will give same result as "transportGetSignalReport(SR_TX_RSSI)"
          so the message may look like this instead

          send(RSSIMsg.set(transportGetSendingRSSI()));

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

            It's similar to the signal scanner code I used but I did not know it was working on nrf24

            1 Reply Last reply
            0
            • slingS Offline
              slingS Offline
              sling
              wrote on last edited by
              #7

              Very useful new feature.
              I learned a lesson: I'll be using the nrf24 without booster from now on. Much better range and commmunication.

              output from nrf24 with radio set to LOW:

              -256 :transportGetReceivingRSSI()
              -29 :transportGetSendingRSSI()
              -256 :transportGetReceivingSNR()
              -256 :transportGetSendingSNR()
              -12 :transportGetTxPowerLevel()
              25 :transportGetTxPowerPercent()
              0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI)

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

                How did you make the tests?

                1 Reply Last reply
                1
                • slingS Offline
                  slingS Offline
                  sling
                  wrote on last edited by
                  #9

                  I added this to my sketch and observed serial output:

                  Serial.print(transportGetReceivingRSSI()); Serial.println(" :transportGetReceivingRSSI()");
                  Serial.print(transportGetSendingRSSI()); Serial.println(" :transportGetSendingRSSI()");
                  Serial.print(transportGetReceivingSNR()); Serial.println(" :transportGetReceivingSNR()");
                  Serial.print(transportGetSendingSNR()); Serial.println(" :transportGetSendingSNR()");
                  Serial.print(transportGetTxPowerLevel()); Serial.println(" :transportGetTxPowerLevel()");
                  Serial.print(transportGetTxPowerPercent()); Serial.println(" :transportGetTxPowerPercent()");
                  Serial.print(transportInternalToRSSI(_transportSM.uplinkQualityRSSI));Serial.println(" :transportInternalToRSSI(_transportSM.uplinkQualityRSSI)");

                  I don't know if it's a valid way to check the values.

                  1 Reply Last reply
                  1
                  • jumpingJ Offline
                    jumpingJ Offline
                    jumping
                    wrote on last edited by
                    #10

                    Hi,
                    the NRF24l01 doesn't have a RSSI function as reported in Nordic datasheet, so how can the signal report work?
                    thanks

                    Raspberrry PI3 - Domoticz
                    ESP8266 GW - MySensors 2.1.1

                    mfalkviddM 1 Reply Last reply
                    1
                    • jumpingJ jumping

                      Hi,
                      the NRF24l01 doesn't have a RSSI function as reported in Nordic datasheet, so how can the signal report work?
                      thanks

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

                      @jumping it doesn't :-)

                      See https://github.com/mysensors/MySensors/blob/57eca4f4afb3a26f4ef0ec10d522ac062de4d101/hal/transport/RF24/MyTransportRF24.cpp#L176

                      int16_t transportGetReceivingRSSI(void)
                      {
                      	// not available, only bool RPD
                      	return INVALID_RSSI;
                      }
                      
                      int16_t transportGetSendingSNR(void)
                      {
                      	return INVALID_SNR;
                      }
                      
                      int16_t transportGetReceivingSNR(void)
                      {
                      	return INVALID_SNR;
                      }
                      

                      and
                      https://github.com/mysensors/MySensors/blob/6794c72ecd8c35c1a7587f73996d50c347b17f93/hal/transport/MyTransportHAL.h#L23

                      #define INVALID_SNR         ((int16_t)-256)	//!< INVALID_SNR
                      #define INVALID_RSSI        ((int16_t)-256)	//!< INVALID_RSSI
                      #define INVALID_PERCENT     ((int16_t)-100)	//!< INVALID_PERCENT
                      #define INVALID_LEVEL ((int16_t)-256) //!< INVALID_LEVEL
                      
                      jumpingJ 1 Reply Last reply
                      1
                      • mfalkviddM mfalkvidd

                        @jumping it doesn't :-)

                        See https://github.com/mysensors/MySensors/blob/57eca4f4afb3a26f4ef0ec10d522ac062de4d101/hal/transport/RF24/MyTransportRF24.cpp#L176

                        int16_t transportGetReceivingRSSI(void)
                        {
                        	// not available, only bool RPD
                        	return INVALID_RSSI;
                        }
                        
                        int16_t transportGetSendingSNR(void)
                        {
                        	return INVALID_SNR;
                        }
                        
                        int16_t transportGetReceivingSNR(void)
                        {
                        	return INVALID_SNR;
                        }
                        

                        and
                        https://github.com/mysensors/MySensors/blob/6794c72ecd8c35c1a7587f73996d50c347b17f93/hal/transport/MyTransportHAL.h#L23

                        #define INVALID_SNR         ((int16_t)-256)	//!< INVALID_SNR
                        #define INVALID_RSSI        ((int16_t)-256)	//!< INVALID_RSSI
                        #define INVALID_PERCENT     ((int16_t)-100)	//!< INVALID_PERCENT
                        #define INVALID_LEVEL ((int16_t)-256) //!< INVALID_LEVEL
                        
                        jumpingJ Offline
                        jumpingJ Offline
                        jumping
                        wrote on last edited by
                        #12

                        @mfalkvidd thanks for your answer, can you tell me what is the RF24_getSendingRSSI?

                        int16_t transportGetSendingRSSI(void)
                        {
                        	return RF24_getSendingRSSI();
                        }
                        

                        Raspberrry PI3 - Domoticz
                        ESP8266 GW - MySensors 2.1.1

                        mfalkviddM 1 Reply Last reply
                        0
                        • jumpingJ jumping

                          @mfalkvidd thanks for your answer, can you tell me what is the RF24_getSendingRSSI?

                          int16_t transportGetSendingRSSI(void)
                          {
                          	return RF24_getSendingRSSI();
                          }
                          
                          mfalkviddM Offline
                          mfalkviddM Offline
                          mfalkvidd
                          Mod
                          wrote on last edited by mfalkvidd
                          #13

                          @jumping github has a great search function if you want to get the answer quicker next time. :-)

                          Implementation: https://github.com/mysensors/MySensors/blob/345d6d7d119f5d2446c7d6a41e6f749e6ca8741c/drivers/RF24/RF24.cpp#L401

                          1 Reply Last reply
                          1
                          • jumpingJ Offline
                            jumpingJ Offline
                            jumping
                            wrote on last edited by
                            #14

                            thanks, next time I will use the github search function :-) :+1:

                            Raspberrry PI3 - Domoticz
                            ESP8266 GW - MySensors 2.1.1

                            1 Reply Last reply
                            1
                            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.1k

                            Posts


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

                            • Don't have an account? Register

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