<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div><div class="">I’ve committed a change to the esp32wifi component, to try to support a promiscuous mode for the wifi client. This should make it work the way it does on cellphones, computers, and pretty much all equipment. Rather than specifying a specific wifi AP to connect to, it just connects to whichever it can (based on where it has connected to in the past).</div><div class=""><br class=""></div><div class="">Up until now, we’ve supported the wifi client mode as follows:</div><div class=""><br class=""></div><div class=""><ul class="MailOutline"><li class="">config set wifi.ssid <SSID> <password></li><li class="">wifi mode client <SSID></li></ul></div><div class=""><br class=""></div><div class="">That seems to work well, and reconnection now seems pretty robust.</div><div class=""><br class=""></div><div class="">What I’ve committed today supports this variant:</div><div class=""><br class=""></div><div class=""><ul class="MailOutline"><li class="">config set wifi.ssid <SSID1> <password></li><li class="">config set wifi.ssid <SSID2> <password></li><li class="">… etc</li><li class="">wifi mode client</li></ul></div><div class=""><br class=""></div><div class="">The module should then connect to either SSID1 or SSID2, whichever comes into range.</div><div class=""><br class=""></div><div class="">I’ve got no idea how phones, laptops, etc, actually implement it, and can’t find much information on the ESP32 resources or forums. There is certainly no magic ‘here is a list of SSIDs - connect to whichever comes close’ function in the wifi libraries. So, I ended up implementing the following logic:</div><div class=""><br class=""></div><div class=""><ul class="MailOutline"><li class="">Bring up the wifi as a client, in station mode.</li><li class="">Every 30 seconds or so, do a wifi scan of available SSIDs.</li><li class="">If we find a SSID within range, that has a matching name in config wifi.ssid, we try to actively connect to it. For this, we pick the first SSID we find that matches.</li><li class="">If we don’t manage to connect (get disconnected), or there is no SSID in range that matches anything in config wifi.ssid, wait for 30 seconds, then go back and scan again.</li></ul></div><div class=""><br class=""></div><div class="">It’s not elegant, but seems to work. Change is isolated in esp32wifi.{h,cpp}, which is pretty small and manageable at the moment. Please give it a go, and let me know how it works out for you.</div><div class=""><br class=""></div><div class="">Regards, Mark.</div><div class=""><br class=""></div><div class="">P.S. Also found (and cleaned up) a big stonking memory leak in ‘wifi scan’.</div><div class=""><br class=""></div></body></html>