Resources
Code files to upload to microcontrollers – includes code for the button and the receiver
The project
Turning on your PC usually means reaching for that little power button on the case—but what if your setup makes it awkward to reach? In a previous project, I solved this with a 3D-printed extension that brought the button closer to my desk. It worked, but it was clunky.
In this guide, I’ll show you how I upgraded that idea into a wireless PC switch extender: a neat little device with a button and LED ring that lets me power on my computer remotely.
All the files you’ll need—circuit diagrams, CAD models, and code—are available here for download.
Overview of the Build
This project has two main parts:
- Receiver (inside the PC)
- Powered by the ATX cable so it works even when the PC is off
- Connects directly to the power switch header on the motherboard
- Reads the Power OK (PWR_OK) signal to detect whether the system is on
- Button (on your desk)
- Microcontroller + momentary switch
- NeoPixel LED ring for feedback
- Communicates wirelessly with the receiver
Communication between the two is handled via ESP-Now, a lightweight wireless protocol supported by ESP8266/ESP32 chips.
Components Used
- 2x Wemos D1 Mini (ESP8266)
- Momentary switch (reused from my first version)
- NeoPixel LED ring
- ATX power cable extender (for safe tapping)
- PCB (custom-made via PCBWay)
- 3D-printed enclosure (Fusion 360 design)
- Diffuser ring (silicone + baby powder mix)
Step 1: Setting Up the Receiver
The receiver lives inside the PC.
- Power input: 5V standby line from the ATX cable (always on, even when the PC is off).
- Switch control: Connected to the motherboard’s PWR_SW pins via an optocoupler.
- Status detection: Connected to the PWR_OK line, letting the board know if the system is running.
💡 Tip: Use an ATX extender cable when soldering or tapping wires—this avoids damaging your main PSU cables.
Step 2: Prototyping the Button
On the button side, things are simpler:
- Wemos D1 Mini + tactile button
- NeoPixel ring mounted inside the enclosure for status feedback
I programmed the LEDs with the following behavior:
- Blue → pairing mode (searching for receiver)
- Red (pulsing) → standby / PC off
- Green → PC on
Step 3: Wireless Communication with ESP-Now
Originally, I planned to use Seeed Xiao ESP32 boards. They’re tiny and powerful, but their external antenna requirement ruined the form factor.
So I switched to Wemos D1 Minis, which handle ESP-Now communication without antennas and are still compact enough.
Once flashed with the right sketches, the boards paired successfully and the button could toggle the PC power reliably.
Step 4: From Breadboard to PCB
With the prototype working, I designed custom PCBs in KiCad. Ordering them from PCBWay was straightforward:
- Export Gerber files
- Upload to their site
- Choose board specs
- Place order
The boards arrived in about a week, and the quality made assembly so much easier.
Step 5: Designing and Printing the Enclosure
I modeled the case in Fusion 360, iterating through a few prototypes until everything fit neatly.
For printing, I used Galaxy Black PETG (thanks to Prusa Research for sending me the filament). It gave the project a sleek, professional look.
To improve the LED effect, I made a custom diffuser ring:
- Transparent silicone mixed with baby powder
- Poured into a 3D-printed mold
- Result: soft, even light spread across the ring
Step 6: Final Assembly
- Components soldered onto the custom PCB
- NeoPixel ring hot-glued in place
- Diffuser ring inserted into the top
- Everything screwed into the enclosure
And that’s it—time to test.
How It Works
- Plug the receiver into the PC (via ATX standby + power switch header).
- Power on the button unit.
- LED Status Guide:
- Blue → searching for receiver
- Red → receiver found, PC off
- Green → PC powered on
Now I can turn my PC on or off wirelessly from my desk!
Wrap-Up
This project turned what was once a clunky 3D-printed extension into a clean, wireless remote switch that looks and feels like a real product.
