chipKIT® Development Platform

Inspired by Arduino™

Getting the RSSI once you are connected to the AP

Created Wed, 05 Feb 2014 05:26:25 +0000 by pmorgent


pmorgent

Wed, 05 Feb 2014 05:26:25 +0000

Hi, I am successfully connecting to the AP with the UNO32 with Wifi Shield and the WF32.

I can also run a scan and get the RSSI strength using the ScanInfo. The problem is the Scan disconnects the wifi. :(

What I really want to do is connect to the AP (and then have my PC connect to the UNO32) get the connectionID and periodically get the RSSI of the received packets .. process it and send it to the PC via wifi whilst NOT disconnecting from the AP. The documentation hints that this can be done however has anyone actually done it?

On the old ardunio using the Async Labs wifi 2.0 library I could get the RSSI however can not see how to do it on the digilent library.

Thanks

Peter


majenko

Wed, 05 Feb 2014 10:18:38 +0000

Funnily enough I was looking into the exact same thing last night. I'd like to have a little WiFi signal strength icon on the display I have on my WF32, but running a scan just locks up the whole system once you're connected. Not ideal.

I don't think there's a way of directly doing it in the DWIFIcK library, but investigations are continuing (it may be a case of manually querying the MRF24 module).


pmorgent

Wed, 05 Feb 2014 11:00:10 +0000

I know it can be done as the arduino wifi 2.0 libs do it.. and looking at the receive packet the RSSI is embedded in there but I can not work out how to look at the pre-amble of the received packed to get the RSSI as it is stripped off at the DWifi level.. well thats what I have worked out so far. The code does have the struct for the preamble for the received packet but it is not referenced anywhere :(


majenko

Wed, 05 Feb 2014 17:23:52 +0000

Looks like we're on a hiding to nothing here. It seems the MRF24's state machine doesn't allow for getting the signal strength (which requires a scan) as the scan cripples the packet reception.

It seems the only way is to disable the current connection, run a scan, get the results, and re-establish the connection. I guess you could also implement roaming at the same time to hop between different access points...


thepascalix

Thu, 06 Feb 2014 08:35:58 +0000

Hi, and if you comment the check on connection into the WFcK_ScanNetworks method?

if(WFisConnected())
    {
        return(FALSE);
    }

obviously this isn't the best way to do...


pmorgent

Thu, 06 Feb 2014 22:09:03 +0000

Hi,

We have uncommented it but it still puts the wifi into a disconnected state for around 4 seconds whilst it does the scan. We then have to reconnect.. This is working for us but for controlling a UAV it is not really ideal to lose control of the plane for 4 seconds :(. It looks like you can get the RSSI from the RAW packets but I don't understand this well enough to work out how to do it.


Richard

Sat, 14 Feb 2015 21:09:15 +0000

Digging up an old thread... Did you eventually work out what you were trying to do?

I'm starting a project that will need low-level info from the WiFi module, and it would be ideal if I can still use the WiFi as a connection path. I don't expect this will be possible at the depth I desire, but you should certainly be able to readout RSSI without dropping the AP connection. I'm curious to see where the line is drawn.