A community modder posted a build log this week for a "Steam Controller Puck" — a small hockey-puck-sized wireless dongle that emulates Xbox, Nintendo Switch, and PlayStation controllers, letting a single pad pair with almost any modern console via HID passthrough. Per the maker's write-up on r/HandHeldPCs, the build uses an ESP32-S3 and an 8Bitdo firmware fork, and it works with off-the-shelf pads like the GameSir G7 SE or a DualSense on the input side, with the puck presenting whatever protocol the target console expects.
Why this matters right now
Cross-console gamers have historically had two options: buy a separate controller for each system, or buy a proprietary adapter like the 8BitDo Retro Wireless Adapter that only handles one target protocol at a time. The Steam Controller Puck build collapses that into a single device — you configure the target on the puck and the same physical controller talks to whichever system you point it at.
The timing lines up with a wave of "one controller for everything" demand driven by the Steam Deck crowd, portable emulation, and multi-console living-room setups. It's also downstream of Sony's decision this month to sunset physical PS5 disc production by 2028, which is pushing a lot of console buyers to reconsider whether they need dedicated hardware per platform.
What the build actually does
Per the maker's post, the puck presents itself over Bluetooth LE as one of four device profiles:
- Xbox Wireless Controller — recognized natively by Xbox Series X/S, Windows, and Linux.
- Nintendo Switch Pro Controller — accepted by Switch/Switch 2 with rumble and gyro passthrough.
- PlayStation DualSense — presents the full DualSense HID descriptor for PS5.
- Generic HID gamepad — falls back to XInput/DirectInput for anything else, including Sega Genesis Mini via a USB-OTG adapter.
The input side accepts any standard controller over USB-C or Bluetooth. The maker tested with the GameSir G7 SE wired Xbox pad, a DualSense, and — of most interest to retro users — the 8Bitdo Retro Wireless Adapter chained to legacy pads.
Key takeaways
- One controller, many consoles. The puck is a small BLE bridge that re-presents the input controller as whatever target the console expects.
- Firmware is a community 8Bitdo fork running on ESP32-S3 — total BOM cost is roughly $18-25.
- Rumble and gyro pass through cleanly on Switch and PS5 targets; PS5 adaptive triggers currently do not.
- Latency is measurable but small — 2-4 ms added over a direct pairing, well below competitive-play threshold for casual games.
- This is not a Steam Controller replacement — it's a protocol shim. There's no trackpad or grip pad on the puck itself.
The hardware side: what's inside
The maker's schematic uses:
- ESP32-S3-DevKitC-1 with USB-OTG support for wired controller passthrough.
- A small 500mAh LiPo cell (5-6 hour session life).
- A 3D-printed puck shell (STL published on Printables).
- A single tactile button for target-profile cycling.
- LED indicator strip for current profile.
The maker's build log includes photos of the puck between a DualSense and a Switch, and demonstrates hot-swapping between an Xbox Series X and a Switch OLED with no repairing — the puck just changes what it advertises. This is meaningfully different from a mode switch on the controller itself; the paired console never sees the controller identity change.
Firmware: the 8Bitdo fork explained
Per the maker's linked repo, the firmware is a fork of 8Bitdo's public reference implementation with three additions:
- Multi-profile switching — the button cycles Xbox → Switch → PS5 → HID.
- Input translation layer — maps physical inputs from the source controller into whatever the target profile expects (e.g. remapping DualSense touchpad to Xbox share button).
- Rumble/gyro passthrough — extracts feedback signals from the target and routes them back to the source controller via HID reports.
The base 8Bitdo firmware is well-tested for individual profile targets; the multi-profile switching is the community add. Users report the Switch profile is rock-solid, the Xbox profile works in every game they tested, and the PS5 profile is stable but does not yet pass PS5 adaptive-trigger commands back to a DualSense source.
Compatibility matrix (per maker's tests)
| Target system | Recognized as | Rumble | Gyro | Notes |
|---|---|---|---|---|
| Xbox Series X/S | Xbox Wireless Controller | Yes | N/A | Works with all tested games |
| Xbox One | Xbox Wireless Controller | Yes | N/A | Same as Series X path |
| PS5 | DualSense | Yes | Yes | Adaptive triggers not passed through |
| Nintendo Switch OLED | Switch Pro Controller | Yes | Yes | Amiibo NFC not supported |
| Nintendo Switch 2 | Switch Pro Controller | Yes | Yes | Presented as Switch 1 Pro pad |
| Windows PC | Xbox Wireless Controller (XInput) | Yes | N/A | Native, no driver install |
| Linux PC | Generic HID gamepad | Yes | Yes | evdev, xpad both work |
| Steam Deck | Xbox Wireless Controller | Yes | Yes | Full Steam Input support |
| Emulator (RetroArch) | Configurable | Yes | Optional | Recognized in Windows/Linux |
Latency test data (from the maker's post)
Latency measured with a standard 240 Hz camera + photodiode setup, controller-to-screen input on Xbox Series X (Rocket League menu):
| Configuration | Median input latency |
|---|---|
| GameSir G7 SE direct BLE | 41 ms |
| GameSir G7 SE via puck (Xbox profile) | 44 ms |
| DualSense direct BLE (PS5) | 43 ms |
| DualSense via puck (Xbox profile, on XSX) | 46 ms |
| DualSense via puck (Switch profile, on Switch OLED) | 47 ms |
The 2-4 ms added latency is at the noise floor for casual gaming; competitive players will still want a wired direct connection, but for couch play, it's imperceptible.
Why the community reaction has been strong
Three practical reasons:
- Living-room simplification. Households that own multiple consoles cut their controller count in half.
- Accessibility. A player with a mobility-friendly controller (like a Logitech G Adaptive layout) can use it on every console rather than only their PC.
- Retro-collector value. Legacy pads via 8Bitdo adapters can now drive modern consoles through the puck, opening up favorite classic controllers for use on Switch/PS5 without proprietary licensing.
The catches and open questions
- PS5 adaptive triggers don't pass through. The DualSense's biggest differentiator is silent.
- No Amiibo support on the Switch profile because the puck can't emulate NFC.
- Battery life sits at 5-6 hours — a full-day gaming session needs a mid-session charge.
- BLE audio not supported on either side; you route audio through the console/PC normally.
- The firmware is community-maintained — no vendor warranty and no promise of continued support.
What the puck does NOT replace
- A real Steam Controller. The puck is a bridge, not an input device. It has no trackpad, no gyro of its own, and no back paddles.
- A dedicated capture-card + streaming setup. The puck is input-only.
- Console-authoritative anticheat systems. Some competitive PS5 titles fingerprint the DualSense over BLE and may reject an emulated pad. Recreational play is fine; ranked ladders are hit-or-miss.
Buying / building — what you actually need
If you want to try this today without soldering:
- Input controller: anything with USB-C or Bluetooth. GameSir G7 SE is cheap and works well; DualSense if you already own it; or bring a legacy pad via the 8Bitdo Retro Wireless Adapter.
- Puck hardware: ESP32-S3-DevKitC-1 board (~$16), LiPo battery, 3D-printed shell, or wait for the community-fabbed version (some Etsy sellers already list pre-flashed pucks around $50).
- Target console(s): Xbox Series X/S, Switch OLED, or PS5 — profile selection is on the puck.
For retro couch setups pairing with modern displays, the Steam Deck dock plus the puck plus a Logitech F710 gives you a wireless legacy-feeling pad on any HDMI display without a full console-per-room setup.
Common pitfalls
- Assuming PS5 games accept the emulated DualSense. Anticheat-heavy titles may reject.
- Buying a $16 ESP32-S3 clone that doesn't have USB-OTG. The DevKitC-1 is specifically required.
- Expecting rumble to pass through in every game. Depends on how the game reports rumble intents.
- Trying to use it as a Bluetooth audio bridge. The puck is HID-only.
- Not soldering the battery leads correctly — the maker warns of shorts if the JST connector is reversed.
When NOT to use it
If you play primarily competitive shooters on PS5 and rely on adaptive triggers, or if you need Amiibo support on Switch, the puck falls short. If you own only one console and are happy with its stock controller, the puck adds complexity for no benefit. For everyone else with a multi-system household, it's a legitimate one-device-fits-all solution.
Compared to commercial multi-console adapters
Two commercial products cover adjacent ground:
- 8BitDo Wireless USB Adapter 2 (~$25) — bridges legacy pads (SNES, Sega Saturn, N64) to modern consoles, but does one target at a time; you need multiple adapters for a multi-console setup.
- XIM Matrix / MC65 (~$140) — designed primarily for keyboard/mouse on console, does controller-emulation but at a much higher price point and with a subscription-flavored software stack.
Neither collapses the "one controller, all consoles" problem the way the DIY puck does. The 8BitDo Retro Wireless Adapter linked earlier is the closest commercial analog, and it's console-target-specific — you buy the Xbox version to bridge to Xbox, a separate PS5 version for PS5, etc.
Where a commercial product wins: warranty, firmware update polish, no soldering. Where the DIY puck wins: multi-target profile switching, ~$25 total BOM, community-maintained firmware that gets bug fixes at community speed rather than vendor cadence.
What we expect to see in 30-60 days
The community reaction has been strong enough that pre-built pucks are already appearing on Etsy and small maker shops. Expect:
- $40-60 pre-flashed puck kits from small vendors (already appearing).
- Third-party 3D-print files with better finish quality than the maker's original STL.
- Extended firmware — reports on r/HandHeldPCs mention someone working on Amiibo NFC via an external module, and a fork adding rate-limited macros.
- Vendor pushback — expect Sony in particular to release a firmware update at some point that fingerprints emulated DualSense controllers more aggressively for competitive titles.
Bottom line
The Steam Controller Puck build is a legitimate community achievement — a $20-$50 BOM device that solves the "different controller per console" problem for casual and retro-heavy setups. It's not a competitive-play controller and it doesn't fully replicate DualSense adaptive triggers, but for the household with a Switch, a PS5, an Xbox, and a PC in the same living room, it's a genuinely useful shim. Expect a wave of Etsy/small-shop pre-built versions within the next 60-90 days.
For non-solderers: the "buy vs build" honest recommendation
If your idea of a fun weekend is not "flash an ESP32 and troubleshoot BLE pairing," the pre-built puck route is legitimate. Watch these Etsy signals when shopping:
- The listing includes firmware version — good sign. Serious makers version their firmware.
- A schematic or GitHub link is included — proves the seller isn't just reselling clones.
- Battery capacity is disclosed in mAh — small vendors under-batter their pucks to hit price points; anything under 400mAh will be a two-hour battery.
- Warranty period is disclosed — even 30 days signals confidence.
Prices in the $40-60 range are the current honest market. Anything under $30 is likely cutting corners on the battery or the ESP32 board itself; anything over $80 is priced beyond what the component cost supports.
If you want to solder, the maker's original build log walks you through it in about a 4-6 hour session including 3D printing.
Related guides
- GameSir G7 SE vs DualSense: Best PC Controller (2026)
- Best PC/Console Game Controller (2026)
- Raspberry Pi Retro Handheld Build (2026)
Citations and sources
- Espressif — ESP32-S3-DevKitC-1 official docs
- 8BitDo — Firmware and updater tools
- Sony — DualSense wireless controller product page
This piece is editorial synthesis based on publicly available information. No independent first-party benchmarking is reported.
