Reach M+ disconnecting from wifi and getting stuck in scanning mode

I am working with a Reach M+ device. ReachView version v2.18.1. Not sure how to check firmware version.
I have the unit on a table 30 cm from the router. Most of the time it connects fine but every few times it disconnects from wifi. Blue leds starts flashing quickly. I have to power cycle to recover. Usually it recovers after a power cycle. Sometime it connects after booting back but then disconnects again.
It does not enter hotspot mode. In http://reach.lan/#wi-fi it shows that network has full bars.

I have the system reports. Can send privately if needed. Looking at the wifireach.log I can see entries like this:

[2019-11-07 08:28:34,547] [    INFO] --- Reach is already connected to DIR-825-4af7, mode is infrastructure, init complete (nmcontrol_initializer.py:36)
[2019-11-07 08:28:34,550] [   DEBUG] --- Set network state with 'infrastructure' (init_network.py:50)
[2019-11-07 09:56:31,825] [   ERROR] --- Unable to get scan results (nmcontrol_reachwifi.py:55)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/reachwifi/nmcontrol_reachwifi.py", line 53, in get_scan_results
    scanned_networks = self.nmcontrol.get_scanned_networks()
  File "/usr/lib/python2.7/site-packages/nmcontrol/nmcontrol.py", line 137, in get_scanned_networks
    scanned_networks = [self._create_network_object(ap) for ap in self.interface_proxy.GetAccessPoints()]
  File "/usr/lib/python2.7/site-packages/nmcontrol/nmcontrol.py", line 147, in _create_network_object
    raise exceptions.NMDBusError(error)
NMDBusError: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/AccessPoint/62 (19)
[2019-11-07 09:59:17,692] [   ERROR] --- Unable to get scan results (nmcontrol_reachwifi.py:55)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/reachwifi/nmcontrol_reachwifi.py", line 53, in get_scan_results
    scanned_networks = self.nmcontrol.get_scanned_networks()
  File "/usr/lib/python2.7/site-packages/nmcontrol/nmcontrol.py", line 137, in get_scanned_networks
    scanned_networks = [self._create_network_object(ap) for ap in self.interface_proxy.GetAccessPoints()]
  File "/usr/lib/python2.7/site-packages/nmcontrol/nmcontrol.py", line 144, in _create_network_object
    ap_proxy = self._get_proxy_by_path(ap_path)
  File "/usr/lib/python2.7/site-packages/nmcontrol/nmcontrol.py", line 40, in wrapped_func
    raise exceptions.NMDBusError(error)
NMDBusError: 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()'
[2019-11-07 09:59:32,608] [   ERROR] --- Unable to get scan results (nmcontrol_reachwifi.py:55)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/reachwifi/nmcontrol_reachwifi.py", line 53, in get_scan_results
    scanned_networks = self.nmcontrol.get_scanned_networks()
  File "/usr/lib/python2.7/site-packages/nmcontrol/nmcontrol.py", line 137, in get_scanned_networks
    scanned_networks = [self._create_network_object(ap) for ap in self.interface_proxy.GetAccessPoints()]
  File "/usr/lib/python2.7/site-packages/nmcontrol/nmcontrol.py", line 144, in _create_network_object
    ap_proxy = self._get_proxy_by_path(ap_path)
  File "/usr/lib/python2.7/site-packages/nmcontrol/nmcontrol.py", line 40, in wrapped_func
    raise exceptions.NMDBusError(error)
NMDBusError: 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()'

this repeats for some time

The lines after that are

[2019-11-07 11:13:21,422] [   DEBUG] --- Current state is: 120 (nmcontrol_monitor.py:63)
[2019-11-07 11:13:39,878] [   DEBUG] --- Current state is: 30 (nmcontrol_monitor.py:63)
[2019-11-07 11:13:40,616] [   DEBUG] --- Current state is: 40 (nmcontrol_monitor.py:63)

How to troubleshoot this?

Thanks, Arik.

nmcontrol.log also has errors

[2019-11-07 08:28:34,544] [    INFO] --- Active connection: {'is_visible': False, 'uuid': '0940aa35-200d-4380-8169-0975a72d97ac', 'mac_address': '6C:21:A2:8F:78:00', 'ip': '192.168.118.106', 'security': 'wpa-psk', 'is_added': True, 'is_connected': True, 'ssid': u'DIR-825-4af7'}. (nmcontrol.py:178)
[2019-11-07 08:28:34,905] [   DEBUG] --- Current mac address: 6C:21:A2:8F:78:00. (nmcontrol.py:119)
[2019-11-07 09:59:17,681] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 09:59:32,594] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:00:48,182] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:03:18,019] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:03:32,704] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:05:02,960] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:13:48,129] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:14:18,717] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:15:46,895] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:17:17,176] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:17:32,108] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:18:32,128] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:23:47,100] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:25:02,115] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:25:47,120] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:26:17,146] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:28:32,204] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:32:47,191] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:34:32,201] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:36:02,321] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:38:47,431] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 10:39:17,438] [   ERROR] --- Got DBus error! 'object does not export any interfaces; you might need to pass object path as the 2nd argument for get()' (nmcontrol.py:39)
[2019-11-07 09:55:39,786] [   DEBUG] --- Started connecting thread, aim ssid: None (nmcontrol.py:243)
[2019-11-07 09:55:39,790] [    INFO] --- Try to activate connection with ssid: None (nmcontrol.py:260)
[2019-11-07 09:55:39,846] [   DEBUG] --- connecting in process, current state is 70 (nmcontrol.py:280)
[2019-11-07 09:55:40,097] [   DEBUG] --- Active connection path: /org/freedesktop/NetworkManager/Settings/1. (nmcontrol.py:184)
[2019-11-07 09:55:40,214] [   DEBUG] --- Current ip address: 192.168.118.106. (nmcontrol.py:127)
[2019-11-07 09:55:40,259] [   DEBUG] --- Current mac address: 6C:21:A2:8F:78:00. (nmcontrol.py:119)
[2019-11-07 09:55:40,261] [    INFO] --- Active connection: {'is_visible': False, 'uuid': '0940aa35-200d-4380-8169-0975a72d97ac', 'mac_address': '6C:21:A2:8F:78:00', 'ip': '192.168.118.106', 'security': 'wpa-psk', 'is_added': True, 'is_connected': True, 'ssid': u'DIR-825-4af7'}. (nmcontrol.py:178)
[2019-11-07 09:55:40,410] [    INFO] --- Connection activated, ssid: None (nmcontrol.py:256)
[2019-11-07 09:55:40,507] [   DEBUG] --- Current mac address: 6C:21:A2:8F:78:00. (nmcontrol.py:119)
[2019-11-07 09:55:40,556] [   DEBUG] --- Active connection path: /org/freedesktop/NetworkManager/Settings/1. (nmcontrol.py:184)
[2019-11-07 09:55:40,712] [   DEBUG] --- Current ip address: 192.168.118.106. (nmcontrol.py:127)
[2019-11-07 09:55:40,757] [   DEBUG] --- Current mac address: 6C:21:A2:8F:78:00. (nmcontrol.py:119)
[2019-11-07 09:55:40,758] [    INFO] --- Active connection: {'is_visible': False, 'uuid': '0940aa35-200d-4380-8169-0975a72d97ac', 'mac_address': '6C:21:A2:8F:78:00', 'ip': '192.168.118.106', 'security': 'wpa-psk', 'is_added': True, 'is_connected': True, 'ssid': u'DIR-825-4af7'}. (nmcontrol.py:178)

:+1: for pulling the logs!

AFAIK, the ReachView version you see is officially termed the “App version” https://docs.emlid.com/reachrs/common/reachview/settings/#app-version

I suppose if you had just flashed the firmware then you would reference it as the firmware version.

If you want to be proactive, you could send your full system report to support@emlid.com along with a link to this topic.

Is there anything else we should know about the environment? Heat? Other interference? etc.

One thing I would suggest is to move M+ to 3m away from the router and see if that changes the behaviour, i.e. to make sure it is not an RF saturation problem.

Hi Arik,

May I ask you to update Reach to the dev v2.21.0 update and check if the same issue persists?

You can subscribe to the dev branch in the Settings tab.

1 Like

A few things I have found with the Reach M+ is that it won’t always setup hotspot if not enough satellites. This syncs the time at boot.

How are you powering? I found if I am over/under amperage it tends to drop out on me as well.

Thanks for the tips.
I am not aware of something specific regarding heat or interference. It does get very hot when left to run for some time, I assume this is normal. Not sure if this is supposed to make the wifi disconnect, does it?

1 Like

Will try.

So I need to have satellites for the reach to start a hotspot?

I am powering from a usb power bank. How can I know if I am over/under amperage?

Gleb, I updated the device to the dev build and now I can’t SSH to the device using root/emlidreach that worked before. It is a big problem for me. Has something changed in the dev build?

This has generally been my experience.

It should say on the power bank itself what the voltage and amperage is. I believe the Reach M+ is happy at 5v and 2amps

Hi Arik,

Does update to v2.21.1 resolved your issue with disconnecting from Wi-Fi?

So far it didn’t happen again, but it was not reproducible reliably before so I will know better after few days of testing/usage.
Unfortunately I am currently dealing with the side effect of now loosing root access. Might need to downgrade to previous version to keep this unit useful to us. It is unfortunate you made that decision.