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