Giter Club home page Giter Club logo

Comments (5)

hrolofs avatar hrolofs commented on September 27, 2024 2

Many thanks to everyone for the quick response to my questions and the fix in the documentation. :-)

from rf24.

2bndy5 avatar 2bndy5 commented on September 27, 2024

Shouldn't it then read:
Strong signal > -64dBm, Weak signal < -64dBm

Yes, the example code should be updated. Although a "Weak signal" could also mean "no signal". We have no way of knowing given the nRF24L01's SPI intrerface.

     * @return true if a signal less than or equal to -64dBm was detected,
     * false if not.

This should read "greater than or equal" not "less than or equal".

(all values are negative)

This is not true for all radios that use the nRF24L01 chip. Certain manufacturers tweak the PA/LNA processing to achieve > 0 dBm (ebyte modules can get as high as +20dBm).

from rf24.

2bndy5 avatar 2bndy5 commented on September 27, 2024

We have also found from using reverse engineering tactics (for sniffing packets from a non-nRF24L01 radios) that general listening can be more sensitive (> -80 dBm IIRC) than testRPD() reports.

The main discrepancy is that the RPD flag in the radio's registers was added for compliance testing mandated by government regulations. Meaning testRPD() satisfies the required carrier wave [hardware] tests, but it does not fully describe the actual performance during RX operation. We have a promiscuous-scanner branch to experiment with this (and improve the scanner examples).

from rf24.

TMRh20 avatar TMRh20 commented on September 27, 2024

...a "Weak signal" could also mean "no signal". We have no way of knowing given the nRF24L01's SPI intrerface.

Hmm, I think one could call the available(); function immediately after calling testRPD(); or testCarrier();

        radio.startListening();
        delayMicroseconds(128);
        radio.stopListening();

        // Did we get a carrier?
        if (radio.testCarrier()) {
          ++values[i];
        }else
        if(radio.available()){
          ++weakValues[i];
        }

Not tested, but maybe it could work?

Incoming commit and PR, please verify I got it right this time lol. @2bndy5 @hrolofs

from rf24.

2bndy5 avatar 2bndy5 commented on September 27, 2024

I think it would work with a non-plus variant. The carrier wave test setup on non-plus variants was very much like sending a payload full of 0xFF with no ACKs.

from rf24.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.