EEVblog Electronics Community Forum

Electronics => Beginners => Topic started by: ManuelMcLure on September 25, 2020, 01:10:18 am

Title: 3D Printer PSU boot circuit
Post by: ManuelMcLure on September 25, 2020, 01:10:18 am
Hi all, just want a sanity check on a circuit I'm planning to use for my 3D printer.

A bit of background. The printer started life as an Anet A8, but now could be considered the Anet A8 of Theseus, since every single part except for the Z axis motors and lead screws have been upgraded.
The very first upgrade I did was replace the crappy 12V/20A power supply that came with it with a 12V/47A server power supply (HP DPS-600PB for those playing at home). I have also replaced the motherboard with a Re-ARM (NXP LPC1768 MCU)/RAMPS combination.

The Marlin firmware I run has the ability to control a PS_ON pin to turn on and off an external power supply. I currently have this directly connected to the power supply's PS_ON pin. When Marlin pulls the pin low, the power supply comes on, when it goes high or high impedance the power supply turns off. To allow this to work I have the jumper on the Re-ARM board that selects the board power set to use the USB power coming from the mini-PC I have connected to the Re-ARM board, so the Re-ARM board is always powered, but full 12V power for steppers/bed/hot end only comes on when Marlin says to. This allows Marlin to shut down main power in case, for example, that a MOSFET fails short and Marlin detects an over temperature condition. I have Marlin configured so the PS_ON pin is active low, and is not enabled on boot.

I want to change things so that the Re-ARM CPU is powered from the 12V supply and will only boot up when the 12V supply is available, but can still shut down the power supply if needed. My first thought was just adding an NO momentary push button between the power supply's PS_ON and ground and set Marlin up to have it's PS_ON pin enabled on boot instead of disabled as I have it now. Then I could just keep the button pressed until Marlin has booted up and enabled PS_ON (remember, "enabled" in this case means low) and if Marlin switches PS_ON off (i.e. high) the main power supply shuts off and there's no chance of Marlin rebooting and turning it on again.

The issue is determining how long to keep the button pressed for. I got some nice push buttons with a LED ring, so what I wanted is a circuit that will allow me to push the button to boot the power supply, and will light up the ring when Marlin asserts the PS_ON signal. My plan is to reverse the action of the Marlin PS_ON pin (so make it active high) and use the following circuit:

D1 is the LED ring on SW1 and the 12V line won't have any power until the power supply boots up. I'm going to double check, but I'm pretty sure that at one point I measured the short-circuit current on the PSU's PS_ON pin as less than 1mA so I'm not really concerned about the amount of current through the LTV-817.

Anything I'm missing? Any way to make the circuit simpler?

EDIT: I'll probably replace R2 & R3 with 1K - the LED ring lights up just fine with that value and only pulls 7mA, and I shouldn't have any issues with the opto either.
Title: Re: 3D Printer PSU boot circuit
Post by: ManuelMcLure on September 25, 2020, 05:49:10 am
Just figured out that I can put both LEDs (the ring and the one in the opto) in series and save a resistor and lower the current usage at the same time.
Title: Re: 3D Printer PSU boot circuit
Post by: viperidae on September 25, 2020, 07:34:44 am
A server PSU usually has a standby power supply, originally designed to power the motherboard so it can support wake on LAN, etc. It's normally 5v and up to a few amps.
Title: Re: 3D Printer PSU boot circuit
Post by: ManuelMcLure on September 25, 2020, 04:12:12 pm
A server PSU usually has a standby power supply, originally designed to power the motherboard so it can support wake on LAN, etc. It's normally 5v and up to a few amps.

Yes, this one does, but I explicitly do not want to take advantage of the standby power supply. The whole point of this exercise is to make it as unlikely as possible that the board will boot up after a problem without me physically being next to the printer and pressing the button. If I power the board from the standby power supply there's a chance a glitch might cause it to reboot and turn the power supply on again.