Advice re: difficulty connecting to new router

I got a new router yesterday (Arris TG3492 - sometimes branded as "Gigabit Connect Box") provided by my ISP.

I am having trouble connecting to this with my Arduino (nano 33 IOT, WiFiNINA).
No problem connecting to my previous router, or connecting to the hotspot on my phone.

I have been trying to troubleshoot this and I would really appreciate any pointers for solutions or further useful troubleshooting.

So far the only success I have had is creating an open guest network (router allows a guest network). This results in a successful connection. So I can only assume that the difficulty lies in the WPA2 protocol implemented on the router? Or maybe the router has a problem with the way the Arduino is providing the network login details. I am not satisfied with this solution as I live in a built up area and don't want to broadcast any open network.

Things I have tried so far (not code but just collecting it in a code box):

// Putting this up top because this is the only successful approach so far.

  1. Setting up temporary guest network, no security, and no reserved IP address. Arduino is not trying to assert an IP address with WiFi.config.

i. This gets a successful connection. Arduino shows up in list of connected devices on the router, and also makes a successful internet connection.

  1. With completely default router settings:

i. Arduino cannot connect
Deauthentication code '0'

ii. Arduino thinks it can connect with asserted IP address ( WiFi.config(ip) ), but it is not a real connection - no internet access, and it does not show up in the list of conneted devices on the router.
However, WiFi.begin() returns a WL_CONNECTED enum, and we get network data like:
BSSID value, specific encryption type (WPA CCMP)

  1. I have added a reserved IP address for the Arduino's MAC address, in the router settings. Arduino is asserting this IP address, as the router expects.

i. Same exact result as point (ii) above - Arduino thinks it is connected to the netwoek, but does not show up in router "connected devices", and it cannot make an internet connection.

  1. Disabled 5Ghz WiFi network, and enabled 802.11b/g/n on 2.4Ghz (Where previously it was 802.11g/n)

i. No change.

  1. Setting up a temporary guest network with no security (Router allows a guest network)

i. Despite router settings to not broadcast SSID of unencrypted guest network, the network shows up in Arduino's scan of nearby networks.

ii. No change from previous attempts. Arduino believes it is connected to the network, but does not show up in connected devices, and it cannot make a connection to the internet.

iii. Switching off unencrypted guest network now.

  1. Setting up temporary guest network, no security, and no reserved IP address. Arduino is not trying to assert an IP address with WiFi.config

i. This gets a successful connection. Arduino shows up in list of connected devices on the router, and also makes a successful internet connection.

  1. Factory resetting router again. Using all default values, changing 2.4Ghz to operate on 20/40MHz channel (instead of default just 20MHz). No reserved IP, no assertion of that IP by Arduino.

i. Result: No connection. As with every attempt without manual IP designation

  1. Swapping back to 20MHz 2.4Ghz, and changing to 802.11b/g/n from 802/11g/n. Otherwise factory settings.

i. Result: Same as above.

danielol1:
. . .

Things I have tried so far (not code but just collecting it in a code box):
. . .

Please take your comments out of the code box so we don't have to scroll to read each line. If you want your comments to look like code then use the 'Teletype' option. Here's an example of 'Teletype'.

Don

floresta:
Please take your comments out of the code box so we don't have to scroll to read each line. If you want your comments to look like code then use the 'Teletype' option. Here's an example of 'Teletype'.

Don

OK, done

Have you read this? https://www.arduino.cc/en/Tutorial/LibraryExamples/WiFiNINAConnectWithWPA

Hi countrypaul.

I have, it has been useful.

I haven't found a solution though yet.

I am using the code that you linked with some small additions:

  1. a WiFiClient to try connecting to a server, if WiFi connection seems successful
  2. trying WiFi.config(ip, dns, gateway, subnet) to specify those parameters to see if that helps (doesn't seem to)
  3. WiFi.reasonCode() to return a reason code for deauthentication (I don't really understand the results though but I am short on meaningful error info that I can understand here so I am using this anyway)
  4. other small changes

I have this up and running on another router (same code, no changes) and on my mobile hotspot. It just seems to be a problem with the new router.

Two suggestions to try

  1. If your new router supports both 2.4GHz and 5GHz try turning the 5GHz off and see if it makes any difference.

  2. The arduino does not support WPA2 Enterprise encryption, is it possible that is what the router is using, try setting the router to just use WPA and see if that works.

Neither of these is a proper solution, but may provide ideas on where the problem is.

Thanks for your reply

  1. I have tried this - no effect.

  2. I tried changing the routers security protocol from WPA2 Personal to WPA/WPA2 Personal. This also had no effect. ...what does work, and the only thing that seems to work so far, is switching off the network security altogether. The router only offers these three options (WPA2 Personal || WPA/WPA2 Personal || open)

Would it help to get the deauthentication codes for the above suggestions? I think these are specific to the router, I haven't been able to find a universal reference table to convert the deauthentication codes into messages.

Sorry I missed the fact you had already tried disabling the 5GHz in your original post.

I think you need to get back to the supplier (your ISP) and ask them for help, it appears the source code for the router has been made publically available - but it may well be that the ISP is using a bespoke version. The ISP may be very helpful, or may just try and duck responsibility completely however the Arduino (nano 33 IOT, WiFiNINA) is not a completely unknown device and if it was a problem with your Arduino I think others would have already found it.

What version of which libraries are you using on your arduino and which version of the IDE? Sometimes it is worth trying an older version just to be sure it is not a recent change causing an incompatibility with your router. Similarly does your router have the latest firmware and can you try an earlier version (ISP may not like this idea)?

Update (and a sort of solution):

I have been onto the ISP since Monday, and they sent out a replacement router this morning.
Sadly it is the same make and model of router, and has not solved the problem.
I made an Arduino device for a friend, who happens to have the same ISP and router, and they also have the same problem so this is not a surprise to me.

I've just checked the WIFiNINA firmware version. It was at 1.3.0 which I think is the latest available for this board.
I rolled it back to 1.2.4, and it connects fine with the earlier firmware version... Going to reinstall 1.3.0 now and see does it break it again.

Yep, it doesn't work with fw 1.3.0, and it does work with 1.2.4
Interesting.

From my point of view that is a solution!

Great to hear you have a solution. You should probably log the problem (and solution) with your ISP and the router manufacturer - you never know it might get fixed in version 13.1, or 14, or 15...

Thanks countrypaul. I can't believe it took me a full week to try rolling back the firmware!