# Prevent Beds on Z Belted printers from violently dropping when config changes are saved and restart occurs (updated )

**URL:** https://klipper.discourse.group/t/prevent-beds-on-z-belted-printers-from-violently-dropping-when-config-changes-are-saved-and-restart-occurs-updated/16148
**Category:** General Discussion
**Created:** [April 30, 2024, 4:33am UTC](https://klipper.discourse.group/t/prevent-beds-on-z-belted-printers-from-violently-dropping-when-config-changes-are-saved-and-restart-occurs-updated/16148 "2024-04-30T04:33:15Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Eric](https://avatars.discourse-cdn.com/v4/letter/e/898d66/32.png) [@Eric](https://klipper.discourse.group/u/Eric)
#### Post date: [April 30, 2024, 4:33am UTC](https://klipper.discourse.group/t/prevent-beds-on-z-belted-printers-from-violently-dropping-when-config-changes-are-saved-and-restart-occurs-updated/16148/1 "2024-04-30T04:33:15Z")

</div>

About this topic , I have also encountered the same problem, but the thread is closed. I tried to resolve the issue and have made some new progress.

I am using the TMC2209 control chip to drive my Z-axis motor. I have set the motor’s enable pin to the enabled state through “force set the pin” in “make menuconfig” (under the low-level options). This setting is effective. I found that when the driver board is powered on, the motor’s holding torque can completely overcome the weight on the Z-axis. However, when I start Klipper and load the config file, the motor’s enable function is reset. My idea is that if the Z-axis motor’s enable is always on during the entire process of starting Klipper and is never turned off, this should solve the problem.

but how to keep the Z stepper motor enable =1 during the config changes are saved and restart ,This issue has not yet been resolved

> [@How-to prevent bed drop during config save restart (Z Belted printer)](https://klipper.discourse.group/t/how-to-prevent-bed-drop-during-config-save-restart-z-belted-printer/13340):
>
> Basic Information: Printer Model: Pi 4 =\> Octopus v1.1 =\> EBB36 v1.2. Building a V1E MP3DP v4 CoreXY with 3 Z Steppers. Link to 60sec build montage below. MCU / Printerboard: Octopus v1.1 with EBB36 klippy.log (not relevant). Shared my [printer.cfg](https://github.com/aaronse/v1engineering-mods/blob/main/mp3dp-v4/klipper/printer.cfg) on github. white_check_mark Tried to self help via [Knowledge Base](https://klipper.discourse.group/t/about-the-knowledge-base-category-table-of-contents/6228) Tried [https://www.klipper3d.org/Command\_Templates.html#delayed-gcodes](https://www.klipper3d.org/Command_Templates.html#delayed-gcodes) with initial\_duration: 0.01, way too slow… Shutdown and reconnecting take several seconds. …

---

<div class="post-metadata">

### Author: ![mykepredko](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/mykepredko/32/2085_2.png) [@mykepredko](https://klipper.discourse.group/u/mykepredko)
#### Post date: [April 30, 2024, 6:24am UTC](https://klipper.discourse.group/t/prevent-beds-on-z-belted-printers-from-violently-dropping-when-config-changes-are-saved-and-restart-occurs-updated/16148/2 "2024-04-30T06:24:16Z")

</div>

Could you share how you have set up your Z axis belts?

My Voron 2.4 has never had an issue - the 20 to 80 teeth reduction pulleys provide quite a bit of mechanical resistance from the stepper motors and, while I can move the gantry frame up and down, it takes quite a bit of force to move them.

---

<div class="post-metadata">

### Author: ![gaolst](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/gaolst/32/10026_2.png) [@gaolst](https://klipper.discourse.group/u/gaolst)
#### Post date: [April 30, 2024, 9:31am UTC](https://klipper.discourse.group/t/prevent-beds-on-z-belted-printers-from-violently-dropping-when-config-changes-are-saved-and-restart-occurs-updated/16148/3 "2024-04-30T09:31:02Z")

</div>

> [@Eric](#):
>
> how to keep the Z stepper motor enable =1 during the config changes are saved and restart ,This issue has not yet been resolved

Short answer - you can’t fully resolve it with just a software setup.  
Why:

1. There are many different setups how klipper is controlling a stepper driver, it can use SPI, I2C, UART, Step/Dir/Enable/Reset signals.
2. There are different stepper drivers and each model can have different internal behavior of a Reset sequence.
3. When you are `saving_config` or doing `FIRMARE_RESTART` your CPU is going thru Reset sequence this involves all it’s pins to go in some state and that state is different for each CPU model.
4. There are different approaches how schematics was design for each printer board.
5. Sometimes Stepper Driver Reset pin also connected to CPU and when CPU is going thru Reset - that Reset can cascade down to stepper driver reset.

Now when you are trying to achieve always holding motor state - you need to account all of those unknowns.  
It’s much easier and reliable approach is to resolve issue on Hardware level which will protect your machine not just from software resets, but including poweer-loss.

---

<div class="post-metadata">

### Author: ![Eric](https://avatars.discourse-cdn.com/v4/letter/e/898d66/32.png) [@Eric](https://klipper.discourse.group/u/Eric)
#### Post date: [April 30, 2024, 9:42am UTC](https://klipper.discourse.group/t/prevent-beds-on-z-belted-printers-from-violently-dropping-when-config-changes-are-saved-and-restart-occurs-updated/16148/4 "2024-04-30T09:42:45Z")

</div>

I directly use a stepper motor to drive the timing pulley, which in turn drives the timing belt movement, without any reduction mechanism, but  
at the rear of the stepper motor, an electromagnetic brake is designed. When powered on, this electromagnetic brake is released under the effect of electromagnetic force. If a power outage occurs, the electromagnetic brake will lock to prevent the Z-axis from falling. However, this function only works in the event of a power outage. When powered, the Z-axis is held in place by the torque provided by the motor’s holding current. However, when I reload the config or trigger an emergency stop, I find that the Z-axis motor’s enable is reset, causing the motor to have no holding force and be in a completely free state. I have modified the firmware through “make menuconfig” (under the low-level options) so that the motor’s enable is active when the board is powered on. But still, when I reload the config or trigger an emergency stop, the enable is reset. Therefore, I need some help on how to keep the Z-axis motor’s enable constant when reloading the config or triggering an emergency stop. Thank you.

---

<div class="post-metadata">

### Author: ![Eric](https://avatars.discourse-cdn.com/v4/letter/e/898d66/32.png) [@Eric](https://klipper.discourse.group/u/Eric)
#### Post date: [April 30, 2024, 9:57am UTC](https://klipper.discourse.group/t/prevent-beds-on-z-belted-printers-from-violently-dropping-when-config-changes-are-saved-and-restart-occurs-updated/16148/5 "2024-04-30T09:57:37Z")

</div>

the self-locking feature of trapezoidal lead screws and the mechanical approach of gearboxes with high gear ratios can address these issues, but the drawbacks are also clear. These mechanical systems either lead to reduced efficiency of the entire transmission system (the small lead of trapezoidal screws means lower transmission efficiency) or require higher motor speeds with high-ratio gearboxes. However, for stepper motors, performance deteriorates at high speeds (torque drops significantly). Thus, for designing high-performance systems, using the holding force of the motor to counteract the gravitational force in the Z-direction is a better system design.

---

<div class="post-metadata">

### Author: ![gaolst](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/gaolst/32/10026_2.png) [@gaolst](https://klipper.discourse.group/u/gaolst)
#### Post date: [April 30, 2024, 11:41am UTC](https://klipper.discourse.group/t/prevent-beds-on-z-belted-printers-from-violently-dropping-when-config-changes-are-saved-and-restart-occurs-updated/16148/6 "2024-04-30T11:41:04Z")

</div>

I you already have hardware solution - then you can try to hook it to Enable\_pin so you always have good conditions:  
State 1: motor is enabled and brake released  
State 2: motor is disabled and brake is engaged.

---

<div class="post-metadata">

### Author: ![system](https://global.discourse-cdn.com/free1/uploads/klipper/original/1X/64419bf2aac6639e6ef5cef200dcd456b0a01ac3.png) [@system](https://klipper.discourse.group/u/system)
#### Post date: [June 29, 2024, 11:41am UTC](https://klipper.discourse.group/t/prevent-beds-on-z-belted-printers-from-violently-dropping-when-config-changes-are-saved-and-restart-occurs-updated/16148/7 "2024-06-29T11:41:11Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
