Delay Start Printing


I have a farm with 9 printers.
Today I m noticed burning smell in my garage.
One of my Sonoff Pow2 to measure current are burning at wires contact.

I m awarenes off this problem but I have measured the consumption of six printers connected to the same line starting at the same time 12A Max for a few secconds and the device is rated to 15A.

After this introduction we get to the point.

A functionality that delays / limits the start of several jobs at the same time would be very useful.
This would decrease the peak current draw that occurs mainly when heating the bed. When the machines are in regime they consume only 20% of that load.
Maybe some option to start only 2 jobs every 1 minute or something like that would be enough.
I think that would be the easiest way out. Something more complex would be to limit the simultaneous preheating but I don't think it is necessary.

Normally, when starting jobs manually, this problem would not be so bad, since a few seconds of delay are generated until all printers start printing, but when being able to send a job en masse, the power lines suffer.

What you tink about that?
It is a security feature that no software currently has on the market.


  • A device rated 15A doe snot mean you can use it for that. You know that many e-cars cause fire when loaded at normal plugs also they do not draw 16A. Especially if no qualified electrican has made the cable connection, a wire is too thin or corroded or ... high amps cause heat and fire in extreme cases.

    So you are using as you say a system that can cause overload in extreme cases. Means even if we do start with time shift it is something that can happen. So if I write a feature that promotes such safety people will think it is safe, also I know it never would be safe. Someone can still enable all bed heaters same time. It also depends on how much a printer draws, if they are on same socket or fuse, ... - so that is nothing I want to officially provide on our side to give some false security feeling.

    If you always start all the same time there is a simple solution in case you want this. Of course as described not bullet proof. Each printer can have in the start gcode a different delay programmed in using G4. In case you have an emergency parser in printer firmware you can stop it with M108 if wanted. Otherwise you get your delyed starts, but also for a single print where you might then want to use M108.
  • Cura and other slicers do not heat the bed and heater block at the same time so as not to overload the printers' power supply.

    You can also override this security measure manually ... but they still apply it because it is surely better for the printer and its cables.

    Maybe talking about security was a very exaggerated word on my part.
    Why not a measure that helps keep cables cooler?

    Prusa will come out soon with its software to control farms and I am sure it will have some characteristics of these. And if you only think about users who have 2 printers, you will be left behind.

  • We are not thinking about only 2 printers, but we think about many different combos where we have no real control. Only experts know which commands use how long how much current. But to implement this I need to know it for every possible command that has which impact on which shared cable for all machines from the user. They won't know and either ignore or start asking lots of question or make mistakes or not see that an update changed it. Which is what I mean with false safety - you think there is someone ensuring safety and it won't just because some parameter are wrong. That is how a safety feature easily can become a safety problem.

    Maybe in a later step I can write some server commands that can add timed addition to channels and wait until a channel is below a given value. That way it is possible to write such functionality in g-code where it belongs without adding lots of config options. After all it must be the gcode that does the wait. It could be done e.g. in g-code repelacement so you replace M190 with wait conditionally and then send M190. But that is for the time when server supports internal variables which we need here.
Sign In or Register to comment.