Let’s try the Wifi features of the new Raspberry Pi Pico W.
The Pico W has two Wifi interfaces:
- network.STA_IF, the station interface
- network.AP_IF, the access-point interface
network.STA_IF
The station (or standard) interface, can be used to connect the Pico W to another 2.4GHz WiFi access point. This seems to be the default.
network.AP_IF
The access-point interface can be used to turn your Pico W into a WiFi access-point that can connect up to 4 devices at the moment.
Use the Pico W to scan access points
Let’s try out the station interface, network.STA_IF.
Using micropython it’s really a breeze:
import network
import binascii
wlan = network.WLAN() # network.WLAN(network.STA_IF)
wlan.active(True)
networks = wlan.scan() # list with tupples with 6 fields ssid, bssid, channel, RSSI, security, hidden
i=0
networks.sort(key=lambda x:x[3],reverse=True) # sorted on RSSI (3)
for w in networks:
i+=1
print(i,w[0].decode(),binascii.hexlify(w[1]).decode(),w[2],w[3],w[4],w[5])
In most example code you need to specify the interface, but apparently it defaults to the standard station network.STA_INF interface.
The output is a list with tupples that according to the docs should contain six fields ssid, bssid, channel, RSSI, security, hidden.
The bssid is the same as the hardware unique MAC-address.
There are five values for security:
- open (0)
- WEP (1)
- WPA-PSK (2)
- WPA2-PSK(3)
- WPA/WPA2-PSK (4)
and two for hidden:
- visible (0)
- hidden (1)
The docs states that for hidden 0 = visible and 1 = hidden, but actually the output I get, some twenty networks(!?) gives no 0, but several undocumented values for hidden: 1,2,3,4,5,7.
Twenty WiFi-networks? Yes, I do work in a city. And that’s only the 2.4GHz band. 🙁
So what does those values mean, what is there more than visible or hidden?
Also the security results differ with outputs from 0 (=open), most 5, but some report 7.
What do those values for security mean?
Is it a bug or a (undocumented) feature?