I am using the Fez Portal with the latest TinyCLR OS. When I call Winc15x0Interface.GetRssi(), the value is a positive int that increases when the wifi signal is stronger. I am getting around 80 when the signal is really strong. The typical range of the RSSI is -80 to -20dBm, with -20dBm being really strong. What is the range of returned value from Winc15x0Interface.GetRssi()?
the value is converted to 0->100%, this makes more sense for most users.
I guess 80 mean 80% and it is strong.
Thank you very much for the explanation @Dat_Tran . I wish you would have documented the code though…
RSSI / RSRQ / RSRP and dBm’s , oh my.
Unfortunately RSSI isn’t really a ‘standard’ measurement per se and it has been replaced by RCPI which actually is defined in IEEE 802.11 — RCPI actually has defined levels of accuracy and resolution unlike RSSI.
Depending on the vendor, your values could range from 0; absolute best signal (all your RF’s are now belong to us) to -120; you ‘DEAFinitely’ can’t hear me now. The range has been expressed as decibels where for example, -64dBm is something like 0.4uWatts of power (Which is actually a pretty good signal, btw.)
And yes, I looked for this as well in the GHI code and found only:
Winc15x0Interface.TurnOn(); return Winc15x0Interface.NativeGetRssi();
So GHI is just schlepping a native call back at you w/o so much as a “Hey, is this data valid and within range?”
So looking at the 127-page ATWINC15x0 WiFi Network Controller Software Design Guide, one might find section 5.4 helpful if only to let you know that getting the device’s RSSI value requires talking to their (async) m2m_wifi_get_connection_info API call.
All this to say if you go diving into the ASF docs, you’ll only come out with the low-level call signature:
Which their API only says: "Connection RSSI signal. That and the sint8 data type has possible range of -128 to 127.
So, HAVE FUN. Ha. You MIGHT get 0 to 100. You might get 0 to 127, or according to the API, you might actually get anywhere from -128 to 127.