I'm trying to power a stepper motor with the 5V rail of an ATX PSU and control it using arduino. To keep the PSU running, I have shorted the PS_ON pin to ground. Also, I have connected PSU ground to arduino ground. The arduino is powered over USB.

The problem I'm having is that the PSU turns off automatically when I upload a new sketch to arduino. I can reproduce the problem with these steps:

1. Turn on power (PSU is running fine)
2. Set one motor pin (e.g. digital pin 9) to HIGH
3. Upload a new sketch to arduino (doesn't matter which one, e.g. the Blink example)

-> PSU turns itself off.

Why does this this happen and what can I do to prevent it? The PSU seems to perform well otherwise.

simulate this circuit – Schematic created using CircuitLab

Edit: I just found these alternative steps to reproduce:

1. Power on
2. Set one motor pin to HIGH
3. Disconnect 5V rail of PSU from motor driver

-> PSU turns off

Further tests:

1. Disconnect motor from driver
2. Power on
3. Set one motor pin to HIGH

-> PSU stays on!

1. Connect motor to driver
2. Power on
3. Set one motor pin to HIGH
4. Disconnect motor from driver

-> PSU turns off

It seems to me that the PSU doesn't like losing load on 5V after it has seen load once.

• Welcome to EE.SE! Inrush current to said motor being higher than your power supply can supply without tripping OCP? – winny May 24 '20 at 11:40
• Most modern ATX PSU's are 12V centric. Might require some dummy load on the 12V rail to keep it happy. – Unimportant May 24 '20 at 11:45
• @winny Mhh, the stepper driver only draws 130mA with one pin HIGH. Multimeter doesn't show high current when uploading a sketch, but maybe too fast to measure? However, I just found new steps to reproduce when disconnecting the driver (see post), which seems to indicate against inrush current? – Alexander Schlüter May 24 '20 at 12:03
• @Unimportant I might try that, although the PSU runs fine when no load is connected on power on. The problem only occurs when transitioning from load to no load. – Alexander Schlüter May 24 '20 at 12:05
• @Reroute Not quite, during reset all IO ports go immediately to their default state which is floating - inputs with pull-up resistors disabled. – Tom Carpenter May 24 '20 at 12:38