When developing apps for Magic Leap One, we can use the
Magic Leap Remote app to start the device connectivity and deploy our apps
directly from the Unity Editor. Even when the ML1 device has been configured
for development purpose by enabling the creator mode, installing the
certificate and allowing MLDB access, there may be a “No Device is Connected”
error. In this article, we take a look at how to use the MLDB CLI to address device
connectivity problems on a Windows computer.
What is MLDB?
The Magic Leap Device Bridge (MLDB) CLI is used to provide
direct connectivity to the device via USB and WIFI. We can also use this CLI to directly deploy
apps onto the device. It is during the deployment process when we can notice
connectivity problems with our computers.
Is the device
connected?
Assuming the ML1 device has been configured properly for
MLDB connectivity and that we have a verified USB connection, we are going to
start to troubleshoot the connection error by starting the MLDB CLI and typing
the following commands after the > prompt:
>mldb devices
--output
List of devices attached
|
If we get no device serial number on the output then we know
that we have a problem with the device connecting to our PC via USB. To double
check, let’s take a look at our Device Manager panel and check the Universal
Serial Bus Devices configuration. If we
find our ML1 listed there (see image below), we know that the physical
connection via USB is working.
Let’s Repair our
Registry Settings
We know that a physical connection is working, but we still
do not see the device via MLDB CLI. We need to check that our device
registration in our PC as USB connection is valid by using the CLI and checking
our registry settings with the following command at the > prompt:
>mldb usbreg
Found connected ML device with serial number: ###
GOOD: Device has a container node.
GOOD: Device has an interface GUID for the non-composite device.
BAD: Device is missing an interface GUID for the first composite
interface
BAD: Device is missing an interface GUID for the second composite
interface
Created registry file that should fix the issue: \mlsdk\v0.20.0\tools\mldb\mldb-fix.reg
Double click the file in Windows Explorer to update your registry,
then unplug
and replug your ML device. MLDB should now recognize the device.
|
We should now see some messages indicating if there are any
problems. If any problem is found, a new registry setting file is created, and
we need to import it into our system. But before we import the file, we can
take a look at our registry settings and compare it to the values in the newly
created file. This can allow us to
understand what is going on.
We can open the new registry file to learn the path for our
registry. We can then type regedit command on the CLI to open the registry
database in our computer. By comparing the file with the values in our registry,
we can see that the DeviceInterfaceGUID on our registry is no longer matching
what our device is reporting. This make sense, so we need to update our GUID
value with the one provided by the output of the mldb usbreg command.
Conclusion
After updating our registry settings and reconnecting our
device via the USB port, we should be able to run the mldb devices command again and see our device listed on the output.
If we restart the Magic Leap Remote app and press the Start Device button, we
should see that our device connects and it is ready for us to deploy our apps
via the Unity editor or the MLDB CLI.
I hope this provides some insight on how to address the No
Device is Connected error when using the Magic Leap Remote app.
Thanks for reading