Amazon Luna streams console-class games to a Fire TV, a browser tab or a phone, and the gamepad in your hands is the part that decides whether the session feels good or fights you. The service is free to Prime members (Amazon calls the included library Luna Standard), and Amazon’s own Prime Video announcement says the Fire TV integration reached Canada, France, Italy and Spain on October 19, 2026, with eight more European countries planned for November. More living rooms get Luna every month, so more people hit the same question: which controller do I use, and how do I connect it?
The short answer is that the official Luna Controller is optional. Amazon documents Bluetooth gamepads from PlayStation, Xbox, Nintendo and Google, a keyboard and mouse on computers, and even a phone acting as a virtual pad. The long answer depends on your screen, because the supported list changes per device. A PlayStation 5 pad works on a Mac and a Chromebook but does not appear on Amazon’s Fire TV list. If you have not activated the service yet, start with the Luna free-tier setup and come back here once you can open the Luna app.
This tutorial walks through 13 steps in about 75 minutes, and less if you skip the optional Python pieces. You will pair a controller on Fire TV, smart TVs, Windows, Mac, Chromebook, iPhone, iPad and Android. Then you will build a small project called Luna Pad Check: a browser page that reads your pad through the Gamepad API, a Python logger that measures how often your controller reports input, and a lookup tool that tells you whether a given pad is on Amazon’s list for a given device. Every Luna-specific claim below comes from Amazon’s help pages, its game studio announcements or named press coverage, all checked on October 25, 2026.
Don't miss new tech stories on Google
Add Tech Insider once in the Google app and our stories appear in your news suggestions.
Amazon Luna Controller Basics: What You Actually Need
Start with the question most guides skip: do you need a Luna controller at all? Amazon says no. Its help pages describe the Luna Controller as one option next to compatible Bluetooth pads, a computer keyboard and mouse, and a phone that works as a virtual controller. If you already own a DualShock 4, an Xbox One pad or a Switch Pro Controller, you can play today without buying anything.
What the dedicated pad does give you is a different connection path. According to Amazon’s product listing, the Luna Wireless Controller joins your Wi-Fi network and talks straight to Luna’s servers (Amazon calls this Cloud Direct), then falls back to Bluetooth for devices that need it. Amazon’s October 2026 game studio post makes the same point from the software side, saying Luna uses direct-to-cloud controller communication to reduce latency. The idea is simple. Instead of your button press hopping from pad to TV to the cloud, the pad reports to the cloud itself, and your TV only shows the video.
That design has a real catch. Amazon lists the Luna Controller as wireless only on Fire TV, Fire tablets, iPhone, iPad and Android, so a USB cable will not turn it into a wired pad on those screens. The listing also shows a price of $69.99 for the standalone controller on October 25, 2026, a figure we treat as a reported retail price because it comes from a single product page and retailers change prices often.
Why does any of this matter for a free service? Because Luna’s audience is growing fast. Amazon told press that Luna’s user base grew fivefold in the year since its October 23, 2025 relaunch, as GamesBeat reported. Jeff Gattis, GM of Gaming at Amazon, framed the Prime bundle ambitiously when he told Polygon: “You could argue that we’re the largest paid gaming subscription in the world.” A bigger audience means more people plugging mismatched controllers into mismatched screens, and that is where setups fail.
Here is how the rest of the guide works. First you check what your device supports, then you pair, then you verify with a tester you build yourself. If you also compare Luna with other free tiers, the GeForce NOW and Xbox Cloud Gaming comparison shows how each service handles input and session limits.
Prerequisites and Versions to Check First
You need less than you might expect. A Prime membership, a screen from Amazon’s supported list, a network that holds at least 10 Mbps and a controller you already own will cover most readers. The table below pulls the requirements from Amazon’s help center and from the tools used in the project. Amazon’s support pages also reportedly require Fire OS 5 or later on Fire TV devices, so update an old stick before you start.
| Item | Requirement | Why it matters |
|---|---|---|
| Amazon account | Active Prime membership, in a Luna-supported country | Luna Standard is included with Prime at no extra Luna charge |
| Streaming device and browser | A current Fire TV, smart TV or browser (Safari, Chrome or Silk on phones) | Amazon sets minimum versions, covered in Step 7 |
| Network speed | 10 Mbps minimum, wired or 5 GHz Wi-Fi preferred | Amazon lists 10 Mbps as the floor for streaming |
| Data budget | Up to 10 GB per hour at 1080p | Amazon’s own estimate, relevant on metered plans |
| Test machine | Any PC, Mac or Chromebook with a current Chrome, Edge or Firefox | Runs Luna Pad Check |
| Python (optional) | Python 3 and the latest pygame from PyPI | Runs the input logger and compatibility tool |
| Cable (optional) | USB cable that carries data, not just power | Amazon’s wired pairing path needs a data-capable cable |
Two notes on that table. First, the 10 Mbps floor is a minimum, not a target. A busy 2.4 GHz network can drop below it during evening hours, which is why the next sections have you test the connection before you blame the pad. Second, the Python pieces are optional. Everything in the pairing steps works without them, and the browser tester needs no install at all.
If you stream on a capped plan, set up a counter before your first long session. Our tracker for cloud gaming data use tracks how much data your sessions use, which pairs well with Amazon’s 10 GB per hour ceiling.
Finally, confirm your pad’s charge level. A controller below about a quarter battery often drops out of Bluetooth mid-game, and you will spend ten minutes chasing a ghost bug in your Wi-Fi. Plug it in while you read the next section.
Which Controllers Work on Which Device
Amazon publishes a compatibility matrix on its help center, and it is the document to trust over any forum thread. The table below reproduces the one on Amazon’s controller compatibility page, which we read on October 25, 2026, grouped by screen. Read it before you shop for anything, because the same pad can be fully supported on one device and missing from the list on another.
| Device | Compatible controllers | Notes |
|---|---|---|
| Fire TV and Fire tablets | Luna Controller, PlayStation 4 DualShock 4, Xbox One, Google Stadia | Luna Controller is wireless only. No PS5 DualSense on the list |
| Samsung TV | Luna Controller, DualShock 4, PS5 DualSense, Xbox One, Stadia, Switch Pro | Switch Pro needs TV software from 2023 or newer |
| LG TV | Luna Controller, DualShock 4, Xbox One, Stadia | No DualSense or Switch Pro on the list |
| Comcast (Xumo Stream Box, Xfinity X1) | Luna Controller, Luna Phone Controller, supported Bluetooth pads | The Luna app may prompt you to add a controller |
| Mac | Luna Controller, DualShock 4, DualSense, Xbox One, Switch Pro, Stadia, keyboard and mouse | Third-party pads may need drivers |
| Windows | Luna Controller, DualShock 4, DualSense, Xbox One, Xbox 360, Switch Pro, Stadia, keyboard and mouse | Widest list of any device |
| Chromebook | Luna Controller, DualShock 4, DualSense, Xbox One, Switch Pro, Stadia, keyboard and mouse | Browser play, no app install |
| iPhone and iPad | Luna Controller (wireless only), DualShock 4, DualSense, Xbox One, Switch Pro, Stadia | No keyboard and mouse entry in Amazon’s list |
| Android phones and tablets | Luna Controller (wireless only), DualShock 4, DualSense, Xbox One, Switch Pro, Stadia | Phone-as-controller needs Chrome 86 or later |
Three patterns jump out. Windows has the longest list, so it is the easiest place to test an unfamiliar pad. Fire TV and LG are the strictest, and both skip the DualSense. And only computers accept a keyboard and mouse, so a Fire TV or a smart TV needs a pad or a phone.
Amazon adds two caveats that are easy to miss. Other controllers may work on Luna even when they are not listed, but not every feature will be available. And third-party pads may need extra drivers on a PC or Mac, in which case the maker’s support page is the place to look. If you are weighing a clip-on mobile pad for phone play, the Xbox Nano Controller and other mobile pads are worth a look, but check them against the Android and iPhone rows above first.
A practical shortcut: if you plan to use Luna on more than one screen, buy or borrow an Xbox One style controller. It appears on every row of Amazon’s table, from Fire TV to LG to Windows, which makes it the one pad you can carry between every supported screen without a second thought.
Steps 1 and 2: Confirm Luna Access and Test Your Network
Step 1: Confirm your Prime and Luna access (5 minutes)
Open the Luna app on your Fire TV, or visit Luna in a compatible browser, and sign in with the Amazon account that holds your Prime membership. On a Fire TV in a supported country, you can reportedly also reach Luna from the Games tab inside the Prime Video app. That integration began in the United States and United Kingdom in July 2026, according to Amazon’s rollout notes, and expanded to Canada, France, Italy and Spain on October 19, 2026.
Look for the Luna Standard library, which Amazon says has grown from more than 50 games at the October 2025 relaunch to more than 80 by October 2026. If you see a prompt to subscribe to a paid tier, that is Luna Premium, the separate paid plan. You do not need it to follow this guide.
A good first test title is STAR WARS: Galactic Racer. It launched on Luna on the same day as other platforms, and its single-player modes are free to Prime members, as Wccftech covered. A racing game punishes sloppy analog sticks and delayed triggers, so it shows pad problems quickly.
Step 2: Test your network before you test your pad (5 minutes)
Run a speed test from the device you will play on, not from your laptop in another room. Aim for well above Amazon’s 10 Mbps floor, and make a note of the result. Wi-Fi on 5 GHz at close range beats 2.4 GHz almost every time. If your Fire TV Stick sits behind the TV, move the router or add a wired adapter where the model allows it.
Then measure consistency, not just speed. A connection that averages 80 Mbps but spikes to 200 ms every few seconds will make any controller feel broken. Our lag test script measures latency across a whole session, which exposes the spikes that a single speed number hides.
# quick sanity check from a laptop on the same Wi-Fi
ping -c 20 1.1.1.1 # macOS / Linux
ping -n 20 1.1.1.1 # Windows
Look at the packet loss line first. Anything above zero percent on a quiet home network is a sign of Wi-Fi trouble, and you should fix that before moving on. Once the network looks stable, move to pairing.
Steps 3 and 4: Pair a Controller With Fire TV and Smart TVs
Step 3: Pair on Fire TV (5 minutes)
On Fire TV, Amazon lists the Luna Controller, the PlayStation 4 DualShock 4, the Xbox One controller and the Google Stadia controller. Pick one of those four. Put your controller in pairing mode first. On a DualShock 4, hold the PS and Share buttons together until the light bar flashes. On an Xbox One pad, hold the pairing button on the top edge until the Xbox logo flashes quickly.
Next, open Fire TV Settings and look for the controllers and Bluetooth devices section, then choose to add a new game controller. Menu names shift between Fire OS releases, so trust the section that mentions game controllers rather than a fixed path. Select your pad when it appears.
For the Luna Controller, use the Luna app itself. The app prompts you to add a controller when it opens, and the pad pairs over Bluetooth or a data-capable USB cable instead of your Wi-Fi network. Keep the controller close to the Fire TV during the first setup.
Launch a game and press a few buttons. If the on-screen action responds, you are done with Fire TV. If you are still deciding which streaming box to buy for Luna, the Shield TV Pro, Google TV and Fire TV comparison lays out the price and performance gap.
Step 4: Pair on Samsung, LG and Comcast devices (5 minutes)
Smart TVs follow the same logic, with a different list. Samsung TVs accept the Luna Controller, DualShock 4, DualSense, Xbox One, Stadia and Switch Pro pads, but Amazon says the Switch Pro Controller only works on TV software from 2023 or newer. LG TVs accept the Luna Controller, DualShock 4, Xbox One and Stadia. Use the TV’s own Bluetooth settings to pair the pad, then open the Luna app.
On Comcast devices such as the Xumo Stream Box and Xfinity X1 TV Box, search for the Luna app in the Apps row or ask the voice remote for Luna. Amazon’s support page says to select the app and add a controller if prompted. These boxes also accept the Luna Phone Controller, which helps if you do not own a gamepad.
Smart-TV platforms add their own game launchers, and they differ in how they hand input to Luna. For a side-by-side look, see the Samsung Gaming Hub, LG Gaming Portal and Fire TV breakdown. One warning applies across brands. If the TV keeps jumping to its own home screen when you press the center button on a Bluetooth pad, update the TV software before you do anything else.
Steps 5 and 6: Connect on Windows, Mac and Chromebook
Step 5: Pair over Bluetooth (6 minutes)
Computers get the widest controller list, including Xbox 360 pads on Windows. Put the pad in pairing mode, then open your system’s Bluetooth settings. On Windows, go to Settings, then Bluetooth and devices, then Add device. On a Mac, open System Settings and choose Bluetooth. On a Chromebook, open the quick settings panel and select Bluetooth.
| Controller | How to enter pairing mode | What to look for |
|---|---|---|
| PlayStation 5 DualSense | Hold PS and Create together | Light bar flashes rapidly |
| PlayStation 4 DualShock 4 | Hold PS and Share together | Light bar flashes rapidly |
| Xbox One controller | Hold the pairing button on the top edge | Xbox logo flashes quickly |
| Nintendo Switch Pro Controller | Hold the sync button on the top edge | Player lights sweep back and forth |
| Google Stadia controller | Follow the maker’s current instructions | Amazon lists it, so check the maker’s current instructions before you rely on it |
Select the pad when it appears in the device list. The operating system should report it as connected within a few seconds. Do not open Luna yet. Test the pad in the OS first, because a pad the OS cannot see is invisible to Luna as well.
On Windows, close any app that grabs controllers, such as Steam in Big Picture mode, before you launch Luna. Steam Input can remap or claim a pad, and the browser then sees a different layout from the one you expect. This is the most common reason a pad works in Steam but behaves strangely in Luna.
Step 6: Use a data cable and launch Luna in the browser (4 minutes)
Amazon’s official path has two options: Bluetooth, or a USB cable that carries data. If Bluetooth acts up, plug the pad in. A charging-only cable will power the pad and lights but never present it as an input device, so keep a known data cable around for troubleshooting.
With the pad connected, open Luna in a compatible browser, choose a game and press a button. For Chromebook specifics, the Chromebook cloud gaming guide goes deeper. If the page loads but the pad does nothing, the browser may not have registered it yet. Press a button once more, because browsers hide a gamepad until it sends its first input.
Keyboard and mouse also work on these computers, and Amazon states this directly for Windows, Mac and Chromebook. That makes a quick keyboard test a good way to separate a pad problem from a Luna problem. If the keyboard plays fine and the pad does not, the cause sits between the pad and the browser.
Steps 7 and 8: Set Up iPhone, iPad and Android
Step 7: Pair a Bluetooth pad to your phone or tablet (5 minutes)
Phones accept the Luna Controller (wireless only), DualShock 4, DualSense, Xbox One, Switch Pro and Stadia pads, per Amazon’s table. Pairing works through the operating system. On iPhone and iPad, open Settings, then Bluetooth. On Android, open Settings, then Connected devices, then Pair new device. Put the pad in pairing mode and select it.
Browser support has a floor. According to Amazon’s GameNight support page, the phone controller web page works in Safari on iOS or iPadOS 15 or later, Chrome 86 or later on Android 10 or later and Amazon Silk 86 or later on newer Fire tablets. If your phone sits below those versions, update the system or switch to a newer device before you spend an hour debugging Bluetooth.
Mobile play has one hardware wrinkle. Most phones put the screen in your hands and the pad on the desk, so you need a stand or a clip. A clip-on bracket that holds the phone above a standard pad costs little, and it keeps your wrists in a natural position for longer sessions.
Step 8: Use your phone as a virtual controller (4 minutes)
No pad at all? Amazon lets a phone act as a controller. According to Amazon’s current instructions, you install the Luna Controller app, sign in, choose the option to play with a virtual controller and connect it to the game. The phone can drive Luna on Fire TV, PC, Mac and some Samsung and LG smart TVs, and it also powers GameNight, Amazon’s collection of party games for the living room.
Amazon’s Fire TV listing reportedly mentions more than 25 party games that use phones as controllers. That is a handy backup if guests arrive and you have one pad for six people. If those guests want to try other free services afterwards, the four-service free cloud gaming setup is a good next stop. Those same browser floors from the previous step apply to the phone controller page.
Phone controllers have trade-offs. Touch screens give no tactile feedback, so they suit party games and menus better than racing or fighting titles. Keep the phone’s screen awake, put it in Do Not Disturb so calls do not interrupt a round and keep it on the same Wi-Fi network as the TV for the most predictable connection.
Step 9: Build the Luna Pad Check Browser Tester
Now the project, which takes about 8 minutes for this step. Official menus tell you whether pairing worked, but not whether the pad is healthy. A small web page can show every button, every stick axis and the controller’s mapping in real time. It uses the browser Gamepad API, the same layer a browser-based game like Luna depends on, so a pad that passes here is very likely to behave in Luna too.
Create a folder called luna-pad-check and save the following as index.html. The page reads each connected pad every animation frame, lights up pressed buttons, draws stick positions with a small dead zone and prints a JSON report you can copy into a note.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Luna Pad Check</title>
<style>
body { font: 16px system-ui, sans-serif; margin: 1.5rem; background: #10131a; color: #e8ecf1; }
.pad { border: 1px solid #2b3445; border-radius: 8px; padding: 1rem; margin-bottom: 1rem; }
.btns span { display: inline-block; min-width: 2.4rem; margin: 2px; padding: 4px 6px;
border-radius: 4px; background: #1c2331; text-align: center; }
.btns span.on { background: #2ea043; color: #fff; }
.axis { display: flex; align-items: center; gap: .5rem; margin: .25rem 0; }
.axis progress { width: 220px; }
button { padding: .5rem 1rem; border: 0; border-radius: 6px; background: #3b82f6; color: #fff; cursor: pointer; }
pre { background: #0b0e14; padding: .75rem; border-radius: 6px; overflow: auto; }
</style>
</head>
<body>
<h1>Luna Pad Check</h1>
<p id="hint">Press any button on your controller to wake it up.</p>
<div id="pads"></div>
<button id="copy">Copy report</button>
<pre id="report"></pre>
<script>
const DEADZONE = 0.12;
const root = document.getElementById("pads");
const cards = new Map();
let frames = 0;
const started = performance.now();
function el(tag, cls, text) {
const n = document.createElement(tag);
if (cls) n.className = cls;
if (text !== undefined) n.textContent = text;
return n;
}
function buildCard(gp) {
const card = el("div", "pad");
const meta = el("p");
const btns = el("div", "btns");
gp.buttons.forEach((_, i) => btns.appendChild(el("span", "", "B" + i)));
const axes = el("div");
gp.axes.forEach((_, i) => {
const row = el("div", "axis");
const bar = document.createElement("progress");
bar.max = 2;
bar.value = 1;
row.append(el("code", "", "A" + i), bar, el("code", "val", "0.00"));
axes.appendChild(row);
});
card.append(el("h2", "", gp.id), meta, btns, axes);
root.appendChild(card);
return { card, meta, btns, axes };
}
function tick() {
frames++;
const seen = new Set();
for (const gp of navigator.getGamepads()) {
if (!gp) continue;
seen.add(gp.index);
let c = cards.get(gp.index);
if (!c) { c = buildCard(gp); cards.set(gp.index, c); }
c.meta.textContent = "index " + gp.index + " | mapping: " + (gp.mapping || "none") +
" | buttons: " + gp.buttons.length + " | axes: " + gp.axes.length;
gp.buttons.forEach((b, i) => c.btns.children[i].classList.toggle("on", b.pressed || b.value > 0.5));
gp.axes.forEach((v, i) => {
const row = c.axes.children[i];
const drift = Math.abs(v) >= 0.02 && Math.abs(v) < DEADZONE;
row.querySelector("progress").value = v + 1;
row.querySelector(".val").textContent = (Math.abs(v) < DEADZONE ? 0 : v).toFixed(2) + (drift ? " (drift)" : "");
});
}
for (const [idx, c] of cards) {
if (!seen.has(idx)) { c.card.remove(); cards.delete(idx); }
}
requestAnimationFrame(tick);
}
function report() {
const pads = [...navigator.getGamepads()].filter(Boolean).map(g => ({
id: g.id, mapping: g.mapping, buttons: g.buttons.length, axes: g.axes.length,
rumble: Boolean(g.vibrationActuator)
}));
return JSON.stringify({
checkedAt: new Date().toISOString(),
userAgent: navigator.userAgent,
framesPerSecond: Math.round(frames / ((performance.now() - started) / 1000)),
pads
}, null, 2);
}
window.addEventListener("gamepadconnected", e => {
document.getElementById("hint").textContent = "Connected: " + e.gamepad.id;
});
setInterval(() => { document.getElementById("report").textContent = report(); }, 500);
document.getElementById("copy").addEventListener("click", () => navigator.clipboard.writeText(report()));
requestAnimationFrame(tick);
</script>
</body>
</html>
Serve it from your own machine, because clipboard access needs a secure context and localhost counts as one. Open a terminal in the folder and run a tiny web server.
cd luna-pad-check
python3 -m http.server 8000
# then open http://localhost:8000 in Chrome, Edge or Firefox
Press a button and your pad appears as a card. A well-behaved modern pad usually reports the “standard” mapping, which means the browser already knows which button is which. If the mapping line says none, the browser sees a raw device, and games that expect a standard layout may mislabel buttons.
{
"checkedAt": "2026-10-25T21:04:11.482Z",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...",
"framesPerSecond": 60,
"pads": [
{
"id": "Xbox Wireless Controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",
"mapping": "standard",
"buttons": 17,
"axes": 4,
"rumble": true
}
]
}
That block is a sample from a Windows test, shown so you know what a healthy report looks like. Your id string, button count and frame rate will differ with the hardware and the display. What matters is that the pad appears, the mapping reads standard, the sticks sit near zero at rest and every button lights up when pressed.
Step 10: Log Input Cadence With a Python Script
This step takes about 8 minutes. The browser tester proves your pad connects. It does not tell you how smoothly the pad reports. A controller that sends sticks updates in uneven bursts will feel mushy even on a perfect network. A short Python script can log how often the operating system receives stick movement and show you the gaps between events.
Install pygame with pip, then save the script below as luna_pad_log.py. It opens the first connected controller, collects axis events for 20 seconds while you wiggle both sticks, and prints a summary.
pip install pygame
import os
import sys
import time
os.environ.setdefault("SDL_VIDEODRIVER", "dummy")
os.environ.setdefault("SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS", "1")
import pygame
def percentile(values, pct):
ordered = sorted(values)
return ordered[min(len(ordered) - 1, int(len(ordered) * pct))]
def main(seconds=20.0):
pygame.init()
pygame.joystick.init()
if pygame.joystick.get_count() == 0:
sys.exit("No controller found. Pair it in your OS first.")
pad = pygame.joystick.Joystick(0)
print(f"Controller: {pad.get_name()}")
print(f"Buttons: {pad.get_numbuttons()} Axes: {pad.get_numaxes()} Hats: {pad.get_numhats()}")
print(f"Move both sticks in circles for {seconds:.0f} seconds...")
stamps = []
presses = 0
end = time.perf_counter() + seconds
while time.perf_counter() < end:
for event in pygame.event.get():
if event.type == pygame.JOYAXISMOTION:
stamps.append(time.perf_counter())
elif event.type == pygame.JOYBUTTONDOWN:
presses += 1
if len(stamps) < 20:
sys.exit("Too few stick events. Move the sticks during the test.")
gaps = [(b - a) * 1000 for a, b in zip(stamps, stamps[1:])]
print(f"Axis events: {len(stamps)} Button presses: {presses}")
print(f"Median gap: {percentile(gaps, 0.50):.1f} ms")
print(f"95th percentile gap: {percentile(gaps, 0.95):.1f} ms")
print(f"Worst gap: {max(gaps):.1f} ms")
if __name__ == "__main__":
main()
Run it with python3 luna_pad_log.py and move the sticks smoothly. The loop spins without sleeping so it can catch every event, which uses one CPU core for the 20 seconds and then stops. A sample result looks like this.
Controller: Xbox 360 Controller
Buttons: 11 Axes: 6 Hats: 1
Move both sticks in circles for 20 seconds...
Axis events: 4120 Button presses: 3
Median gap: 4.1 ms
95th percentile gap: 9.8 ms
Worst gap: 38.5 ms
Treat those numbers as an illustration, not a benchmark. Wired pads usually report in steady small gaps, while Bluetooth pads show a wider spread and sometimes a long gap when radio interference hits. Run the test twice, once with the pad on Bluetooth and once on a data cable if the pad supports it. A big gap between the two results points to the radio link.
One honest caveat. This script measures what the operating system sees from the pad, not Luna’s end-to-end delay. Cloud latency also includes video encoding, the network path and your screen. The script rules out one culprit, the controller link, which saves you hours when the real problem is elsewhere.
Step 11: Build a Compatibility Lookup Tool
This step takes about 4 minutes. Amazon’s matrix is a table, and tables are slow to scan when you own five pads and three screens. The last piece of the project turns it into a command-line lookup. You feed it a device and a controller, and it answers whether the pairing is on Amazon’s list as of October 25, 2026.
Save the first file as compat.json. It mirrors Amazon’s published table, so update it whenever Amazon changes its help page.
{
"asOf": "2026-10-25",
"devices": {
"fire-tv": ["Luna Controller", "DualShock 4", "Xbox One", "Stadia"],
"samsung-tv": ["Luna Controller", "DualShock 4", "DualSense", "Xbox One", "Stadia", "Switch Pro"],
"lg-tv": ["Luna Controller", "DualShock 4", "Xbox One", "Stadia"],
"mac": ["Luna Controller", "DualShock 4", "DualSense", "Xbox One", "Switch Pro", "Stadia", "Keyboard and mouse"],
"windows": ["Luna Controller", "DualShock 4", "DualSense", "Xbox One", "Xbox 360", "Switch Pro", "Stadia", "Keyboard and mouse"],
"chromebook": ["Luna Controller", "DualShock 4", "DualSense", "Xbox One", "Switch Pro", "Stadia", "Keyboard and mouse"],
"ios": ["Luna Controller", "DualShock 4", "DualSense", "Xbox One", "Switch Pro", "Stadia"],
"android": ["Luna Controller", "DualShock 4", "DualSense", "Xbox One", "Switch Pro", "Stadia"]
},
"notes": {
"fire-tv|Luna Controller": "Wireless only.",
"ios|Luna Controller": "Wireless only.",
"android|Luna Controller": "Wireless only.",
"samsung-tv|Switch Pro": "Needs TV software from 2023 or newer."
}
}
Then save the lookup script as luna_compat.py. It accepts friendly aliases, so you can type ds5 instead of the full pad name.
import json
import sys
from pathlib import Path
ALIASES = {
"luna": "Luna Controller",
"ds4": "DualShock 4", "dualshock": "DualShock 4", "ps4": "DualShock 4",
"ds5": "DualSense", "dualsense": "DualSense", "ps5": "DualSense",
"xbox": "Xbox One", "xboxone": "Xbox One", "xbox360": "Xbox 360",
"switchpro": "Switch Pro", "pro": "Switch Pro",
"stadia": "Stadia",
"kbm": "Keyboard and mouse", "keyboard": "Keyboard and mouse",
}
def check(device, controller):
data = json.loads(Path(__file__).with_name("compat.json").read_text())
if device not in data["devices"]:
return f"Unknown device '{device}'. Try: {', '.join(data['devices'])}"
name = ALIASES.get(controller.lower().replace(" ", ""), controller)
supported = data["devices"][device]
note = data["notes"].get(f"{device}|{name}", "")
if name in supported:
return f"YES {name} is on Amazon's list for {device}. {note}".strip()
return f"NO {name} is not on Amazon's list for {device}. Supported: {', '.join(supported)}"
if __name__ == "__main__":
if len(sys.argv) != 3:
sys.exit("Usage: python3 luna_compat.py DEVICE CONTROLLER")
print(check(sys.argv[1], sys.argv[2]))
$ python3 luna_compat.py fire-tv ds5
NO DualSense is not on Amazon's list for fire-tv. Supported: Luna Controller, DualShock 4, Xbox One, Stadia
$ python3 luna_compat.py samsung-tv switchpro
YES Switch Pro is on Amazon's list for samsung-tv. Needs TV software from 2023 or newer.
$ python3 luna_compat.py windows xbox360
YES Xbox 360 is on Amazon's list for windows.
The NO answer deserves a careful reading. Amazon says other controllers may work on Luna even when they are not listed, with some features missing. A NO means unsupported, not impossible. Use it to decide where to spend money, and keep your expectations modest if you test an unlisted pad.
Steps 12 and 13: Launch a Game and Run the Final Check
Step 12: Play a test session (8 minutes)
With the tester passing, launch a real game. Choose something that uses both sticks, both triggers and the face buttons within a few minutes. Racing titles, action games and shooters are good candidates. Spend two or three minutes in menus first, since menu navigation reveals stuck buttons and double inputs faster than gameplay.
Watch for three things. First, whether each button does what the on-screen prompt says. Second, whether the sticks drift when you let go. Third, whether the game ever behaves as if the pad vanished, freezing for a second and then recovering. That last symptom usually means a Bluetooth drop, not a Luna fault.
If you play on a TV, sit in your normal spot while testing. Bluetooth range through furniture and walls is shorter than the specification suggests, and a pad that works from a desk can stutter from a sofa across the room.
Step 13: Record what worked (3 minutes)
Finish by writing down the working combinations. Copy the Luna Pad Check report, note the device, the pad, the connection type and the speed test result and save them in one text file. When a firmware update or a TV update breaks something six months from now, you will have a record of exactly what worked.
# luna-notes.txt
Date: 2026-10-25
Screen: Fire TV Stick 4K, Wi-Fi 5 GHz, 120 Mbps
Pad: Xbox One controller, Bluetooth
Pad Check: mapping standard, 17 buttons, 4 axes
Logger: median gap 4.1 ms, p95 9.8 ms
Result: all buttons OK, no stick drift
Once the notes are saved, you are done. You now have a working pad on every screen you own, a browser tester you can reuse for any new controller and a lookup tool that keeps you from buying a pad that Amazon does not list for your screen.
Looking for more free ways to play? The same pad also works with other services. Browse our full range of gaming guides for setups on other free cloud platforms.
Common Pitfalls With Amazon Luna Controllers
These six mistakes cause most failed setups. Each one is cheap to avoid once you know it.
- Buying a pad before checking the table. A PlayStation 5 DualSense works on Samsung TVs, Mac, Windows, Chromebook and phones, but it is absent from Amazon’s Fire TV and LG TV lists. Check the matrix for your own screen first.
- Using a charge-only cable. Many cables carry power and no data. The pad lights up, the computer never sees it. Test with a cable you know transfers files.
- Leaving the pad paired to another device. Many Bluetooth pads reconnect to the last host automatically. If your pad keeps jumping to a console or a laptop in the next room, turn that device’s Bluetooth off before pairing.
- Letting Steam grab the controller. On Windows, Steam Input can remap a pad before the browser sees it. Quit Steam while you test Luna.
- Assuming you must buy the Luna Controller. Amazon states plainly that it is optional. Spend the money only if you want the Cloud Direct Wi-Fi path or a pad that works on every supported screen.
- Testing at the end of a weak Wi-Fi link. A pad that drops input in the far bedroom may be fine in the living room. Test where you plan to play, and fix the network before you blame the hardware.
A seventh mistake is worth a mention: skipping updates. Browsers, TV software and Fire OS all change how they treat Bluetooth, and a problem that baffled you last week can disappear after a routine update. Check the Chrome, Safari or Silk version against the floors in the prerequisites table, and install pending TV updates before you dive into settings. For a wider look at free services that run with minimal setup, the Antstream Arcade setup guide covers another free cloud library worth trying once your pad is set.
Troubleshooting: 11 Fixes for Luna Controller Problems
When something fails, work from the bottom of the stack upward. Confirm the pad connects to the operating system, then the browser, then Luna. The table maps common symptoms to causes and fixes.
| Symptom | Likely cause | Fix |
|---|---|---|
| Pad never shows in the OS Bluetooth list | Pad not in pairing mode, or still paired elsewhere | Hold the pairing combo until the light flashes. Turn Bluetooth off on other nearby devices |
| Pad connects but Luna ignores it | Browser has not registered the pad yet | Press any button once, reload the page and run Luna Pad Check |
| PS5 pad missing from Fire TV or LG TV | Not on Amazon’s list for those screens | Use a DualShock 4 or Xbox One pad, or the phone controller |
| Switch Pro does nothing on a Samsung TV | TV software older than 2023 | Update the TV software, or use a different pad |
| Wired pad does not respond | Charge-only USB cable | Swap in a cable that transfers data |
| Sticks drift at rest | Worn sticks or a dead zone too small | Check the drift label in Luna Pad Check. Recalibrate in the OS, or replace the pad |
| Buttons are swapped or mislabeled | Mapping reads none instead of standard | Test in another browser, remove third-party drivers, quit Steam on Windows |
| Pad drops mid-game | Bluetooth interference or low battery | Charge the pad, move closer, move USB 3 hubs away from the dongle or router |
| Phone controller will not load | Browser below Amazon’s minimum | Update Safari, Chrome or Silk to a current release |
| Luna Controller will not join Wi-Fi | Wrong network or weak signal | Use the same network as your Fire TV, stay close to the router, retry setup |
| Luna missing inside Prime Video on Fire TV | Country not yet supported | Check Amazon’s supported countries. Eight more European markets are planned for November 2026 |
If a fix in the table does not help, reset the pad. Most Bluetooth controllers have a small reset button or a documented hold combination, and a full reset clears stale pairing records that cause odd behavior. Forget the pad on every device it has touched, reset it, and pair it fresh on the screen you care about.
When the pad passes both testers and Luna still feels wrong, look at the network path. Run the lag test from the earlier step during the same hour you normally play. Congested evenings produce the lag that people blame on controllers, and a changed Wi-Fi channel or a wired link often fixes it.
Advanced Tips for Luna Players
Run two pads for local multiplayer
Pairing two controllers works the same way as pairing one, but order matters. Pair them one at a time, powering off the first before you put the second into pairing mode, so the operating system does not confuse them. Use Luna Pad Check to confirm both appear as separate cards with different index numbers. If one pad reports index 0 and the other index 1, you are set.
Pick a low-latency path first
If you have a choice, prefer the connection with the fewest wireless hops. A wired Ethernet link to the streaming device, plus a pad that reports over its own Wi-Fi link to the cloud, avoids the Bluetooth bottleneck altogether. On a computer, a data cable between pad and machine takes Bluetooth out of the picture.
Keep a spare for guests
A cheap second pad that sits in the Amazon list for every screen is a good investment. Xbox One style controllers fit that role best. For lighter nights, remember that GameNight and the phone controller let guests join with devices they already carry.
A final upgrade: copy Luna Pad Check into a free static host, or keep it on a USB stick, and use it as a quick diagnostic any time a friend says their controller is broken. It takes ten seconds to tell whether the pad, the browser or the game is at fault.
FAQ: Amazon Luna Controller Questions
Do I need the Amazon Luna Controller to play Luna?
No. Amazon’s help pages list compatible Bluetooth controllers, keyboard and mouse on computers and a phone used as a virtual controller. The Luna Controller is an option, not a requirement.
Is Amazon Luna really free with Prime?
Amazon says Prime members get Luna Standard at no additional Luna charge, and its October 2026 announcements describe the library as included with Prime. A separate paid tier called Luna Premium also exists, and you do not need it to follow this guide.
Can I use a PS5 DualSense controller with Amazon Luna?
Yes on Samsung TVs, Mac, Windows, Chromebook, iPhone, iPad and Android, per Amazon’s table. It is not on Amazon’s list for Fire TV or LG TVs, so use a DualShock 4 or Xbox One pad there.
Can my phone act as a controller?
Yes. Amazon documents a Luna Controller app that turns a phone into a virtual controller for Luna on Fire TV, PC, Mac and some Samsung and LG smart TVs. The phone needs a current Safari, Chrome or Silk browser, and Amazon’s support page names minimum versions.
Why does my controller work in Windows but not in Luna?
Usually the browser has not registered the pad yet, or another app such as Steam is claiming it. Press a button once, quit Steam, reload the page and run the Luna Pad Check page from this guide to see what the browser reports.
Does the Luna Controller work over a USB cable?
Amazon lists the Luna Controller as wireless only on Fire TV, Fire tablets, iPhone, iPad and Android. Other compatible pads can use a USB cable that carries data.
How much internet speed do I need for Luna?
Amazon lists 10 Mbps as the minimum for streaming, and says cloud gaming can use up to 10 GB per hour at 1080p. Aim well above the minimum, and use 5 GHz Wi-Fi or a wired link for steadier play.





