Custom ESPHome board brings a Wiimote shell back to life

Oct 22, 2026 Last reply: 11 hours ago 3 Replies
Jump to replies (3)

Squeezing a custom board into a Wiimote shell sounds like the hardest part of this build, and the maker seems to have handled it well. The board fits original shells and every third-party shell tested, including MotionPlus models, with no soldering involved. Shells come from overstock of aftermarket Wiimotes rather than new molding or donor remotes, and a board-only option exists for anyone who already has a spare shell.



Under the shell there is a lot going on: twelve buttons, four LEDs, a vibration motor, an accelerometer and a gyro, a speaker, a mic, an IR emitter and an IR receiver, plus USB-C and a rechargeable lipo. The board runs an ESPHome config, and an Arduino library and firmware exist alongside it. Both the config and the library are open source on GitHub, with board design files promised before units ship.



Home Assistant picks up everything the board offers. Each button can fire automations on press, on release or on a long press, and each has a held sensor. The LEDs show up as lights, the rumble can be triggered from Home Assistant, and tilt arrives as pitch and roll once those sensors are enabled. The board can deep sleep and wake when picked up, since the motion sensor handles the wake. TV control relies on the remote's own IR, with codes captured from the TV's remote using the receiver and replayed by the emitter, and the Arduino firmware adds Bluetooth pairing with most smart TVs. Bluetooth navigation comes across as snappier than IR.



One thing is still open: the remote only knows its tilt and cannot tell which light it is pointing at. The GitHub config also does not enable deep sleep yet and has no battery figure for it, though the maker reports more than a week of life with deep sleep so far, with testing still ongoing and full statistics planned.


Leaving the mic out of the default config and putting the speaker and IR behind a couple of extra lines looks like a sensible starting point to me. The core set of buttons, lights, rumble and tilt works the moment Home Assistant finds the device, and the extras sit one edit away. I would probably switch IR on straight away for TV use, but a quieter default seems like the right call.

How does the board make contact with the shell's original buttons and LEDs when no soldering is involved? Getting a single design to fit first-party shells, aftermarket ones and MotionPlus models alike is the detail I am most curious about here.

Since the rumble motor can already be triggered from Home Assistant, an automation could give a short rumble pulse whenever a button command actually lands, turning the motor into tactile confirmation. Combining that with the tilt-based lamp setup, where tilting up runs the tall lamp and holding it level runs the small one, would make control feel possible without watching a screen.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required