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:

../_images/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:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Install choco, git, and ffmpeg:

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.

  1. Go the device manager, find the COM port, go to properties, advanced, and change the latency timer value.

  2. Enable Windows NTP Server in the Registry:

    Open Registry Editor.

    Press Win + R, type regedit, and hit Enter. Navigate to:

    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig Modify AnnounceFlags:

    Double-click AnnounceFlags. Change the value to 5 (to enable NTP server mode). Click OK.

  3. Enable NTP Server: Navigate to:

    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpServer Double-click Enabled. Set its value to 1. Click OK.

  4. Configure Windows Time Service:

    Open Command Prompt as Administrator.

    Enable Windows Time Service:

    sc config w32time start=auto
    net start w32time
    
  5. Force Windows to Act as an NTP Server:

    w32tm /config /manualpeerlist:"time.windows.com" /syncfromflags:manual /update
    w32tm /config /reliable:YES
    w32tm /resync
    
  6. Check NTP Server Status:

    net start w32time
    w32tm /query /status
    w32tm /query /configuration
    
  7. Test NTP Server from Jetson:

    sudo ntpdate <windows_ip_address>