Control with Joystick Tool

The asMagic Joystick module transforms your iPhone or iPad into a game controller. Whether you are navigating a simulation environment or remotely controlling a real-world.

1. Interface & Coordinate System

The Joystick interface features dual virtual joysticks (Left and Right) and four functional buttons (A, B, C, and D).

  • Neutral Position: (0.0, 0.0)

  • Horizontal Axis (X): Ranges from -1.0 (Left) to 1.0 (Right).

  • Vertical Axis (Y): Ranges from -1.0 (Bottom) to 1.0 (Top).

  • Buttons: Real-time binary states for A, B, C, and D.


2. Data Transmission Modes

You can switch between two primary data transmission modes via the Mode Menu in the top-left corner:

Mode A: Via ZeroMQ (ZMQ)

Ideal for sending data to a PC, Linux workstation, or robot over a local area network (Wi-Fi) or Ethernet.

1

Select ZMQ from the menu.

2

The device's IP Address will be displayed in the center of the screen.

3

Use our Python API to receive the data stream on your target machine.

Documentation & API Examples: Receiving Streamed Dataarrow-up-right

circle-info

Note: ZeroMQ broadcasting is automatically enabled the moment you enter the Joystick page, regardless of the selected transmission mode.

Mode B: Via Wi-Fi Aware

Designed for low latency air-to-air communication between two iOS devices without needing a Wi-Fi router.

  • Sender: The device capturing and sending the control input.

  • Receiver: The device receiving the data.

Initial Pairing (First-time use only)

1

Open the Joystick module on two iOS devices.

2

Tap the Add Device button on both.

3

The Receiver device will list the name of the nearby Sender device. Tap it.

4

A 6-digit code will appear on the Sender’s screen. Enter this code on the Receiver.

5

Once paired, close the pairing window.

Establishing Connection

1

On the Sender device, tap Advertise.

2

On the Receiver device, tap Discover & Connect.

3

Wait a few seconds for the connection to establish. The status will update in the device list.

circle-info

Tip: Once connected, the Sender can tap Stop Advertising to save battery without interrupting the current data stream.


3. Using a PS5 DualSense Controller

You can pair a physical PS5 controller to your iPhone to use as the primary input source.

Pairing the Controller

1

Hold both two buttons simultaneously until the blue light bar flashes.

2

Go to iOS Settings > Bluetooth and select DualSense Wireless Controller.

3

Return to asMagic. A "Connected" icon and battery percentage will appear.

4

The on-screen virtual joysticks will now mirror your physical movements.

Using case

  • PS5 Controller -> iOS Device A (Sender) -> iOS Device B (Receiver) -> PC/Robot:

    Device A sends the physical controller data wirelessly to Device B via Wi-Fi Aware, which then relays it to a robot via Ethernet/Python API.


5. Settings & Customization

Inside the Joystick Settings, you can:

  • View IP Address: Check your current network identity.

  • Hide UI: Hide virtual joysticks and buttons on the Sender screen for a cleaner look.

  • LED Customization: Change the light bar color of your connected PS5 controller.


6. Troubleshooting

Issue: One device shows "Paired," but the other's list is empty.

This usually happens if the App was reinstalled on one device, clearing its local pairing registry.

  • Solution A: Swap roles. Set the "empty" device as the Sender and the other as Receiver, then trigger a new pairing request.

  • Solution B (Recommended): Go to iOS Settings > Privacy & Security > Paired Devices > Reset WLAN Identifier on both devices. Restart the app and pair again.

Issue: Stuck on "Connecting..."

  • Solution: Force quit the asMagic app from the multitasking switcher and restart the connection process.


Last updated

Was this helpful?