To the other point though, I’d also want to make sure that long running macros didn’t impact system resources in a way that could negatively affect safety. As in, people accidentally writing a long running/looping macro that thread blocks the python thread in some way and then Klipper can’t respond to the hot end heating in an uncontrolled fashion.
Blame Thomas Edison. In proving the “danger” of Tesla’s AC (over his preference for DC), he electrocuted an elephant with AC and then invented the electric chair for executing prisoners using AC.
120V was chosen as the highest voltage possible for good energy transmission characteristics but highly unlikely to kill someone if they had it pass through their body.
I’m not making this up. It’s actually pretty fascinating reading.
You need a second sensor for this to work as intended.
I did mean to go back and make it into a python module, because the macro code is really complicated. But I never got around to it. I still use the macro on every print.
And just to add some more data to the idea that the bed is an ever changing thermal taco:
The purple line is the “top bed” sensor that I’m using to detect thermal equilibrium. On my machine it takes about 5 minutes from when the bed hits temp for it to stabilize. But if the bed is already hot & stable it can take only a few seconds to detect that.
Looking into it more, you’re right that it was chosen as a reasonable voltage to minimize shock and I guess the infrastructure was already setup around Edison’s 110v DC system. Which he in turn setup to power his bulbs which ran at 110v in order to out compete the gas lighting utilities.
So when the AC system was setup it used step down transformers to step down 500V to the 110/120v to power the existing bulbs, because that was the market for electricity at the time, and we got stuck with it.
Conversely, Europe didn’t totally electrify until after WW2 and by that time they realized the demand was going to be higher and they smartly went with 240V.
Thanks Edison, screwing us over 150 years later.
Edit: Anecdotal but anyone who’s accidentally gotten popped by 120V will tell you it still sucks. That and it’s still definitely deadly in the wrong circumstances.
Where did this all go? I think it is a very valid question. What if we designed a structure in PRINT_START that just setup some very basic variables and started stuff, and called a DELAYED GCODE “DELAYED_PRINT_START” and you had a counter variable for each thing you want to do…then sort of CASE STATEMENT out the 5 or 6 or 20 things you want to do but do it in DELAYED_PRINT_START, recalling DELAYED GCODE after completing one at a time, increment variable, recall delayed gcode until done? It seems crazy and semi complex, but I would think that would be “cancellable” at least down to the longest single macro you called out to from there?
I don’t think it belongs here, but anyway. It’s a forum to talk
Yes, fascinating history.
This is a good short article about a part of that history. https://www.eti.kit.edu/english/1390.php
Europe uses 240V because of the European Union. Before, there was 220V, 230V, and 240V used in the European countries. All @50Hz.
The 60Hz came from T. A. Edison, the 50Hz came from Emil Rathenau.
Have a look for “Lauffen” in above mentioned article. That was the first practical introduction for today’s electrification (3 phases, 220V@50Hz). Tesla was favoring 2 phases before.
Europe did pretty good til the first world war began. Shortly after that, the monster H+t+e+ came… That’s why European electrification started after WW2.
So I wanted to run a macro and be able to adjust baby stepping. And I’m at the tail end of doing load cell probing which will almost completely eliminate the need to use baby stepping.