IMP003s not connecting to extended network

Hi all.

My IMP003s stopped connecting to an extended network.

I have an Airport Extreme (APExt) in the middle of the house and an Airport Express (APExp) at one end of the house. The APExp is set up to extend the APExt network. Other [Apple] devices connect to the APExp no problems.

Up until about a month ago I was performing a lot of testing with the IMP003 connected to the APExp and everything worked fine. About a a week or so ago I tried to do some testing outside the house in an area usually within range of the APExp but the IMP003 wouldn’t connect. Inside the house <2’ from the APExp the IMP003 would connect to the APExt (I could tell it was connected to the APExt using the Airport Utility that comes with OSX and by using imp.getbssid). I’m pretty sure I haven’t updated the APExp/APExt’s firmware for a couple months at least. I tried clearing the IMP003s setting and re-configuring using BlinkUp but that didn’t resolve the problem. I tried cold-booting the APExt/APExp and resetting the APExp, no luck.

Has anyone noticed similar issues with extended [Apple] networks? Did anything change in the recent firmware upgrades that could have affected the IMPs ability to connect to extended networks?

Cheers,

Franc

Franc, what LED pattern are you seeing when the imp fails to connect?

Hi smittytone. The IMP never fails to connect, it only connects to the APExt.

You said it wouldn’t connect outside of the house.

Actually, it’d be interesting to know how WiFi works in this case (not just for imps). Does WiFi see two WLANs with the same SSID (just a string) and choose the one with the best signal strength, or is it more (or less) subtle than that?

or is it more (or less) subtle than that?

It depends on the client device. I believe that Android and iOS have different behaviours, for example.

The wireless firmware (which is pretty much opaque to us) changed in release 34, but we’ve not heard of any issues.

The imp will first attempt to connect to the last BSSID it was associated to, but if it can’t then it will scan and join whatever has a matching SSID.

Are you doing wireless extension, or wired extension?

My apologies smittytone, when it fails to connect to either the APExt or the APExp the “Searching for Wi-Fi network” LED pattern is transmitted.

The network extension is wireless Hugo. I just did a bunch of tests at sunrise this morning and the IMP reliably connected to the APExt when the IMP was situated at the usual outside install location, RSSI is -90dBm as reported by imp.rssi() and -76dBm as reported by APExt, but didn’t connect to the APExp. The APExp is only 6’ away when the IMP is installed in the usual location. I seem to be getting better WiFi performance very early in the morning, the IMP is able connect to the APExt from parts of the yard I struggle to get reception at during the day. I guess the RF environment is quieter at this time of the day.

Is there any reason the IMP searches for the previous BSSID rather than the SSID and BSSID with the best signal, like smittytone suggested? I assume if all is well with the network and the install location of the IMP remains constant this isn’t a problem and will result in the lowest energy usage but if the IMP is powered up inside the house and is them moved outside the house it might cause problems trying to maintain a link to the previous BSSID vice attempting to find the best quality connection. Does operation of a marginal -90dBm link increase energy consumption? Previous testing showed that during the day (noisier RF environment) the IMP does not reliably connect to the APExt at the usual install location and does not find the other BSSID on the network.

The imp searches for the previous one for speed of joining at powerup. A network scan takes time.

At -90dBm you are on the very edge and the imp will be running 1Mbps 802.11b. Power difference is pretty minimal, really.

I’m wondering whether, somehow, your APexp network is on a channel that the imp can’t see. Can you set the channel number when you’re in an extender setup?

Looks like it’s now using channel 1 of the 2.4GHz spectrum, as per attached screen shot. My network SSID is TheDarkSide, APExt BSSID ends with EE, APExp ends with F1. Both IMP003s seem to connect no worries now. I didn’t change any Wi-Fi settings. WTF!

Possibly the AP was on channel 13 and it switched? By default imp003 is US country code so it’ll only do channels 1-11 so the AP on ch13 would have been invisible to it.

so does this mean the IMP003 is not suitable for Europe (as we can’t assume clients won’t use channels 12 & 13 (in a lot of extenders you can’t even choose…). What about the IMP005 ?

Or AU. Good point vedecoid.

I don’t think my problem was caused by the network operating on channel 13. As I understand it the repeater operates at the same frequency as the access point. The IMP wouldn’t connect to the APexp but connected to the APext; this seems to rule out operation on channel 13. Unfortunately I didn’t have the WiFi network analysis software when the IMP wouldn’t connect to APexp so didn’t see what channel the network was operating on.

Hugo, you mentioned IMP003 is US by default. Can the IMP003 be programmed to cover the full range of channels? If not, is there a plan for an EU/AU IMP003?

All imps can have their country code set at blessing time (ie in the manufacturing flow). They are all pre-programmed for US channels 1-11 only by default as that ensures that stock can be sent anywhere - the US is very particular about what is allowed to be programmable by the end user.

See https://electricimp.com/docs/api/imp/setcountry/

I really think it’s confusing to say “at blessing time” when we mean “in the manufacturing flow”. Improm features have been misimplemented before now based on acceptance criteria that specified “at blessing time” when in fact blessing is only a small part of the manufacturing flow. For instance, it is not the part of the flow during which country codes are set.

Peter

Possibly confusing from our point of view, but less so from a customer’s point of view. At one point we did only want to set nvram in the blessing flow so that we could validate nvram was “good”, but we backed that out in the end.

To be clear, country codes can only be set from factory firmware. A developer cannot set country codes from normal squirrel, because this makes it too easy to enable a device to talk on channels that are illegal in the US (in the eyes of the FCC).

Thanks guys. I hadn’t explored the factory process so wasn’t aware of country programmability. Unfortunately it looks as though fielding an EU/AU channeled development IMP isn’t an option, l guess I’ll advise testers here in AU to set their WiFi on channels 1-11.

Now I have the network scanning software I’ll monitor AP channel use and IMP/AP connection to see if there really is any funny business going on with the IMP and my extender.

I think I worked out what caused my issue.

The APExt transmits in both the 2.4GHz and 5GHz bands. When the APExp boots up it scans the network and, because it is pre-programmed to operate as a network extender, chooses to repeat a channel in either the 2.4GHz or 5GHz bands, not both. Not sure why the APExp decides to go with 2.4GHz or 5GHz but more often than not it seemed to favour 5GHz after multiple cold-boots, maybe because greater bandwidth is available at 5GHz. When the IMP003 were having trouble connecting to the extended network the APExp was most likely extending the 5GHz band. The IMP003 can’t do 5GHz so it connected to the 2.4GHz APExt network.

The APExt allows the user to select different network names for the 2.4GHz and 5GHz networks, this webpage explains how. Selecting a different name for the 5GHz network (TheDarkSide 5GHz) forced the APExp to connect to the pre-programmed network name (TheDarkSide) which operated in the 2.4GHz band. The IMP003s now connect to the APExp.

Shutting down both the IMPs and APExp then bringing the IMPs back up again cause them to connect to the APExt as expected. Shutting the IMPs down and bringing the APExp then IMPs back up again resulted in the IMPs connecting to the APExt (IMPs positioned inside the house, <2’ away from the APExp and between but >50’ from the APExp). Numerous IMP cold reboots in the same physical location caused them to reconnect to the APExt not the APExp although on one occasion one of the IMPs connected to the APExp without being powered down. Every now and again they connect to the APExp of their own volition or after a cold reboot. Hmmm. Moving outside the house (APExp between IMPs and APExt), the IMPs reliably switched connection from the APExt to the APExp and reliably connected to the APExp after numerous cold reboots.

TLDR: extend the 2.4GHz not 5GHz network when using IMP003s and don’t expect IMPs to connect to the highest SNR AP when positioned between a repeater and WiFi router.

If anyone needs a network scanning app I can recommend WiFi Explorer from the App Store. A bit pricey but full featured; worth the money IMHO.

If the imp has had a good connection on a BSSID, and it manages to join that BSSID again successfully, it will use it. This explains what you see, I believe.

The RSSI has to get pretty low (can’t remember the number offhand) for the wifi chip to start background scanning to look for stronger networks with the same SSID. That was likely what you saw with the device moving to the APexp without a reboot.