Marlin: [BUG] TMC drivers retain old hybrid chopper settings after firmware update.

Created on 17 Aug 2020  路  8Comments  路  Source: MarlinFirmware/Marlin

Bug Description

It seems as if the hybrid switching settings are only sent to the TMC drivers when hybrid switching is enabled and not when hybrid switching is disabled.

This means that if I reprogram the firmware and turn off hybrid switching it is not actually turned off after the board reboots since the drivers can maintain their power and volatile memory through a board reset. To get hybrid switching to turn off requires a full power cycle of the whole printer which is not a huge issue but since the code to configure hybrid switching is already there it may make sense to add a #ifndef check which actively turns it off instead of just assuming that it is off.

My Configurations

Required: Please include a ZIP file containing your Configuration.h and Configuration_adv.h files.

Steps to Reproduce

1.) Enable hybrid switching on a board of your choice.
2.) Disable hybrid switching using a programming method that does not require a full power cycle of the board.
3.) Hybrid switching is still enabled as the settings are retained within the volatile memory of the drivers.

Expected behavior: [What you expect to happen]

After a reprogram of the board it is natural to expect the machine to behave according to the programmed config. In this case, to have hybrid switching disabled.

Actual behavior: [What actually happens]

Since only the board is reset but power is retained to the drivers, volatile memory on the drivers is retained and furthermore, since the board does not actively update disabled features they may still remain enabled until the next power cycle.

Additional Information

N/A
config.zip

Confirmed ! Trinamic

All 8 comments

I have reproduced this issue as well. I'm and a SKR 1.4 Trubo with TMC2209 drivers. I have to completely turn off the printer to get the new settings to apply.

I've also been having this issue. Need to unplug the whole board between firmware updates when doing lots of hybrid testing.

Does Initializing EEPROM through the menu or by sending M502 followed by M500 use the updated values?

Does Initializing EEPROM through the menu or by sending M502 followed by M500 use the updated values?

No because if you follow the TMC init flow you will see that the hybrid settings are not configured if the feature is turned off. Therefore the volatile values will remain within the drivers until a power cycle. Easy fix though since the code is already there to configure them. It's really just a conditional statement. If I have time this weekend I'll try to implement and test.

This issue has had no activity in the last 30 days. Please add a reply if you want to keep this issue active, otherwise it will be automatically closed within 7 days.

Let's keep it active bot. Still an issue. Just no time to dig deep into it yet.

This issue has had no activity in the last 30 days. Please add a reply if you want to keep this issue active, otherwise it will be automatically closed within 7 days.

Still an issue. Still no time to fix it myself yet.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

spanner888 picture spanner888  路  4Comments

Anion-anion picture Anion-anion  路  3Comments

ahsnuet09 picture ahsnuet09  路  3Comments

StefanBruens picture StefanBruens  路  4Comments

W8KDB picture W8KDB  路  4Comments