The upgraded Magic Leap 2 controller offers the same functionality as the Magic Leap 1 controller, but it now includes an improved tracking system using two on-controller cameras. Below you can learn more about the controller buttons and sensors, touchpad gestures, and important changes from the Magic Leap 1 SDK.
Controller Diagram
1.a Ray Target |
1.d Touchpad Scroll (Swipe Up/Down) Slide (Swipe Left/Right) |
1.b Bumper Button Change Virtual Keyboard Layout (Single Press) |
1.e Menu Button App Menu for Developers (Single Press) |
1.c Trigger Select (Trigger Pull/Release) Press & Hold (Trigger Hold) Grab (Trigger Hold) |
1.f Home Button Toggle Home/Mini Home (Single Press) Re-Center Home (Single Press) Turn On/Wake Up Controller (Single Press) Turn Off Controller (Hold for 4 seconds) Controller Reset (Hold 10.5 seconds) Capture Shortcut (Home + Bumper) |
Touchpad Gestures
2.a Touchpad Scroll (Swipe Down/up) Slide (Swipe Left/Right) |
3.a Swipe Down 3.b Swipe Up 4.a Swipe Left 4.b Swipe Right |
Pairing and Updating Your Controller
Before pairing your controller to your device for the first time, make sure it is sufficiently charged. Pairing and updating your controller is simple - connect your controller to your device's compute pack via a USB-C cable. If the controller's firmware needs updating, you will see a notification pop-up on your device notifying you of the in-progress update. Do not unplug your controller during this process. You will be notified when the update completes.
Once your controller is up-to-date leave it plugged in until you receive a notification it has been successfully paired with your device.
Troubleshooting Controller Issues
Reconnect Controller When Bluetooth is Off
If you're unable to use your device due to bluetooth being disabled, and you haven't enabled hand tracking, you can reconnect your controller by plugging it directly into your Magic Leap 2's Compute Pack with the included USB-C cable.
Controller Unresponsive
If your controller is unresponsive - that is, not responding to inputs, no LED indicators are appearing, and not pairing with your device, try holding down the home button for 11 seconds. This will perform a hard reset on the controller. If issues persists after that, please contact our Customer Care team.
Controller Update Fails
In the event that your Controller fails to update and results in the Controller not connecting to the Compute Pack or failing to boot; a manual flash may be required. This guide includes instructions on how to manually flash the Controller.
Only perform a manual flash if the Controller fails to updated after connecting it to the Compute Pack.
Manual flashing is only supported on Windows and Linux.
Before you start
- Make sure the Controller's charge is above 40%
- If the recovery fails, you may need to try another cable.
- Download the Controller recovery files
Windows Flashing
- Make sure the Controller is NOT connected to your computer.
-
Download the Controller recovery files and extract the folder so it can be easily accessed. For example, the folder can be placed into the
MagicLeap/firmware/
directory. -
To extract the contents of the compressed file, you may need to enter a password. If prompted enter MagicLeap.
-
With the folder extracted, open command line and navigate to that directory:
cd Magicleap/firmware/control_4992-R2/
- Run the Controller recovery command:
erase_myriad.bat
-
- If the output from running
erase_myriad.bat
shows some output resembling "instance not found" repeatedly, execute the following two commands until you get nothing butOK:
s as output. If you get errors on the second command, run the first command until you get no errors, then the second one must have no errors on the first attempt, or you must start again:
- If the output from running
fcmd.bat mode 0101 & timeout /t 3 & fcmd.bat gpio 010300
fcmd.bat gpio 0003 & fcmd.bat edfu 01 & fcmd.bat edfu 040000000000040000
-
- After both commands have been run without any errors (subsequently, in-a-row), run the following, one more time:
erase_myriad.bat
Linux Flashing
Set Udev Rules
These steps only need to be completed once per machine. If you feel like your computer's Udev rules have already been updated, proceed to the next section.
- Run the following commands:
sudo chown root:root /etc/udev/rules.d/95-roshi.rules sudo chmod 644 /etc/udev/rules.d/95-roshi.rules sudo udevadm control --reload-rules
- Add yourself
plugdev
anddialout
groups, then log out and back in:
shell sudo usermod -a -G plugdev,dialout $USER
- Modem Manager - The Linux modem manger service will conflict with the totem flashing communication,
- You can either uninstall it by running:
sudo apt-get purge modemmanager
- Or run the following command after restarting your computer:
sudo stop modemmanager
Flashing
- Make sure the Controller is NOT connected to your computer.
-
Download the Controller recover files and extract the folder so it can be easily accessed. For example, the folder can be placed into the
MagicLeap/firmware/
directory. -
To extract the contents of the compressed file, you may need to enter a password. If prompted enter MagicLeap.
-
With the folder extracted, open command line and navigate to that directory:
cd Magicleap/firmware/control_4992-R2/
- Run the Controller recovery command:
./erase_myriad.sh
If the output from running erase_myriad.sh
shows some output resembling "instance not found" repeatedly, execute the following two commands until you get nothing but OK:
s as output. If you get errors on the second command, run the first command until you get no errors, then the second one must have no errors on the first attempt, or you must start again:
./fcmd.sh mode 0101 & timeout /t 3 & ./fcmd.sh gpio 010300
./fcmd.sh gpio 0003 & ./fcmd.sh edfu 01 & ./fcmd.sh edfu 040000000000040000