How to use your phone as a wireless controller for your PC


If you’ve ever picked up your phone, looked at your gaming PC across the room, and thought “there has to be a way to use this thing as a controller without buying another piece of plastic”… you’re right. There is. It’s free, it’s open source, and when set up right it feels exactly like a wired Xbox pad.

The trick is a pair of programs called Satellite (runs on your gaming PC) and Dish (runs on your phone). Together they exploit how scary-good modern Wi-Fi has gotten at tiny low-latency packets (much better than Bluetooth ever was at this job) and forward your phone’s inputs to your PC as a regular Xbox 360 virtual gamepad.

This is the five-minute guide.

What you’ll need

  • A gaming PC running Windows 10/11
  • A phone or tablet running Android 7.0+ (arm64 or x86_64)
  • Both devices on the same Wi-Fi network, ideally 5 GHz or 6 GHz

(Dish clients for Windows, macOS, Linux, and iOS, plus a Linux Satellite, are in active development for later releases. V1 today is Dish-on-Android plus Satellite-on-Windows.)

Step 1: Install Dish on your phone

Grab Dish for Android from Google Play, or as a signed APK from GitHub Releases.

Step 2: Install Satellite for Windows on your PC

Download the signed SatelliteSetup.exe from the Satellite GitHub releases and run it. The installer:

  • Drops Satellite into Program Files\Satellite
  • Sets it up to launch with Windows (optional)
  • Bundles ViGEmBus 1.22.0 (the kernel driver that lets Satellite spin up a virtual Xbox 360 controller) and installs it if you don’t already have it

When the installer is done, you’ll see a small dish icon in your system tray, and the local web UI is reachable at http://localhost:9877. That’s Satellite, parked there waiting for a controller to talk to it.

Step 3: Pair with a 4-digit PIN

Open Dish on your phone. It broadcasts a discovery packet on your Wi-Fi looking for any Satellite servers in earshot, and within a couple of seconds your gaming PC pops up by name. Tap it. Satellite responds by throwing a 4-digit PIN onto your PC, either as a system tray notification or in the local web UI at http://localhost:9877. The PIN lives for 5 minutes before it expires.

Type that PIN into Dish on your phone. Behind the scenes, both devices use the PIN to seed an X25519 key exchange over HTTPS, and the resulting 256-bit shared secret encrypts every subsequent packet. You don’t have to think about that. From your end, you type the number and tap “Pair.”

This is a one-time step. Dish remembers your gaming PC after that (or until you tell it to forget).

Step 4: Pick a layout

Dish for Android ships with a handful of built-in layouts: a classic Xbox-style overlay, a fight-stick layout, and a “minimal” layout for retro and 2D games. You can also tweak: long-press any button to drag it, resize it, or change its mapping.

Tip: if you have a real Bluetooth gamepad already paired to your phone (a DualSense, an 8BitDo, anything Android recognizes), Dish will use that instead. You don’t have to use the touch overlay.

Step 5: Press a button. Your game responds.

Done. Open any game on your PC that supports an Xbox controller (that’s basically all of them) and you’re playing.

Why this is better than Bluetooth

A few people ask why we didn’t just use Bluetooth. Three reasons:

  1. Latency. Bluetooth gamepad profiles add roughly 8 to 15 ms of polling latency above wired. Wi-Fi UDP is consistently 1 to 4 ms on a healthy 5 GHz LAN. That’s not subtle in a fast-paced game.
  2. Multiple controllers. Most PCs only handle 2 to 4 Bluetooth devices total before things start fighting. With Wi-Fi, four players in your living room is no different from one.
  3. Range and reliability. A Bluetooth radio competes with the Wi-Fi radio for airtime. Dish over Wi-Fi roams cleanly between access points and survives the kind of dropouts that would kick a Bluetooth pad off entirely.

Common questions

Do I need Sunshine and Moonlight? No. Dish and Satellite work as a standalone wireless gamepad. They also pair beautifully with Sunshine and Moonlight if you do want to stream the video to your TV. See the naming page for that whole story.

Will my game see Dish as a real Xbox controller? Yes. Satellite injects a virtual Xbox 360 pad through ViGEmBus on Windows. Games can’t tell it apart from one plugged in via USB.

Is this safe on a Wi-Fi I don’t fully trust? Yes. Every packet is sealed with ChaCha20-Poly1305 using a session key derived during pairing. Read the security page for the threat model.

Can I use multiple phones at once? Up to four, all paired to the same Satellite, each with its own virtual gamepad. Couch co-op is genuinely fun.

Where to next

If you got this far, you might also like:

If Dish made your setup better, donations keep this project going.

Gefällt dir, was du liest?

Dish und Satellite sind kostenlos und Open Source. Spenden sorgen dafür, dass es so bleibt.

Spenden Dish herunterladen