How to PID or bang bang control a water cooling pump?

  • I'm running a E3D water cooling kit with one half of a Chimera+ hotend.
    At full 12V the set holds the inner space of the hotend at room temperature, even with high hotend and heatbed temperatures.
    I'd like to have the possibility to run it 10 or 20 degrees above room temperature to get best print results.
    Therefore it might be an idea to set up a PID control channel to PWM the 12V DC pump motor.

    I have an NTC sensor in the Cold End already.

    1. How can I set up a PID channel for cooling?
      Or a bang-bang solution, in case even the lowest possible motor pump rotation speed would be too much.

    2. Any other ideas or comments?

    1. Why do you think a hotter cold zone temp will improve print quality?

    2. The pump motor is an inductive load, which probably isn’t a great idea to switch with the board FET. So an SSR or physical relay might be a good idea.

    3. The system will likely have very non-linear cold end temp vs pump PWM duty cycle response. And it takes very little water flow to pull a relatively large amount of heat from the cold end. So you might get some weird oscillation effects. You may find your desired temp setpoint can only be hit at a pump speed near its low-speed cutoff / deadband where cycling it on and off is hard. So PWM may not be a great idea. (Could work, might not.)

    4. Switching the watercooling loop radiator fan might work a lot better. Let your water temp rise to the desired setpoint at full pump speed, then regulate the radiator fan.

  • administrators

    You can set up the water pump as a thermostatically-controlled fan with proportional control (not full PID). See the description of M106 in the GCodes wiki page.

  • @rcarlyle , @dc42

    Thanks a lot to both of you fort your thorough answers.

    (I feel, I owe you the complete story: At the moment my printer is running on smoothie and I'm thinking about changing to duet, provided that the duet solution is flexible enough to help me along. Your replies convinced me, that it is the right step to do, because of the solution and this forum support.)

    I came from an E3D V6 and with 30°C room temperature I got heatcreap caused extrusion problems. That made me try the water cooling, taking my existing E3D V6 heatblock etc.
    Compared to the air cooled results the water cooled results were not that good: much more Z banding etc.
    Because the inner temperature of the air cooled solution runs 10 to 20° warmer within the cold end, I thought: maybe it's not a good idea to pump that much heat away from the hotend and better run the cold end 10 to 20° warmer.

    Excellent advice. I will a least put in another mosfet to make the onboard one save.

    Understood. PIDing the pump is not the solution. I have the pump at an laboratory power supply at the moment and will do some more temperature measurements and test prints. Based on that I wil decide wether to control pump and/or heater bang bang or proportional (@dc42 I did not even know that this option exists).

    Meanwhile I'll order the board.
    Thanks a lot again, guys!

Log in to reply