-
Notifications
You must be signed in to change notification settings - Fork 8
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
Y axis sensorless houming failed #21
Comments
Do you have homing feedrates per axis enabled? If so Y differ from X?
|
It's not enabled. Speed is the same. |
I do not have hardware for testing, and the code looks ok. What happens when it fails. Alarm? Freeze? ...? I see in the datashet that a pulse is output on stall, since detection is done by polling the DIAG signals it could be that it is missed? AFAIKT there is no mention of how long the pulse is in the datasheet so it might be a plausible explanation if the Y hits moments after the X. Does it fail in the same way if you move Y a bit further away from the end than X before homing? |
Thinking about this a bit more - perhaps having different pull-off distances for X and Y will solve the issue? The homing pullof plugin can be used to configure that. |
no difference which axis come first to the stopper. X finishing location move and waiting for Y Pull-off distance should not influence - Y axis failed on first locating move. |
Can you scope the DIAG signal from Y?
|
I have just committed an update to the motor plugin where I have refactored the homing code, I am still not able to test it in a machine but by simulating stalls I can see pulses on the outputs of the Y driver when both X and Y is homed in the same cycle. Finally I have added an option to enable SR-latching of the stall output, this enables interrupts for the limit inputs while homing and latches on the first edge. Enable by uncommenting this line. I have only bench tested this so nice if you would check it out. |
Нou are incredible @terjeio ! in case 2 axis are moved together - no pulse at all Tested latest IoSender - graph is more readable and shows plot during homing. It's a bit confusing for the first time the lower SG value are on the top, so adding the scale should be helpful. I'm still preparing to build firmware by myself - little bit lost where to configure build parameters Regarding TMC driver parameters - I need to find TMC configuration for my setup - at least now X-axis works better in StelthChop, Z-inly in CoolStep , but driver config always dropping it to CoolStep on reset. |
In STM32F401 folder I see LD-script STM32F407VGTX_BL48K_FLASH.ld which is most close to MKS robin board, but My board is MKS Robin Nano v3.1 with STM32F407VET whish is 512Kb flash - should I re-build .ld for this CPU? |
Looking again at the schematic I see that the driver DIAG outputs when linked to the MCU via J17 are connected via a pullup resistor and a resistor in series with the MCU input, there is also a capacitor to ground for filtering - all without values. The limit switches inputs are wired together with the DIAG inputs which will be an issue if they are connected and of NC type or three-wire and switching between 5V and GND. The TMC2209 driver chip (and SilentStepStick drivers I have) has push-pull output for the DIAG signal unlike other TMC drivers that has open drain outputs. So the TMC2209 drivers will likely not be happy with having the DIAG pin driven by any externally applied voltage. Anyway, I assume you do not have limit switches connected and driving the inputs while trying sensorless homing...
This means the homing routine is stopping the motor as it should. When I test I get repeated pulses of some milliseconds in length since I have not wired the DIAG output to the limit input. I get these pulses even when homing two axes at the same time.
It is on my todo list - there should be a line for the current StallGuard limit setting too.
For most configurations Inc/my_machine.h is the main file to edit. grbl/config.h is for configuring the core and must be edited if stuff like > 3 axes are required - unless the options needed are passed from either a platformio.ini file or compile command line arguments (which can be defined in the STM32CubeIDE UI). Defaults for plugins like the motor plugin can be added to Inc/my_machine.h if they are overridable (enclosed in #ifndef ... #endif or commented out).
If compiled with
No, not needed. If you program with a SD card then use the 8MHz 48K bootloader version.
Then select the build from the "hammer" tool dropdown: |
Finally I ended up with new linker script, board config and machine settings. I'm not sure TMC2209 are recognized and configured accordingly. it's probable configured as different TMC chip Robin_TMC2209.zip
and no any messages about TMC2209 |
Found it, a typo in the top level configuration file for the Web Builder for the R sense value.
This is due to the incorrect R sense value.
No way, initialisation would fail and you would not get the Trinamic tuner tab in ioSender. You can see which chip is actually configured in the top of the M122 output:
The incorrect R sense value allowed higher current settings than should be possible.
Add
Vref (vsense) displayed is dependent on the current setting - see the M122 output above.
A typo - you must have a newer compiler than me or with different settings because I do not get it. |
Single axis manual houming for x,y,z with TMC2209 successfull,
but trying to execute $H no home all axes - only Y not reacting on stall state.
The same setup successfully houming all axes if Y using normal sensor, X and Z sensorless
Assuming it's error in stallguard deporting configuration before houming
It's also not clear which mode is it using for houming - StelthChop or CoolStep
The text was updated successfully, but these errors were encountered: