I would like to (repeatedly) measure the RSSI of a given Wi-Fi access point while I am (physically) approaching it. It is important to mention that at the beginning, my phone is not associated with the AP, hence reading RSSI via wpa_cli signal_poll does not work.

The best I have found so far is to repeatedly issue a wpa_cli scan and read the results using wpa_cli bss <BSSID>. However, this gives me new results with much too low frequency, as the scans take too much time. I target to get a new RSSI every second. (even if I limit scanning to the 5GHz band only, it is too slow).

Is there any way to scan for a single channel only (as I know the channel the access point is transmitting on)?


Install iw and then issue:

iw dev wlan0 scan freq 2417

It synchronously scans only the frequency(ies) you specify. This can give you multiple results per second!


If using the shell isn't a problem, you can compile iwlist command for ARM, and transfer it to device. iwlist scan as root may give you better results.

  • Thanks for your answer. iwlist scan does indeed give sufficiently verbose results. However, it still suffers from the fact that it issues a scan and exactly that scan takes too much time. I need another way to monitor RSSI than scanning repeatedly.
    – gzm0
    Jun 5 '13 at 20:48

You don't necessarily have to use shell for this. Try out inSSIDer it provides RSSI data, but I am not sure how realtime this data is.

For me this app is used to verify the consistency of the AP's (Enterprise network) in a certain location and their typical radio switch zone.

  • This is indeed a nice app, but unfortunately I need to log RSSI over time which this app seems to be unable to do.
    – gzm0
    Jun 7 '13 at 0:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.