Z-Forces (philosophical)

What in the world do you have for a Z axis drive mech??

4 or 5 times a year both my machines get confused and go negative Z to the point of stepper motor stall. Never bent anything except half printed models.

Go uber slow on my method until you establish raw counts at Z= -.2mm. That becomes your overload just like it was in grams. All your safety routines still work.

Especially lead-screw driven systems create a lot of force very quickly. It then depends on the type of steppers, their torque, and current ratings. @garethky’s assessment is fully correct.

1 Like

We’ve gotten WAY off topic (my fault) but I’ve considerable experience designing, building, and operating test stands, with automated motion systems, for both cycle and overload testing of automotive components. One if the cardinal rules of design is never, unintentionally, build a machine capable of destroying itself, or it will.

If you really feel you need to accelerate at 10g in the Z axis then build a gantry than can accept those forces. Driver current capable of bending your printer is dangerous. Your motion system will (without doubt) eventually malfunction and go full force. Turn down the current or employ a torque limiting clutch in your system.

It’s not specific to one person’s printer. A lot of printers use one or more lead screws to move the bed, which provides a large mechanical advantage/multiplier to a motor that otherwise doesn’t have enough torque to do much damage.

Consider a X axis motor with a 20-tooth, 2GT pulley, one full rotation moves the printhead 40mm. By contrast, most lead screws are TR8, one full rotation moves 8mm. So it’s a 5x mechanical advantage.

In my case, with a RatRig V-Core-3, it’s actually 3 lead screws and 3 motors, so multiply another 3x to that force.

I’ve crashed my bed a few times with a failed Euclid probe, and been super grateful that safety mechanisms were there to detect it overshot reasonable probe limits and stopped it before too much damage was done. But it always destroys something. One time it basically crushed the printhead. I upgraded to a tool head that has an aluminum base component so that should limit future damage…

1 Like

Doesn’t matter if it’s 30 motors, adjust the current to a safe level or employ a sacrificial break away motor couplers.

Something I’d like to point out is that you usually have to set your motor currents high enough to inflict some damage if you want high accelerations. It’s happened before where my SuperPINDA is knocked up by a failed print, causing the next probe attempt to drive the nozzle into the bed. Thankfully, I have a Mosquito hotend, so it’s pretty resilient with hits, but Klipper’s probing limits saved me there from further toolhead damage.

As far as I know, the most reliable way (from a hardware perspective) to prevent toolhead damage on failed probes is to mechanically decouple the toolhead from the motion system, like seen in the Voron Tap (basing this on what I’ve read online as I don’t have one).

Also, we’re talking about hobby 3D printers here (many times built from spare parts), not industrial equipment. There’s tons of variety and no standardized way of building them (half of the fun, IMO :smiley:). 3D printers don’t have to live up to industrial safety regulations. While I agree that things that could damage things outside the printer, like thermal runaway should be (and are) protected, things that can damage the printer itself are up to each individual user to decide how much risk they’re willing to take (and pay for) on their machine.

2 Likes

And shouldn’t be a concern when writing code.

What do you consider acceptable Z axis acceleration? Tracking a bed mesh shouldn’t require high acceleration. Layer step once a layer not an issue. Z hop on retract? How much time can you save by jacking up the Z Acceleration?

Moved to a new topic.
As a sidenote: What might be true for industry test stands might not be true for (consumer) printers and their needs.

2 Likes

Thanks for the split. I knew we were cluttering up the main thread.

I should have let it go but trying to learn the ā€œlay of the landā€ concerning peoples expectations concerning their printers and the software.

Beautiful piece of kit, wish it was on my bench.

AND if it were it is unlikely I’d have thought to do an intentional bed crash and adjust the stepper current.

I have no idea what was the original thread since it starts rather randomly and then it continues even more randomly.
But even in industrial CNC equipment built to work nearly all the time and costing up to and over a million bucks, there is always something in the system that gives when it goes wrong. Yes the actual drive machanisms are built in such a way they can withstand the forces of normal operation and then, most of the times, another 100% on top, still something will break before the ā€œbrainā€ of the machine understood it has gone wrong. Often it is the tool itself, or the probe, which is many times more expensive as our whole 3d printer. Nothing is 100% fool proof because it needs some signal input to tell it something is wrong.
It quickly becomes a question of costs. Your average ultra expensive CNC machining center is nowhere near as cheap as your 3d printer.
My voron with revo hotend actually bends nozzles before it stops, or before I finally reach the e-stop. Everytime that happens it needs a new bed level and calibrate. The nozzle in this case is the consumable item, and prevents further damage
I am not sure from the top of my head what those motors are set to, have to check since it is an interesting thing for my next config.
That raises the question if we can split the current settings in negative direction from positive direction? If we could we can use sensorless homing by tapping the bed with the nozzle. No need for a tap system or these new pressure sensors from some of the manufacturers.
Hmm interesting perhaps!
Here, another split in this already scattered discussion :rofl:

I wanted to stay clear of this discussion because, it is rather academic, e.g., torque-limiting clutches or sacrificial breaking points. On the other hand, I’m pretty sure that current limiting is a very bad idea:

  • The effect of the Z-steppers is commonly significantly underrated for its impact on print quality, e.g., VFA.
  • You want to have precision down to a few microns.
  • Due to these precision requirements, you want to have a higher microstep resolution. This, in turn, negatively impacts the torque - not for the full step but for the accumulating microsteps. For example, at 256 microsteps, a single microstep has only about 0.6% of the full-step torque.
  • You always want to operate any kind of equipment within its specification range. For instance, running a 2-Amp stepper at 0.8 A is surely not within this range.
  • Many users also use completely overrated stepper drivers - e.g., 6-A capable drivers for a 0.8-A motor. This, in turn, negatively impacts the stepper driver’s ability to regulate the current.
  • The faster you print, the snappier you want the Z-axis to be, e.g., for constant ± corrections for the mesh.
  • Proper printers with heavy cast aluminum beds need the torque, as the bed alone can weigh several kilograms.

Finally, the comparison to CNC equipment is not correct either, since you can destroy any CNC, regardless of its price, with the wrong commands.

1 Like

I agree completely. For EVERY printer design I’ve seen the Z axis is most susceptible resonance issues. Has anyone ever run a Z axis input shaper on their machine? On a drop bed design you’d need 2 accelerometers as dropping the bed a few microns then stopping quickly WILL light up any available resonance in the gantry and cause the bed to quiver like a drum head. Low Z axis acceleration is preferable. Slow down (or stop) the print speed and wait for the Z move to complete. When printing the Z moves are small. 1/10g vs 1/2 g really doesn’t take that much longer.

256 microsteps is not useable in an open loop motion system. A high end consumer level stepper with the shaft connected to nothing has too much friction in the bearings to actually split a step that fine, at any motor current. Connect it to a lead screw (or any other mechanism) and even if it did hit the exact mark torsional deflection of the screw and backlash at the nut would burry that precision in hysteresis.

The point I was trying to make in the original post that resulted in this split is:

—> Attempting to write code to perform an impossible task is an exercise in frustration

I will, however, admit that several times in my professional career that some software engineer pulled off (what I thought was) the impossible. In those cases the key was leaving the abstract world of software and studying the physical mechanism THEN abstracting the physics.

For every time that happened I’ve seen 20 times where software engineers made it their goal to "code around the issue (usually hysteresis) and fail.

The X-axis I bent was on the E3D toolchanger. It has a very heavy cantilever bed design and just a single z stepper. The stock bed was PCB and glass and it was a potato chip. So I had a custom Alu plate made which made it even heavier. It couldn’t do 5mm/s because the stepper would de-sync. I believe it was limited to 2 or 3mm/s.

So I modified the z axis with a balls screw, a larger stepper motor and a belt reduction. The ball screw had a steeper pitch than the lead screw (so less mechanical advantage) but it was a lot smoother. This also means it was easier to apply torque at lower speeds, since there was less friction.

You tune the stepper current to achieve axis performance, not to prevent crashes. The user shouldn’t crash the machine, but we know they will, so we try to prevent that as much as possible. E.g. in commercial CNC they have load monitors on the spindles that will E-stop the machine if it gets too high.

Changing current for probing isn’t really practical for a couple of reasons:

  • it’s slow, the drivers take time to switch, the messages take time to send etc. People that want to ā€œgo fastā€ would just turn it off. So even if it existed we couldn’t assume it was on.
  • The Z probing direction of travel might be up, in which case you don’t have gravity helping you and you want all the current anyway. You usually need peak current to accelerate the axis against gravity.

Klipper Philosophy

Making assumptions about the physical printer is risky. This is worse in the case of Klipper where we don’t own the hardware. In a complete product you might assume physical characteristics because they are known for that product. But Klipper is used so widely in so many different machines you cant make assumptions. If you are going to make assumptions about the underlying system the best you can do is expose that to users in the config and ask that they specify them.

Klipper has lots of code around accommodating for less than ideal systems and environmental conditions. There is lots of retrying, de-bouncing, polling, validating and timeouts going on. The code is written from the point of view that everything is broken or might become broken at some point. ā€œassuming an ideal printerā€ is not how it works.

The config system lets you defeat almost all of these safety systems, either to make them tighter or to turn them off.

It’s a system that lets hobbyists and commercial vendors alike build printers. As such it has to take into account a LOT of different things these different groups do. It also has to account for the different skill levels of each. The documentation is largely for hobbyists. Manufacturers are more able to have someone on staff to read code and to design a test campaign for their printers.

And then or course there is development of new features. Manufacturers can just change the code. Some devs are just hobbyists and would be really upset if they broke their only working printer. We even have to think about what happens when there are bugs in a subsystem. e.g this discussion, we are going to implement a watchdog sytstem in trsync so we don’t trust the sensors to work correctly. One of the ways they don’t work correctly is when you develop a new sensor driver and have a bug, ask me how I know.

Load Cell Probing

I’m asking for the calibration of the load cell so I don’t make any assumptions about:

  • the sensor’s scale
  • the magnitude of the noise
  • the load cell’s ā€˜size’
  • your physical printer’s kinematics
  • what is too much force for your printer

Basic assumptions like these have all proven to be false over time in various printers:

  • The tare value is constant or near constant
  • Noise will be less than the trigger force
  • Any significant force is easily differentiable from noise
  • 1 gram is more than 1 sensor count
  • Force will be applied linearly
  • Anywhere you probe will have the same results
  • ESD wont zap the sensor and restart it multiple times a second
  • The noise level wont drastically change between probes. Like say when someone rests a hand on the printers enclosure…

In short, I assume your machine is a total turd :poop: until you prove otherwise. You can lie about it to the config if you want to.

2 Likes

I apologize for questioning anyone’s choice concerning driver current, Z axis acceleration etc. I thought I could, perhaps, save someone some $ and downtime following an unscheduled overload test with a minor configuration change. Didn’t belong on this forum and any other place where advice was not asked.

2 Likes