Table of contents
ColdBoot Functionality
Capability: ColdBoot lets a paired Steam Controller turn the PC on from a fully off state. Short-press the Steam button. The Pro Micro pulses a GPIO pin. The pulse closes the PC's power switch circuit, the same as a press of the case power button. This works because the USB port keeps standby power on the Pro Micro even while the PC is off, so it stays awake and keeps listening for the button press. ColdBoot is off by default in the firmware and needs the extra wiring below to work.
Level of effort: Basic soldering skills. You solder one resistor and one transistor, then run two wires to the motherboard's front panel header.
Bill of materials:
| Qty | Part |
|---|---|
| 1 | Pro Micro NRF52840 (the same board that runs OpenPuck) |
| 1 | 2N3904 NPN transistor (or equivalent general-purpose NPN) |
| 1 | 1 kΩ resistor |
| ~30 cm | Hookup wire |
| — | Heat-shrink tubing or electrical tape |
| — | Soldering iron and solder |
| 1 (optional) | LED + matching series resistor (e.g. 330 Ω) — diagnostic, lights each time the pulse fires |
Setup:
- Check that pin 29 is correct for your board. Some Pro Micro clones print it as
017instead of029, and the mapping can change with the board core. If you are not sure, flash a minimal blink sketch first (an#include <Arduino.h>sketch that just toggles the pin inloop()), so you can confirm the pin by eye before wiring anything up. - Build the circuit shown in the schematic above. Connect Pro Micro pin 29 to one leg of the 1 kΩ resistor.
- Connect the other leg of the resistor to the base of Q1 (2N3904).
- Connect the collector of Q1 to the
PWRBTN#pin on the motherboard's FP1 header, shown in the pinout diagram above. - Connect the emitter of Q1 to a
GNDpin on the FP1 header. - Wire Q1 in parallel with the case's existing power button. Do not remove the case button.
- Optional: solder the LED, in series with its resistor, between pin 29 and GND on the Pro Micro. It lights each time the Pro Micro sends the pulse, a quick way to check the trigger without opening the case.
- Insulate all exposed leads with heat-shrink tubing or tape.
- Flash firmware built with the ColdBoot feature enabled:
make uf2 EXTRA_FLAGS="-DOPK_PWR_SWITCH=1". - Plug the Pro Micro into the PC over USB and pair the Steam Controller as usual.
- Test it: turn the PC fully off, wake the controller then short-press the Steam button. The PC should power on.
Warning
Never connect the Pro Micro's GPIO pin directly to the FP1 header. Always switch it through a transistor, relay, or optocoupler. A direct short can damage the motherboard or the Pro Micro.
Your motherboard's FP1 connector may not match the pinout shown above. Check your motherboard manual first. If you wire this in line with the power button and it does not work, reverse the two pins and try again.