In brief — 2026-07-20 · The DIY Steam Controller puck is a community-built, palm-sized gamepad inspired by Valve's discontinued Steam Controller. Its headline feature is a trio of hardware mode-switch buttons that make the pad present itself as an Xbox 360 (XInput) controller, a Nintendo Switch Pro controller, or a Sony DualShock/DualSense-style HID device — so a single unit can drive Xbox, Switch and PlayStation emulators without software remapping. The design was published on Hackaday and, as of 2026, exists as an open hardware reference rather than a shipping product.
What happened — the project, its emulation modes, and what hardware it runs on
The Hackaday writeup, aggregated on the front page in mid-July 2026, documents a small hobbyist gamepad the builder calls a "puck": a disc-shaped shell roughly the diameter of a hockey puck, with two thumbsticks, a directional pad, four face buttons, four shoulder buttons and — the interesting bit — three dedicated mode-switch buttons on the underside. Pressing each mode button forces the pad's microcontroller to enumerate over USB (and Bluetooth Low Energy, in the wireless revision) as a different HID descriptor: Xbox 360-style XInput, Nintendo Switch Pro, or a generic Sony-compatible DirectInput profile. Per the project notes, the firmware is written in CircuitPython on top of an RP2040-class board, with a small OLED on the top face confirming the active mode.
Why does the descriptor matter? Because emulators — RetroArch, Dolphin, Cemu, Ryujinx, RPCS3, standalone PCSX2 — read the raw HID identifiers to decide which default button map to load. A pad that identifies as an Xbox 360 controller gets treated one way. A pad that identifies as a Switch Pro gets treated another. Steam Input can normalise most of this at the operating-system layer, but not every emulator front-end runs through Steam, and not every user wants a permanent Steam Big Picture session in the way. Hardware mode switching short-circuits the entire remapping conversation.
The build materials, per the linked bill of materials, are modest: an RP2040-based dev board (~$8), a pair of Hall-effect thumbsticks (~$14 the pair, chosen to avoid the drift plaguing potentiometer sticks), tactile switches for the D-pad and face buttons (~$3), a 500 mAh single-cell lithium-polymer pack (~$5), a USB-C charging IC (~$2), a small 0.96" I2C OLED (~$4) and 3D-printed shells that the author distributes as STEP files. Total parts cost before printing sits in the $45–$60 range as of 2026, which is broadly comparable to the price of a mid-tier commercial pad — but of course you also spend the evenings assembling and flashing it.
Why it matters — the gap it (partially) fills for PC players
Valve discontinued the original Steam Controller in November 2019, and although Steam Input still ships with every Steam client, the hardware that inspired it — the twin trackpads, the gyro, the back grip buttons — is only available second-hand. Retail prices for a boxed original Steam Controller as of 2026 hover around $150–$220, up from a $50 clearance in 2019. That has left a vocal minority of PC players — the ones who used the trackpads for mouse-driven ports, or who liked the compact form factor for couch use — with no equivalent shipping option.
Off-the-shelf pads have closed most of the gap. The 8BitDo Pro 2 Bluetooth Controller, for example, exposes a physical mode slider on the back that toggles between Switch, macOS, Android and X-input modes without any firmware juggling — very similar in spirit to what the DIY puck is doing, minus the openness. The GameSir G7 SE Wired Controller for Xbox takes a different route: it commits to a single mode (wired XInput) but adds Hall-effect sticks, swappable faceplates and licensed Xbox compatibility, which is the smoothest path if you only care about Xbox and PC targets. And the PlayStation DualSense Wireless Controller is the reference input device for PS5 and works acceptably on PC via DS4Windows or Steam Input, though its adaptive triggers and haptics only light up in native PlayStation titles and a handful of PC games that explicitly implement them.
Where the DIY puck earns its column-inches is repairability and openness. You can print a replacement shell, swap a stick module, reflash firmware, and — critically — change what the pad claims to be without waiting on a vendor to ship a driver update. That is the actual news, more than the emulation modes themselves. The emulation modes are a downstream benefit of the openness.
The source
The reference build was published on Hackaday in July 2026 and traces back to a GitHub repository maintained by the original author. The Hackaday post is the canonical writeup; if you plan to build one, treat that page and the linked repo as the single source of truth. Manufacturer references for the two commercial pads that anchor this article live at 8BitDo's product page for the Pro 2 and Sony's DualSense product page.
Parts list — what a comparable build actually costs
Here is a realistic bill of materials for someone who wants to reproduce the DIY puck as of 2026. Prices are US-retail small-quantity from AliExpress, Digi-Key and Amazon and will drift; treat them as order-of-magnitude rather than fixed.
| Component | Typical part | Approx cost (USD, 2026) | Weight (g) | Notes |
|---|---|---|---|---|
| Microcontroller | Raspberry Pi Pico 2 (RP2350) | $6 | 3 | USB HID composite, BLE via add-on |
| Thumbsticks (pair) | Gulikit Hall-effect module | $14 | 10 | Immune to drift; needs adapter PCB |
| D-pad + face buttons | 12 mm tactile switches ×8 | $3 | 4 | Any Cherry-style silicone dome will also work |
| Shoulder / trigger switches | Omron D2F-01F ×4 | $6 | 6 | Or 6 mm tactile switches for a lower-profile build |
| Battery | 500 mAh 1S LiPo | $5 | 12 | ~6-8 hours mixed use per project notes |
| Charging + protection | TP4056 + DW01 combo | $2 | 2 | USB-C variant, not micro-B |
| OLED display | 0.96" SSD1306 I2C | $4 | 4 | Displays active mode; optional |
| Shell | 3D-printed PETG, two halves | $3 (filament) | 45 | STEP files in the project repo |
| Wiring, screws, standoffs | M2 hardware kit | $3 | 5 | — |
| Total | — | ~$46 | ~91 g | Add printer time (~4 hours on a Bambu A1) |
For comparison, the 8BitDo Pro 2 Bluetooth Controller retails around $50 assembled, weighs 228 g, and ships in a box today. The GameSir G7 SE Wired Controller for Xbox is in the same street-price band and weighs about 232 g. The PlayStation DualSense Wireless Controller sits closer to $70 and weighs 280 g. In other words, the DIY build is cheaper on parts, dramatically lighter, and vastly more time-consuming — you are trading roughly 15–20 hours of assembly, printing and firmware work against $20 of retail markup.
If you're carrying any of these around alongside a Switch 2 dock or a Steam Deck, the ivoler Carrying Storage Case for Nintendo Switch 2 has enough spare volume in its accessory pocket to fit a puck-sized controller plus one of the commercial pads listed above, which is convenient on planes.
Common pitfalls when building the puck
Community reports on the Hackaday comment thread and the associated repo issues list a consistent set of failure modes. If you attempt this build, plan for these up front:
- HID descriptor collisions. The three mode switches change how the pad enumerates, but Windows caches HID device descriptors per USB VID/PID pair. Flipping modes rapidly on the same cable often confuses
HidGuardianand older DS4Windows builds until you unplug for 10 seconds. The fix is a per-mode VID/PID pair in firmware, which is not obvious from the reference build. - Hall-effect stick calibration. Hall sticks read a magnetic field rather than a resistive divider, so their neutral position drifts by a few counts as the PCB warms up. Skip the "auto-center on boot" logic in the reference firmware and instead centre on a long press of the OLED button — otherwise you get a phantom stick input if you happen to nudge a stick while plugging in.
- BLE pairing on Switch. The Switch is famously fussy about Bluetooth HID devices. The puck's Switch Pro descriptor works, but pairing must be initiated from the console side, not the pad side; the reference firmware's pair button does nothing on that platform. Community reports indicate the workaround is to hold a face-button combo for five seconds to trigger the console-facing pairing broadcast.
- Battery undervolt with cheap LiPos. The DW01 protection IC in the reference design cuts off at 2.4 V, which is below the recommended 3.0 V minimum for consumer LiPo chemistry. Swap in a protection board with a 3.0 V cutoff or expect the battery to swell after 30–50 cycles.
- Trigger deadzone in RetroArch. RetroArch reads analogue triggers as an axis, not a button, and the puck's default 0 % deadzone will cause endless "select" spam in some cores. Set the input threshold to 0.15 in
retroarch.cfgper-core.
When NOT to build this
Skip this project if any of the following apply. Building the puck is a rewarding weekend if you already own a 3D printer, a soldering iron and a hot-air rework station, but it is an expensive detour otherwise.
- You don't own a 3D printer. Outsourced prints (JLCPCB, Craftcloud) will run $40–$60 for the two-part shell in PETG, wiping out the cost advantage over a commercial pad.
- You need it working this weekend for a specific tournament. Firmware flashing, calibration and troubleshooting typically eats one to two full evenings even for experienced makers; commercial pads are ready in five minutes.
- Your primary use case is competitive online play. A homemade pad with community firmware is not going to pass anti-cheat heuristics in every title, and some titles (notably a handful of tactical shooters) flag unusual HID descriptors. A stock XInput pad is the safe choice — the GameSir G7 SE is a good pick here.
- You only care about PlayStation titles. The DualSense's haptics and adaptive triggers are the point of buying it, and no DIY project reproduces them today. Just buy the DualSense.
- You are new to soldering surface-mount components. The RP2040 dev board itself is through-hole friendly, but the Hall-effect stick adapters, the charging IC and the OLED all use 0805-and-smaller passives. This is not a first solder project.
Scenario 1 — retro couch gaming across three emulators
Suppose you have a living-room mini-PC running Batocera or RetroBat, and your library spans SNES, Nintendo 64, GameCube, PS1, PS2 and Switch. Each of those emulators wants a slightly different pad profile. In practice, the friction is not the mapping itself — RetroPie and EmulationStation both support per-emulator controller profiles, and Steam Input can normalise anything on top — the friction is the state of the profile. If your kid grabs the same controller in the morning, opens Ryujinx directly rather than through the front-end, and the pad presents as an XInput device instead of a Switch Pro, half the buttons will be wrong until an adult fixes it.
The puck's hardware mode buttons remove that ambiguity. You physically press "Switch" before launching Ryujinx and the emulator sees exactly what it expects. The 8BitDo Pro 2 covers this scenario nearly as well with its back-slider — the only meaningful difference is that the puck adds a dedicated PlayStation-style mode, which the Pro 2 does not. If your emulation library skews PS2/PS3, the puck is genuinely useful here. If it skews Xbox 360-era, the commercial pad wins on convenience.
Scenario 2 — travel setup with a Steam Deck and a Switch 2
Now imagine you're travelling with a Steam Deck OLED and a Nintendo Switch 2, and you want one extra pad for docked play on either device. The Deck is happiest with an XInput device; the Switch 2 wants a Switch Pro descriptor. Historically you either carried two pads or you carried an 8BitDo Pro 2 and flipped the mode slider between plane and hotel.
The puck slots in here — it is roughly 90 g versus 228 g for the Pro 2 or 280 g for a DualSense, so if you're weight-limited it earns its place. Where it stumbles is the case: none of the commercial protective cases are cut for a puck-shaped controller, so you end up wrapping it in a sock. Pairing it with the ivoler Carrying Storage Case for Nintendo Switch 2 works because the accessory pocket has enough loose volume, but you lose the moulded fit that keeps a joystick from being crushed in a full backpack. For travel, community reports suggest the honest recommendation is still an 8BitDo Pro 2 in the moulded pocket, with the puck as a fun secondary if you have the space.
Scenario 3 — accessible / one-handed use
The most compelling use case for a fully open hardware controller is accessibility. Commercial pads are a fixed shape; disabled players who need buttons remapped to different physical locations, sticks moved to accommodate limited grip strength, or triggers replaced with sip-and-puff inputs have historically had to rely on the Xbox Adaptive Controller — a $100 device that is still an off-the-shelf shape.
The DIY puck's STEP files are published under a permissive license, which means anyone with a printer can produce a mirrored shell for a left-handed builder, oversize the D-pad for players with reduced fine motor control, or reroute a trigger to a foot pedal. The firmware exposes each input as an addressable HID button so you can remap in software as well. This is not a scenario the commercial market serves well, and it is the strongest single argument for the project's existence. Per accessibility-focused community discussion, the puck's biggest limitation for this use case is the small battery — a wired-only variant would be more reliable and is a straightforward firmware fork.
If you'd rather just buy one
Not everyone wants to spend a Saturday flashing CircuitPython. The three commercial pads that most cleanly cover what the puck is trying to do — plus the case you'll want if you carry them around — are:
- 8BitDo Pro 2 Bluetooth Controller — hardware mode switch, Bluetooth + wired, extensive Steam Input support. Closest single-product analogue to the puck's headline feature.
- GameSir G7 SE Wired Controller for Xbox — Hall-effect sticks, wired XInput, licensed for Xbox. The right pick if latency and reliability matter more than protocol flexibility.
- PlayStation DualSense Wireless Controller — the reference DualSense pad; use it on PC for PlayStation ports and for any title with native DualSense support.
- ivoler Carrying Storage Case for Nintendo Switch 2 — hard-shell case with an accessory pocket that will hold any of the pads above alongside a docked or handheld Switch 2.
Prices on all four fluctuate; check current listings before ordering.
Bottom line
The DIY Steam Controller puck is a genuinely interesting hardware-openness story dressed up as a multi-console emulation gadget. Its real contribution is that you can rebuild, remap and repair every component — a rare thing in the gamepad market as of 2026 — and its emulation mode buttons are the visible expression of that openness. If you enjoy building hardware, want an ultralight secondary pad for travel, or need an accessible controller with a shape the mass market does not sell, it is worth the weekend. If you just want a good pad that works with Xbox, Switch and PlayStation emulators tonight, the 8BitDo Pro 2 with Steam Input covers roughly 90% of the same ground for the same money. Buy the puck for the process; buy the Pro 2 for the outcome.
Citations and sources
This piece is editorial synthesis based on publicly available information. No independent first-party benchmarking is reported.
