Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable stealthChop for TMC2209 homing #16153

Merged
merged 1 commit into from
Dec 19, 2019
Merged

Enable stealthChop for TMC2209 homing #16153

merged 1 commit into from
Dec 19, 2019

Conversation

elementfoundry
Copy link
Contributor

Description:
Enables stealthchop before homing axes when using TMC2209 and sensorless homing is enabled

Benefits:
This is to address bug #16091 where sensorless homing would fail if the driver was in spreadcycle mode for that axis.

Related Issues
#16091

@boelle
Copy link
Contributor

boelle commented Dec 8, 2019

you should change base to bugfix 2.0.x until version 2.0.1 is out

EDIT: did it for you

@boelle boelle changed the base branch from 2.0.x to bugfix-2.0.x December 8, 2019 20:57
@elementfoundry
Copy link
Contributor Author

@boelle - sorry, thought I had branched off bugfix. Thanks for taking care of that.

@boelle
Copy link
Contributor

boelle commented Dec 8, 2019

your welcome :-) its a common mistake since it selects the default branch, so no worries :-)

@Hukuma1
Copy link

Hukuma1 commented Dec 9, 2019

Any chance of stealthchop being randomly disabled with other variables as well? Got the same board and it sounds a bit louder (like non-silent steppers/non-stealthchop) whenever I do a simple G28. No sensorless homing enabled, but stealthchop is on all motors in config files.

@elementfoundry
Copy link
Contributor Author

@Hukuma1 The 2209 drivers that I had from bigtreetech were set to spreadcycle when freshly installed. You can check the mode of the installed drivers with an M569.

The only other thing that I could think of would be that HOME_USING_SPREADCYCLE is enabled in Configuration_adv.h

@Hukuma1
Copy link

Hukuma1 commented Dec 9, 2019

@elementfoundry Drivers were set where? You mean the jumper on the board? Or their Github repo? I compiled from latest bugfix 2.0 here if it matters. And I did just check via M569 and it seems it's all turned on and I do not have HOME_USING_SPREADCYCLE enabled either.

Maybe I'm just hearing normal sounds? Just seems a bit loud compared to other movements it makes. Hmmm. :/

mtaylor819 added a commit to mtaylor819/Marlin_Ender3_SKR_Mini that referenced this pull request Dec 9, 2019
Enable stealthchop before homing 2209 MarlinFirmware#16153
@elementfoundry
Copy link
Contributor Author

@Hukuma1 - just what the drivers defaulted to when installed, no jumpers other than enabling uart and the x / y homing pins on the skr 1.3

Could be just the normal sound for homing on your machine.

@thinkyhead thinkyhead changed the title Enable stealthchop before homing 2209 Enable stealthChop for TMC2209 homing Dec 11, 2019
@teemuatlut
Copy link
Member

Do not merge.

@boelle
Copy link
Contributor

boelle commented Dec 11, 2019

why not?

@boelle boelle added the S: Don't Merge Work in progress or under discussion. label Dec 11, 2019
@elementfoundry
Copy link
Contributor Author

@teemuatlut - curious about the comment not to merge as well. can you share some insight into that? thanks.

@teemuatlut
Copy link
Member

teemuatlut commented Dec 12, 2019

Use the mechanisms that are already in place, like the sensorless_t struct.
Something like this

teemuatlut@7e43915

https://github.com/teemuatlut/Marlin/tree/tmc2209_save_mode

@thinkyhead
Copy link
Member

Use the mechanisms that are already in place, like the sensorless_t struct.

What is the best place to send users and developers for documentation on the TMCStepper API and its proper usage?

@thinkyhead
Copy link
Member

thinkyhead commented Dec 13, 2019

Use the mechanisms that are already in place, like the sensorless_t struct.

The reason that this PR is using direct calls to the M569 G-code is to ensure that X/X2, Y/Y2, and Z/Z2/Z3 are synchronized, and this logic is handled at the level of M569 because it is not handled at any lower level.

If a more direct method ought to be used to deal with these linked axes, then it might be useful to have this method formally defined in tmc_util.* so that any other methods that want to modify the X, Y, or Z axes as a whole can make use of it.

The maintainer of tmc_util.* is @teemuatlut since he is the only individual aware of the latest changes and requirements connected to TMCStepper. So I leave it to him to decide where and how to implement handling for multiple stepper drivers whose settings need to be linked together.

@thinkyhead
Copy link
Member

OK, so somebody just told me that sensorless homing should be done with stealthChop enabled for some TMC stepper driver models, but it should be disabled for others.

For each TMC stepper driver type, what are the most appropriate options to have enabled and disabled during sensorless homing?

Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>
@thinkyhead thinkyhead merged commit e5edbf9 into MarlinFirmware:bugfix-2.0.x Dec 19, 2019
@sl1pkn07
Copy link
Contributor

sl1pkn07 commented Dec 19, 2019

with TMC2130

Marlin/src/feature/tmc_util.cpp: In function 'bool tmc_enable_stallguard(TMC2209Stepper&)':
Marlin/src/feature/tmc_util.cpp:1041:12: error: 'stealthchop_was_enabled' was not declared in this scope
     return stealthchop_was_enabled;
            ^~~~~~~~~~~~~~~~~~~~~~~

@hammerhead2k2
Copy link
Contributor

@sl1pkn07 Same here with TMC2209 on Bigtreetech SKR 1.3

@sl1pkn07
Copy link
Contributor

thanks for confirm

philippniethammer pushed a commit to philippniethammer/Marlin that referenced this pull request Dec 21, 2019
Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>
christran206 pushed a commit to christran206/Marlin2.0-SKR-Mini-E3-1.2 that referenced this pull request Dec 30, 2019
Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>
webs1821 added a commit to webs1821/Marlin that referenced this pull request Jan 2, 2020
* [cron] Bump distribution date

* STM32F1 Flash-based EEPROM fixes (MarlinFirmware#16118)

* Disable PRINTCOUNTER in SKR Mini E3 examples (MarlinFirmware#16110)

* Fix compile error with disabled PIDTEMP (MarlinFirmware#16108)

* Wanhao D6 uses TINYBOY2 (MarlinFirmware#16117)

* Improve touch buttons behavior (MarlinFirmware#16109)

* Update AZSMZ LCD link (MarlinFirmware#16106)

* [cron] Bump distribution date

* Update 3DFabXYZ settings (MarlinFirmware#16139)

* [cron] Bump distribution date

* Fix controller and SD on Robin Nano (MarlinFirmware#16187)

* Correct MKS Robin Mini pins (MarlinFirmware#16178)

* Formalize DAC percent strings (MarlinFirmware#16176)

* Update Italian language (MarlinFirmware#16147)

* Update french (objects, retract...)

* Superscript 3 for mm3

* [cron] Bump distribution date

* Add MKS Robin Pro, MKS Robin Lite3 (MarlinFirmware#16163)

* Fix multiple servos with STM32 (MarlinFirmware#16151)

* Use error message !! hints (MarlinFirmware#16145)

* Update BTT comments for USB/SD Composite (MarlinFirmware#16130)

* MKS 12864 OLED pins for SGEN-L (MarlinFirmware#16188)

* Invert E dir of Geeetech A10 (MarlinFirmware#16149)

* Disable SD_CHECK_AND_RETRY in BTT E3 configs (MarlinFirmware#16143)

* Add a CI test for RAMBo + CNC (MarlinFirmware#16126)

* Onboard (always-on) pullups support (MarlinFirmware#16144)

* Tweak ExtUI Probeless Babystepping (MarlinFirmware#16177)

* Fix RAMBo CNC test

* Flsun QQ-S example config (MarlinFirmware#16204)

* Add MKS Robin Mini EEPROM defines (MarlinFirmware#16203)

* Fix compile error (macro substitution typo) (MarlinFirmware#16194)

* Update M503 MBL G29 report (MarlinFirmware#16199)

* Include Z in SCARA steps feedrate (MarlinFirmware#16193)

* Cardreader read/write open methods

* Tweak some config names

* Improve A20M config

* Move status screen defines

* Fix bad #ifdef (MarlinFirmware#16227)

* TOUCH_MI_DEPLOY_XPOS fallback to X_MIN_POS (MarlinFirmware#16226)

* Fix MKS SGen-L SD detect pin (MarlinFirmware#16224)

* Improve ESP32 HAL (EEPROM, watchdog) (MarlinFirmware#16228)

* Fix G28 debug line, M569 calls (MarlinFirmware#16213)

* Add SKR Mini E3 + Zonestar LCD warning (MarlinFirmware#16214)

* STM32 Touch UI timings, Longer onboard pullups (MarlinFirmware#16219)

* Update BTT002 platform (fixing SD init) (MarlinFirmware#16217)

* Define more FAN pins for GT2560 (MarlinFirmware#16235)

* Tweak E180 config

* Update product links

* [cron] Bump distribution date

* Add dev-2.1.x to 'mfinfo' script

* Move AutoBuildMarlin to its own repo

* [cron] Bump distribution date

* Tweak G34, fix a declaration

* Sanity-check Z_STEPPER_AUTO_ALIGN coordinates (MarlinFirmware#16231)

* Improve SKR mini E3 + Ender 3 settings (MarlinFirmware#16247)

* Tweak code formatting

* Allow TMC2209 to save/restore spreadCycle (MarlinFirmware#16153)

Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>

* Spindle/Laser pins for RADDS (MarlinFirmware#16119)

* Improve pulse timing and step reliability (MarlinFirmware#16128)

* BigTreeTech SKR v1.4 support (MarlinFirmware#16236)

* Followup to TMC2209 spreadcycle patch

* Remove obsolete TMC2209 comment

* HOME_USING_SPREADCYCLE is obsolete

Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>

* Use MYSERIAL0 (not SerialUSB) for Malyan LCD

* Followup for step timing (MarlinFirmware#16128)

* Fix broken M100_dump_routine

* Tweak sanity checks

* Update test scripts to error on unknown (MarlinFirmware#16229)

* Kossel Clear configuration (MarlinFirmware#16198)

* Move pins debug condition

* Use Github Actions for CI, date bump (MarlinFirmware#16269)

* Fix HAL_STM32 + Arduino IDE SoftwareSerial conflict (MarlinFirmware#16266)

* Improve Anet A6 config (MarlinFirmware#16280)

* Fix G34 with Z_DUAL_STEPPER_DRIVERS compile (MarlinFirmware#16274)

* Fix planner compile error (MarlinFirmware#16272)

* Fix axis CS sanity check (MarlinFirmware#16271)

* Add Tevo Nereus (w/ Robin Nano) config (MarlinFirmware#16207)

* Don't test certain changes

* Reset runout.ran_out on resume (MarlinFirmware#16230)

* Step timing cleanup and rounding fix (MarlinFirmware#16258)

* Add MRR_ESPA/_ESPE (ESP32) boards (MarlinFirmware#16238)

* Add Ender-5 Pro config (MarlinFirmware#16221)

* Add FLYBOARD (STM32F407ZG) (MarlinFirmware#16257)

* Fix STM32 flush of TX (used by UBL) (MarlinFirmware#16197)

* Flash leveling (for some STM32) (MarlinFirmware#16174)

* Some ESP32 patches (MarlinFirmware#16297)

* MKS SGen-L pins EEBF or EFBF scheme (MarlinFirmware#16296)

* Release version 2.0.0

* Add Rumba32 support for PIO (MarlinFirmware#16202)

* MKS Robin 2 (STM32F407ZE) base support (MarlinFirmware#16270)

* Update Czech language (MarlinFirmware#16305)

* Sync SKR E3 configs (MarlinFirmware#16301)

* Add NOZZLE_AS_PROBE (no probe offsets) (MarlinFirmware#15929)

* Version 2.0.1

* Update build status url

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: randellhodges <rhodges@taxfodder.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>
Co-authored-by: Antti Andreimann <anttix@users.sourceforge.net>
Co-authored-by: thisiskeithb <13375512+thisiskeithb@users.noreply.github.com>
Co-authored-by: Tanguy Pruvot <tpruvot@users.noreply.github.com>
Co-authored-by: Luu Lac <45380455+shitcreek@users.noreply.github.com>
Co-authored-by: Alain Martel <alain74martel@gmail.com>
Co-authored-by: Anders Sahlman <57940217+AndersSahlman@users.noreply.github.com>
Co-authored-by: dagorel <37673727+dagorel@users.noreply.github.com>
Co-authored-by: Giuliano Zaro <3684609+GMagician@users.noreply.github.com>
Co-authored-by: MS1987 <lms228@163.com>
Co-authored-by: MangaValk <patrickvalkmanga@hotmail.com>
Co-authored-by: André Kjellstrup <andre.kjellstrup@gmail.com>
Co-authored-by: Tobias Schürg <tobiasschuerg@gmail.com>
Co-authored-by: Jeff Eberl <jeffeb3@gmail.com>
Co-authored-by: ManuelMcLure <manuel@mclure.org>
Co-authored-by: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com>
Co-authored-by: iain MacDonnell <github@dseven.org>
Co-authored-by: Bo Herrmannsen <bo.herrmannsen@gmail.com>
Co-authored-by: Luc <8822552+luc-github@users.noreply.github.com>
Co-authored-by: danym21 <54744475+danym21@users.noreply.github.com>
Co-authored-by: chzj333 <53591189+chzj333@users.noreply.github.com>
Co-authored-by: Vertabreaker <opyrus@hotmail.com>
Co-authored-by: Moshi Binyamini <MoshiBin@users.noreply.github.com>
Co-authored-by: salami738 <24863070+salami738@users.noreply.github.com>
Co-authored-by: elementfoundry <57408038+elementfoundry@users.noreply.github.com>
Co-authored-by: teemuatlut <teemu.mantykallio@live.fi>
Co-authored-by: Mario Costa <mario.silva.costa@gmail.com>
Co-authored-by: BigTreeTech <38851044+bigtreetech@users.noreply.github.com>
Co-authored-by: Markus Towara <mtowara@gmail.com>
Co-authored-by: FLYmaker <49380822+FLYmaker@users.noreply.github.com>
Co-authored-by: ferengi82 <christian.maurer@gmx.eu>
Co-authored-by: petrzjunior <junior@zahradnik.cz>
webs1821 pushed a commit to webs1821/Marlin that referenced this pull request Jan 2, 2020
Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>
griehsler pushed a commit to griehsler/Marlin that referenced this pull request Jan 30, 2020
Co-Authored-By: teemuatlut <teemu.mantykallio@live.fi>
@lonelymyp
Copy link

lonelymyp commented Sep 7, 2020

Is there a possibility that when parking at a certain speed will play a role?
for example parking at 5 mm/s when # define Z_HYBRID_THRESHOLD 3 // [mm/s]

It looks like HYBRID_THRESHOLD must be higher than the parking speed for parking to work correctly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants