This “gaming controller” never became a professional esports peripheral. Instead, a maker transformed a baby toy controller into a wireless IoT input device using a Wemos D1 Mini and MQTT. Its buttons can control a PyGame demo, a WLED LED sculpture, Sonos speakers, and potentially a home-automation system.
The result is a useful maker project: retain the toy’s friendly enclosure and physical controls, replace its limited electronics with an ESP8266-based Wi‐Fi board, and let other applications decide what each button does.
As an Amazon Associate I earn from qualifying purchases.
From baby toy to networked controller
The starting point was a child-oriented game controller, not an Xbox, PlayStation, Nintendo, USB, or Bluetooth gamepad. Its appeal as a hacking target was largely physical. The enclosure was easy to open and reassemble, used relatively little glue, had decent connectors, and exposed useful test points on its circuit board.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallThe modification kept the original shell and buttons but added a new wireless control layer. The toy’s existing three-AAA battery arrangement remained the power source, while a small microcontroller read the button circuitry and sent events across Wi‐Fi.
#1 Best Overall
- Compatible with Windows and Android.
- 1000Hz Polling Rate (for 2.4G and wired connection)
- Hall Effect joysticks and Hall triggers. Wear-resistant metal joystick rings.
- Extra R4/L4 bumpers. Custom button mapping without using software. Turbo function.
- Refined bumpers and D-pad. Light but tactile.
The project was documented by its author on April 12, 2023, and covered by Hackaday on November 1, 2023. The “big leagues” in the headline is therefore a pun: the toy graduated from making simple toy sounds or inputs to controlling networked software and hardware.
The hardware inside
The principal replacement board was a classic Wemos D1 Mini based on the ESP8266. WEMOS documents this board as a 3.3-volt development board with 11 digital I/O pins, one analog input, 4 MB of flash, and a footprint of approximately 34.2 × 25.6 mm.
That small size made it practical to fit inside the toy after internal supports were modified. The board was connected with soldered wires to the toy’s button circuitry, then physically secured inside the enclosure with hot glue. Once the case was closed, firmware could be updated wirelessly rather than requiring another teardown.
The exact board matters. Current WEMOS documentation includes multiple D1 mini variants, including ESP32-family products. A modern replacement may not have the same pinout, voltage behavior, dimensions, or software compatibility as the ESP8266 board used here.
Why the first circuit plan failed
The original design plan called for an ESP8266 paired with a PCF8575 I/O expander. The expander would have provided additional inputs over I2C, apparently making it easier to monitor the toy’s buttons.
That approach ran into an important embedded-systems problem: the toy’s buttons pulled their signals toward Vcc, while the PCF8575 input arrangement also involved pull-ups. In the intended circuit, the expander could not reliably distinguish a pressed button from an unpressed one.
Rank #2
- MODERNIZED DESIGN — Experience the modernized design of the XBOX Wireless Controller with sculpted surfaces and updated geometry that enhances comfort and control during long gaming sessions.
- PRECISION PERFORMANCE — Stay on target with a hybrid D-pad and textured grips on triggers, bumpers, and back case for improved accuracy and handling.
- SHARE BUTTON: Seamlessly capture and share content such as screenshots, recordings, and more with the new Share button.
- VERSATILE CONNECTIVITY — Connect via USB-C for plug-and-play on console and PC, or quickly pair and switch between supported devices with XBOX Wireless and Bluetooth support.
- BUILT-IN AUDIO SUPPORT — Plug in compatible headsets using the 3.5mm audio jack for direct voice chat and immersive in-game sound.
The workaround was to connect the buttons directly to the D1 Mini. Seven GPIO pins were used, while two other pins were avoided because their pull-up behavior was needed for reliable booting. The eighth button was monitored through the board’s analog input.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →This is a valuable lesson beyond this particular toy. A microcontroller’s advertised pin count is not the same as its number of safe, suitable inputs. Before selecting a GPIO, a builder must consider:
- whether the signal is pulled high or low;
- whether the pin supports the required input mode;
- whether the pin has a bootstrapping function;
- whether the signal stays within the board’s 3.3-volt limits; and
- whether an unpressed button leaves the input floating.
Hackaday’s summary describes the project more simply as a choice of the D1 Mini instead of an originally planned ESP32. The author’s own notes give the more precise development history: the design was centered on an ESP8266, and the direct-GPIO solution emerged after the PCF8575 approach proved electrically unsuitable.
How the wireless architecture works
Toy buttons
↓
Wemos D1 Mini / ESP8266
↓ Wi‐Fi
MQTT broker
↓
Subscriber applications
├── PyGame demo
├── WLED LED sculpture
└── Sonos control server
The D1 Mini does not need to understand every device that the controller might operate. It reads button states and publishes messages using MQTT, a lightweight publish/subscribe protocol commonly used in IoT systems.
One program can subscribe to the button messages and move a character in PyGame. Another can translate them into commands for a WLED installation. A Python server using the SoCo library can interpret the same controls as play, pause, volume, or track commands for Sonos.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →This separation is the project’s strongest design idea. The controller publishes input; subscribers decide what the input means. Adding another use does not necessarily require changing the controller firmware.
Rank #3
- Multi-Platform PC Gaming Controller: Working with Switch, PC, Android, and iOS devices via Bluetooth, wired, and wireless dongle connections.
- Hall Effect Joysticks: Delivering enhanced recentering performance for smoother control and superior anti-drift capability. Plus, with anti-friction rings.
- 2-Way Trigger Lock: With trigger stops, gamers can toggle between short and long pull positions. Additionally, gamers can activate hair trigger mode by pressing M+LT/RT (triggers must be in the long pull position).
- 1000Hz Polling Rate: This ensures that your inputs are registered almost instantaneously, minimizing lag and maximizing your performance during competitive play.
- Mechanical Circular D-pad: Designed for quick reactions and accuracy in every direction, this D-pad elevates your gaming experience with superior responsiveness.
OTA updates and network configuration
The firmware uses ArduinoOTA for over-the-air updates. That is particularly useful after the electronics have been sealed back into the toy: firmware changes can be sent over the network without opening the case.
WiFiManager provides a way to change network settings without hard-coding a permanent Wi‐Fi configuration into the device or requiring a fresh physical connection every time the network changes. The author’s code is available in the axlan/toy_controller repository.
Readers should treat the repository as a starting point rather than a universal firmware package. A different toy will likely require changes to GPIO assignments, button polarity, debounce handling, MQTT topics, Wi‐Fi settings, and the receiving application.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
What the finished controller can do
PyGame
A simple PyGame program demonstrates that MQTT button events can become game input. This does not make the device a universal PC gamepad: ordinary games expecting USB HID, XInput, DirectInput, or another standard interface will not automatically recognize it.
WLED
The project’s stated current use was a WLED-controlled LED sculpture. The toy’s buttons provide a tactile way to change lighting behavior without adding a conventional wall switch or touchscreen.
Sonos
A Python Sonos control server demonstrates the same message path in a media application. The controls can be mapped to speaker actions by software running elsewhere on the network.
Rank #4
- RGB Cool Lightning Bolt & Long Battery Life: Switch controller with lightening bolt style and 9-color LED looks really cool; 4 light modes: solid lights, breathing lights, RGB strobe led light and led off; Fully charged: 3-4 hours, Runtime: 10-15 hours
- Widly Compatible & One-key Pairing/Wake Up: The switch pro controller is compatible with Switch/Lite/OLED/PC Windows 7/8/10 (only wrok for pc under wired connection); 2 pairing ways; Support one key to wake up your switch console
- Programmable Button & 3 Speeds Turbo: Switch controllers has simplify complex skill operations with M1/M2 key; Support single and multiple mapping; 3 adjustable burst: 5 shots/s, 12 shots/s and 20 shots/s; Programming and Turbo will maximize game play
- Sensitive Motion Control & 4-Level Nice Vibration: 6-axis gyro sensor help you react quickly, enhance experience in sports games; Buttons and joysticks are responsive, no lag; Dual vibration motors with 4-level feedback: Strong, Medium, Weak and None
- Great Gift For All People: This cool switch controller will be great gifts for women, men, girl, boy, family and friends; Packing list: 1 X Wireless switch controller, 1 X Type-C cable, 1 X Detailed user manual, 1 X Cool gift box
Home automation
MQTT also makes the controller a possible remote for scenes, lights, media, and other automation. Home Assistant’s MQTT integration supports broker configuration, discovery, authentication, and related connection settings. A local Mosquitto broker is a common deployment option.
Free tools Windows power users keep installed
One-click scans. No signup required.
Can you reproduce it?
Yes, but this is a reverse-engineering project, not a guaranteed drop-in conversion. You will need:
- a toy with accessible button wiring and enough internal space;
- a compatible ESP8266 development board;
- a computer and USB cable for initial firmware installation;
- a soldering iron, fine wire, solder, and insulation;
- a multimeter, and optionally a logic analyzer;
- a Wi‐Fi network and MQTT broker; and
- a program that subscribes to the controller’s messages.
A sensible build sequence
- Document the original hardware. Photograph the board, connectors, battery wiring, and button contacts before removing anything.
- Trace the buttons. Use a multimeter to determine whether each press connects a signal to Vcc, ground, or another part of the original circuit.
- Measure before connecting. Confirm the toy’s signal voltages and check that they are safe for 3.3-volt ESP8266 inputs.
- Choose pins carefully. Avoid ESP8266 boot-sensitive pins and account for the actual usable GPIO count rather than the headline number.
- Test outside the enclosure. Verify each button, its polarity, and debounce behavior before cutting supports or applying glue.
- Install the firmware. Configure Wi‐Fi, MQTT broker details, topics, and the button map for your network.
- Test the message path. Confirm that a press reaches the broker and that a subscriber interprets the correct button.
- Mount and reassemble. Insulate solder joints, protect wires from pinching, and ensure the battery compartment remains mechanically sound.
Common failure points
Electrical problems: Incorrect voltage levels can damage the D1 Mini. Reversed button polarity can make every input appear permanently pressed. Floating inputs can create phantom presses, and mechanical contact bounce can generate several messages from one press. Battery voltage also changes as three AAA cells discharge, so the power path should be checked under load.
Boot problems: A button or external pull-up connected to the wrong ESP8266 pin can prevent startup. This is why the project did not simply use every available GPIO.
Network problems: Invalid Wi‐Fi credentials, an unreachable broker, mismatched MQTT topics, and poor reconnect handling can all make a functional controller appear broken. A subscriber may also crash while the controller continues publishing normally.
OTA problems: Wireless updates are convenient but create dependence on the network. Keep a recovery path for USB reflashing before sealing the enclosure, and avoid making an inaccessible OTA configuration the only way to repair the device.
Best Value
- Platform Compatibility: This PC controller is designed for Windows PC, Steam, Switch, Android, and iOS. Xbox-style asymmetric stick layout for PC gamers. Three modes cover all your devices. Please check your device compatibility before purchase
- Three Connection Modes: 2.4G wireless, Bluetooth, wired USB-C. PC gets native XInput/DirectInput. Switch pairs via Bluetooth, no adapter. This gaming PC controller switches devices seamlessly. Stable wireless minimizes random disconnects during gaming
- Hall Effect Precision: Hall effect joysticks and triggers eliminate stick drift. This gaming controller for PC delivers smooth, responsive input with no dead zones. Built for FPS, racing, and action games. Long-term precision for competitive PC gaming
- Back Buttons & Battery: Two programmable back buttons map combos and shortcuts. Textured grips with dual vibration. 1000mAh battery delivers up to 20H playtime. RGB can be turned off. A solid PC controller for gaming with custom back buttons
- ABXY Layout Switch: Press B + Minus + Plus to swap between PC and Switch modes. Features: 1000Hz polling rate, RGB lighting, turbo. Note: designed without mic jack or gyro sensor
MQTT security matters
MQTT itself is not a security guarantee. A broker configured without authentication or exposed beyond a trusted local network could allow someone else to publish button events. If those events control lights, speakers, locks, garage doors, or other household systems, the consequences are more serious than a misbehaving toy.
For a modern reproduction:
- keep the broker local unless remote access is genuinely necessary;
- use unique credentials for the controller;
- use TLS when traffic crosses an untrusted network;
- do not publish Wi‐Fi passwords or broker credentials in a public repository;
- restrict which topics the device can publish; and
- limit what automation actions the buttons are permitted to trigger.
Do not assume the original prototype used TLS; the available project description does not establish that.
Alternatives for a new build
| Approach | Best for | Main trade-off |
|---|---|---|
| Direct GPIO | A small number of buttons | Requires careful pin and polarity selection |
| PCF8575 or another I/O expander | Many buttons | Electrical behavior and pull-ups must be compatible |
| ESP32 | Bluetooth, more processing headroom, or a new firmware design | Different dimensions, pinout, power behavior, and libraries |
| USB HID microcontroller | Direct computer keyboard or gamepad input | Less convenient for networked lights, speakers, and automation |
| Home Assistant plus MQTT | Scenes, lights, media, and household controls | Requires a server and careful automation security |
An ESP32 may be the better platform for a fresh design, but it is not an automatic replacement. The board must physically fit, its power requirements must suit the battery arrangement, and the firmware and wiring will need adaptation.
Recommended Free Tools
Safety and practicality
Although the electronics can be enclosed inside the original shell, the modified object should be treated as an adult maker project, not a safety-certified baby toy. Solder joints, loose wires, hot-glue fragments, sharp edges, altered battery access, and overheating can introduce hazards. Do not describe the finished controller as baby-safe or leave it with children without a proper safety assessment.
This project is worthwhile when the goal is learning, repurposing, or creating a distinctive physical interface for lights and media. If the goal is simply to play standard PC or console games, a normal compatible controller will be easier, faster, and more reliable.




