RSSI returns value of 2

some times
int wSignal = WiFi.RSSI();
returns a value of 2, the docs states it should be between -1 … -127
Is that a specific state, good / bad??

[EDIT] it seems that once WiFI.RSSI() returns “2” it always returns “2” never goes back to -1…-127
[EDIT] it seems that it starts after Spark.disconnect();


The comments in the code say the return values of -127 to -1 are in dB while a return of 1 means the TI CC3000 returned an error and 2 means that the call to scan for signals timed out (took more than 1 sec of real time).

I went ahead and created a pull request for the doc so that this is explained.


after ~ 1 minute after I switch off Spark with Spark.disconnect() I only get a “2”.

I guess spark has to be enabled for that function to be active?

Also the value only changes ~ once per minute. Is that correct?

thanks for the help

You need WiFi active, but not the Spark cloud, so I am not sure what you are seeing.

Once a minute sounds right but it is programmable in the TI CC3000. There is no “easy” interface to change the period and the TI part has a limited number of write cycles for certain parameters that are stored across power outages so you don’t want to change it often.

In my experience the RSSI values can vary core-to-core and with small physical changes like putting your hand between the antenna and the router. Folks have tried location based code, but I think it would be very challenging to use the RSSI values for anything but simply finding the strongest current SSID signal.

I am just trying to check if WiFi signal is present. One minute is fine.
BUT it really looks like RSSI depends on spark being connected.

I can use That works fine w/o spark connected.



I just tried a simple test case and it does work for me with the cloud disconnected. My core is breathing green and happily reporting a -44 dB sitting close to the router.

Can you try a simpler test case maybe?

yes my code has become longer… will try to do a simple test case…

1 Like