I assumed updating the wifi connection on our two month old LG WM3900HWA would be trivial. The first time I set it up was not memorable.

The update had to happen because I had just created a new VLAN specifically for all those “IoT” devices like washers, and lights, and plugs, so they can exist on their own network where they can only talk to themselves and the internet without having any visibility in to our “secure” network.

It’s a fairly simple process to put the washer in the correct mode, and then step through the app to update the network. Except, it wouldn’t connect this time. It was giving odd errors about a “router out of range” or, perhaps, it suggested, I was using invalid characters in my SSID or password.

I tried a few more times and then, before getting too annoyed, decided to switch and update the dryer’s connection first.

Success.1

Ok, back to the washer. I try connecting it to my now “secure” SSID, the one it was connected too before, with no luck. Same odd errors, same amount of forward progress.

Googling finds me a thread on the LG forums with some ideas. I continue to not have a lot of luck, but then someone suggests connecting the washer to a hotspot running on a separate cell phone, letting the firmware update, and then switching it to the proper network.

Initially, that works. I get it connected to my wife’s phone’s hotspot and it updates the firmware and “reboots”. However, when I go to change the network afterward, I get the same errors.

I am now annoyed.

I head back to do further research, and then I remember that a cell phone hotspot is only using the 2.4ghz frequency. Ok, so instead of having one SSID for 5ghz and 2.4ghz, I’ll split them. Except, no, I’m not updating all our other devices because of this stupid washer.

I create a new wireless network called stupidwasher.
I craft a password that best expresses my current feelings towards LG.
I choose to split the frequencies into separate SSIDs.

stupidwasher_2g will be its new home.

I step through the all too familiar steps to update the washer’s connection, and: it just works! No errors, no issues; it connects; I claim victory. You can even read me claiming victory over on that thread.

I go about my day and occasionally I’ll check the LG app to see if all is good. And all is good. For awhile.

The next morning, it’s not connected. If I go through the steps and “change” the network to the same stupidwasher_2g, it will re-connect, but seems to die sometime in the next 2-4 hours.

Ok, fine. How about we capture some packets? Luckily, the UniFi APs I run make this easy to do via SSH:

tcpdump -i ath2 -w - 'not port 22 and (ether dst 60:ab:14:21:a3:86 or ether host 60:ab:14:21:a3:86)'"

However, I wanted this to run until the connection drops again and I needed a better way to analyze the data: How about we pipe the output directly to Wireshark?

ssh [email protected] "tcpdump -i ath2 -w - 'not port 22 and (ether dst 60:ab:14:21:a3:86 or ether host 60:ab:14:21:a3:86)'" | c:\program files\wireshark\wireshark.exe" -k -i -

I watch it for a few minutes. It’s sending a “ping” via MQTT to an AWS IoT endpoint every ~60 seconds. Nothing out of the ordinary. I go about my day.

Usual Traffic

A few hours later, I check the LG app and it’s disconnected again. I immediately check Wireshark to see what’s happened, and…

wtf

Uhm. Say what now?

The washer seems to arbitrarily decide to broadcast itself to the network as 192.168.1.802. You can see in the screenshots that it’s been using the address of 10.107.33.30 and working fine. So… wtf washer?

The 10.107.0.0/16 network is my “IoT” VLAN. Previously, the washer was connected to a 10.0.0.0/24 address. In my home, it’s never been on a network with a DHCP server that would’ve given out a 192.168.1.0/24 address.

My initial reaction is to firewall the washer’s ARP traffic and hard code the ARP table in the router, but after a deep breath I realize I can handle this with a bit more finesse.

I create a new VLAN for the 192.168.1.0/24 network and assign it to my stupidwasher SSIDs. I start a DHCP server for the VLAN that will only give out one address: 192.168.1.803

Success.

It’s been working fine for more than a week now. Every time I get the notification that the washer has finished its cycle, I re-live the victory.

LG pls fix.


If you’re having this problem with this washer and just want to understand how to get it working:

I think you’re best off pestering LG, honestly. If you have consumer grade networking hardware, you probably can’t create as many VLANs, DHCP servers and SSIDs as you want. If you have some familiarity with the administration portals for your router and/or access points, you can look for a few things:

  • There’s probably an option to “split” or “combine” your SSIDs by frequency; this can get you a 2.4ghz only SSID.
  • If it’s not this way already, you can change the IP range your router’s DHCP server gives out to 192.168.1.0/24
  • You can probably map the MAC address of the washer to the IP address 192.168.1.80 in your router, but you’ll need the MAC first, obviously. It might be printed somewhere on the washer, or you can get it connected and look for a “client list” that shows current DHCP leases. My washer’s MAC begins 60:ab:14 but I don’t know that they all will be the same.

I’m able to accommodate this insanity because it doesn’t affect anything else on my home network to make these changes. If you’re not in such a flexible position, I wouldn’t waste my time trying to bend your network to the will of an idiot washer.


  1. I think the dryer has a different wifi chip in it; its MAC has no similarities to the washer, and it reports a hostname of ‘qca-ioeboard’ where as the washer reports no hostname. ↩︎

  2. After it broadcasts itself as 192.168.1.80, it does seem to reconnect to the old network again. You see the DHCP traffic and it broadcasts itself as the correct address, but won’t respond to pings or attempt any outbound traffic. ↩︎

  3. I couldn’t find the origin of 192.168.1.80. Possibly a hard-coded debugging value? The address it used in QA? It might not be the same for all of this kind of washer. ↩︎