I just got a pi zero W and I'm trying to run it on my home wifi which has two access points (EAP245). However, for some reason, the 0W insists on connecting to the AP with the lowest signal, not the strongest. It connects to the one with almost -70dBm although it obviously sees the other AP with -30dBm (which is also placed right next to the zero right now as a test).
First I thought it was a problem with channel selection, so I swapped channels on the APs, but it didn't matter. Now I'm suspecting that it is choosing the AP with the lowest BSSID, which seems like a very odd choice.
It does seem to do some sort of roaming though, because if I reboot the AP it is connected to, it would swap over to the other one temporarily and I don't seem to loose my SSH session when that happens.
This is my wpa_supplicant.conf
country=SE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="Bertoni"
psk="plain_text_key"
}
am I missing some obvious configuration? Just for reference, all my 30+ devices roams correctly on this network, so the wifi setup should be correct. Roaming is a driver responsibility, so question is if the driver for BCM43430 is broken.
I get this in dmesg output:
[ 16.623259] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[ 16.623731] usbcore: registered new interface driver brcmfmac
[ 16.654559] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt failed with error -2
[ 16.939143] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[ 16.939372] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[ 16.940589] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/1 wl0: Oct 22 2019 01:59:28 version 7.45.98.94 (r723000 CY) FWID 01-3b33decd
I'm running latest buster lite, and just ran apt update/upgrade, but not a firmware update, so still on kernel 5.4.83+ #1379
EDIT: For everyone that think that wifi-roaming refers to switching SSID, that is not the case for "true" roaming (wpa-roam is something different). For more info, read this: https://www.smallnetbuilder.com/basics/wireless-basics/33180-how-to-fix-wi-fi-roaming. As stated, this works fine and dandy for every other device (as should), so something is off with the pi zero W.