Worx Landroid does not get an IP from DHCP

Hi,

I have two Worx Landroid mowers and one of them goes into an endless loop of requesting an IP via DHCP. Sometimes it works if the mower changed the AP. Both mowers using the same server name "Robotic-mower" and are in the same network. Do not know if this is an issue...but worked for years...I tried the actual 23.05.0-rc1 without success.

TCPDUMP

08:27:13.129395 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
08:27:13.130819 IP OpenWrt.ham.lan.67 > robotic-mower.ham.lan.68: BOOTP/DHCP, Reply, length 300
08:27:13.136760 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
08:27:13.145865 IP OpenWrt.ham.lan.67 > robotic-mower.ham.lan.68: BOOTP/DHCP, Reply, length 300
08:27:13.149947 ARP, Request who-has robotic-mower.ham.lan tell 0.0.0.0, length 42
08:27:13.157317 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
08:27:18.153461 ARP, Request who-has robotic-mower.ham.lan tell OpenWrt.ham.lan, length 28
08:27:18.153944 ARP, Reply robotic-mower.ham.lan is-at 98:d8:63:18:b8:6e (oui Unknown), length 42
08:27:20.752183 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
08:27:20.753496 IP OpenWrt.ham.lan.67 > robotic-mower.ham.lan.68: BOOTP/DHCP, Reply, length 300
08:27:20.769544 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
08:27:20.778632 IP OpenWrt.ham.lan.67 > robotic-mower.ham.lan.68: BOOTP/DHCP, Reply, length 300
08:27:20.782682 ARP, Request who-has robotic-mower.ham.lan tell 0.0.0.0, length 42
08:27:20.789984 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
08:27:25.835051 ARP, Request who-has robotic-mower.ham.lan tell OpenWrt.ham.lan, length 28
08:27:25.835556 ARP, Reply robotic-mower.ham.lan is-at 98:d8:63:18:b8:6e (oui Unknown), length 42

OpenWRT Log

Tue Jun 13 08:24:40 2023 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-iot) 98:d8:63:18:b8:6e
Tue Jun 13 08:24:40 2023 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 08:24:40 2023 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 08:24:40 2023 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-iot) 192.168.180.55 98:d8:63:18:b8:6e robotic-mower
Tue Jun 13 08:24:48 2023 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-iot) 98:d8:63:18:b8:6e
Tue Jun 13 08:24:48 2023 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 08:24:48 2023 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 08:24:48 2023 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-iot) 192.168.180.55 98:d8:63:18:b8:6e robotic-mower
Tue Jun 13 08:24:55 2023 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-iot) 98:d8:63:18:b8:6e
Tue Jun 13 08:24:55 2023 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 08:24:56 2023 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 08:24:56 2023 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-iot) 192.168.180.55 98:d8:63:18:b8:6e robotic-mower

An ideas or does anyone see something in the logs? Something missing on TCP Stack???

Cheers,
Nils

Try forcing dnsmasq to use broadcast to communicate with the mower when it is not yet configured to see if that makes a difference.

uci add dhcp host
uci set dhcp.@host[-1].name='robotic-mower2'
uci set dhcp.@host[-1].mac='98:d8:63:18:b8:6e'
uci set dhcp.@host[-1].broadcast='1'
uci commit dhcp
/etc/init.d/dnsmasq restart
1 Like

At the end of the process, the mower replies to an ARP at its IP. It looks like the mower is the problem for repeating the process after it has an assignment.

What @pavelgl suggested will also give the mowers unique names within OpenWrt. Upon matching the MAC address, dnsmasq will override the name sent by the client. This is unlikely to change the underlying problem, but it will make troubleshooting easier.

1 Like

Lawn mowers!?!?

Cool (not sure I personally trust 2 mobile Internet-connected robots with high speed cutting blades though)!!!

  • Does the mower have a Factory Reset feature?
  • Have you asked Worx Customer Support also?

To be clear, it stopped working before you upgrade, correct?

Rebooted the mower two times now and seems working. After applying the broadcasting flag the mower has no endless loop but still request an IP multiple times which still looks strange for me. Is this a bug with the mower? Before the winter I had never an issue but updated OpenWRT in the meantime multiple times.

(Changed the name of the second mower that is working fine the whole time accidently.)

Tue Jun 13 17:52:18 2023 daemon.notice hostapd: phy1-ap2: AP-STA-DISCONNECTED 98:d8:63:18:b8:6e
Tue Jun 13 17:52:18 2023 kern.info kernel: [64058.518207] ath10k_pci 0001:01:00.0: mac flush vdev 2 drop 0 queues 0x4 ar->paused: 0x0  arvif->paused: 0x0
Tue Jun 13 17:52:18 2023 daemon.info hostapd: phy1-ap2: STA 98:d8:63:18:b8:6e IEEE 802.11: authenticated
Tue Jun 13 17:52:18 2023 daemon.info hostapd: phy1-ap2: STA 98:d8:63:18:b8:6e IEEE 802.11: associated (aid 1)
Tue Jun 13 17:52:18 2023 daemon.notice hostapd: phy1-ap2: AP-STA-CONNECTED 98:d8:63:18:b8:6e auth_alg=open
Tue Jun 13 17:52:18 2023 daemon.info hostapd: phy1-ap2: STA 98:d8:63:18:b8:6e RADIUS: starting accounting session E72F09F7C21F82FF
Tue Jun 13 17:52:18 2023 daemon.info hostapd: phy1-ap2: STA 98:d8:63:18:b8:6e WPA: pairwise key handshake completed (RSN)
Tue Jun 13 17:52:18 2023 daemon.notice hostapd: phy1-ap2: EAPOL-4WAY-HS-COMPLETED 98:d8:63:18:b8:6e
Tue Jun 13 17:52:19 2023 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-iot) 98:d8:63:18:b8:6e
Tue Jun 13 17:52:19 2023 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 17:52:19 2023 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 17:52:19 2023 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-iot) 192.168.180.55 98:d8:63:18:b8:6e robotic-mower
Tue Jun 13 17:52:27 2023 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-iot) 98:d8:63:18:b8:6e
Tue Jun 13 17:52:27 2023 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 17:52:27 2023 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 17:52:27 2023 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-iot) 192.168.180.55 98:d8:63:18:b8:6e robotic-mower
Tue Jun 13 17:52:35 2023 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-iot) 98:d8:63:18:b8:6e
Tue Jun 13 17:52:35 2023 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 17:52:35 2023 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 17:52:35 2023 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-iot) 192.168.180.55 98:d8:63:18:b8:6e robotic-mower
Tue Jun 13 17:52:43 2023 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-iot) 98:d8:63:18:b8:6e
Tue Jun 13 17:52:43 2023 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 17:52:43 2023 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-iot) 192.168.180.55 98:d8:63:18:b8:6e
Tue Jun 13 17:52:43 2023 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-iot) 192.168.180.55 98:d8:63:18:b8:6e robotic-mower
Tue Jun 13 17:52:50 2023 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-iot) 98:d8:63:18:b8:6e

--> Finished sucessfully

Sadly the issue is back with broadcast enabled.

16:02:28.804960 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
16:02:28.807527 IP OpenWrt.ham.lan.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
16:02:29.176312 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
16:02:29.185028 IP OpenWrt.ham.lan.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
16:02:29.796150 ARP, Request who-has robotic-mower.ham.lan tell 0.0.0.0, length 28
16:02:29.811984 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
16:02:37.346153 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
16:02:37.348839 IP OpenWrt.ham.lan.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
16:02:37.787378 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
16:02:37.796627 IP OpenWrt.ham.lan.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
16:02:38.407867 ARP, Request who-has robotic-mower.ham.lan tell 0.0.0.0, length 28
16:02:38.422491 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
16:02:41.624079 ARP, Request who-has wf-2010.ham.lan tell wf-2010.ham.lan, length 46
16:02:45.886185 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
16:02:45.888916 IP OpenWrt.ham.lan.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
16:02:46.390595 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
16:02:46.399264 IP OpenWrt.ham.lan.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
16:02:47.011046 ARP, Request who-has robotic-mower.ham.lan tell 0.0.0.0, length 28
16:02:47.025639 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
16:02:54.425280 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
16:02:54.427970 IP OpenWrt.ham.lan.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
16:02:55.002344 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
16:02:55.011242 IP OpenWrt.ham.lan.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
16:02:55.592732 ARP, Request who-has robotic-mower.ham.lan tell 0.0.0.0, length 28
16:02:55.607084 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308
16:03:03.353321 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 98:d8:63:18:b8:6e (oui Unknown), length 308

The mower does not get recognize the IP address. Any other ideas? Resetting the mower? I do not find any issues in the common forums for auto mowers but perhaps this is not identified...

Cheers,
Nils

Did you try this yet?

Yes, without success. Mower is located at my moms house so it is not easy to reset it.

Found out that DHCP is done correctly if the mower is connected to an AP (TP-Link 6c v2). It does not work if connected to my Zyxel router directly. Still switches to CT drivers but same behavior. All other IoT devices works fine in every configuration.