.. _rog_ally_x: ROG Ally X =================== The ROG Ally X is a powerful handheld Windows PC that can be used to control ToddlerBot remotely. We recommend this over Steam Deck because it is easier to set up and has better performance. Visual Studio Compiler ----------------------------- You need to download and install C++ Build Tools from `this website `_. Run the ``.exe`` file and select the following options: .. image:: ../_static/rog_ally_x_vs_compiler.png Access to the Joystick ---------------------- Modify the control mode of the joystick to "Gamepad" in the ROG Armoury Crate software. Addtional Packages ---------------------- Run the following command in the Windows Powershell to bypass the execution policy: .. code:: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser Install ``choco``, ``git``, and ``ffmpeg``: .. code:: Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) choco install git ffmpeg Dynamixel Latency Timer ----------------------------- When connecting the remote controller to the leader arms, you need to set the latency timer to 1 to increase comminucation speed with the Dynamixel motors, This was done through command line on Linux systems, but on Windows, you need to do it manually. In the device manager, find the COM port which dynamixel motors are connected to, go to properties, advanced, and change the latency timer value. NTP Server ----------------------------- For the accuracy of teleoperation and logging over network, we need to install NTP to sync time of Jetson to ROG Ally X. #. Go the device manager, find the COM port, go to properties, advanced, and change the latency timer value. #. Enable Windows NTP Server in the Registry: Open Registry Editor. Press :kbd:`Win` + :kbd:`R`, type regedit, and hit Enter. Navigate to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config Modify AnnounceFlags: Double-click AnnounceFlags. Change the value to 5 (to enable NTP server mode). Click OK. #. Enable NTP Server: Navigate to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer Double-click Enabled. Set its value to 1. Click OK. #. Configure Windows Time Service: Open Command Prompt as Administrator. Enable Windows Time Service: .. code:: sc config w32time start=auto net start w32time #. Force Windows to Act as an NTP Server: .. code:: w32tm /config /manualpeerlist:"time.windows.com" /syncfromflags:manual /update w32tm /config /reliable:YES w32tm /resync #. Check NTP Server Status: .. code:: net start w32time w32tm /query /status w32tm /query /configuration #. Test NTP Server from Jetson: .. code:: bash sudo ntpdate