-
Notifications
You must be signed in to change notification settings - Fork 28
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
grblHAL couldn't communicate with stepper driver on BTT SKR mini e3 v2.0 (and other problems) #58
Comments
update: I tried this, just to see what happens, and now the steppers show a very odd behavior, similar to the mentioned post. I also swapped the Y and Z axes pins in the code. Does anyone have a clue where to start troubleshooting? |
31 is UART3 with alt. 1 pin mappings. Which is used to communicate with the drivers according to the schematic.
This is not enough, you will have to swap the driver address in the Trinamic datagrams as well if Y and Z has different settings. Did you try this patch? |
thank you, that makes sense :)
Yes, I already tried that. With this M122 reports the status of the motors, but the odd behavior didn't stop.
Allright, I'll try this tomorrow and see where I can change the address. |
Are you sure the motor wiring is correct? Here is the status output I get, with a STM32F446 board, and the motor is running fine:
|
Tip: here is how I change the address when drivers have designated UART ports. You can reference the axis number in the motors parameter to switch the address around. |
I don't understand how you changed the address in your linked file, but maybe you can tell me if my code does the same work:
The fault lay in several faulty wires. Today I got some new ones from a friend and now it works just fine. Thank you anyway for the troubleshooting :) |
I changed the address by modifying the config parameter (config->address, passed by reference), the motor parameter is passed by value and cannot be changed. axis = id for the primary axis motor, axis != id for the secondary. The address range for TMC2209 is 0 - 3 and has to be set in the datagrams when the drivers share a single UART. The example I provided sets the address to 0 for all drivers since each driver has a separate UART channel (the two address pins on the driver chips then are set to 0 for all). |
That's interesting, because I seem to get the right motor even without this or your modification of code for STM32F4 boards. For example when I unplug the Y-axis motor (former z axis), M122 reveals that the Y-axis motor is actually unplugged (variables ola, olb):
I tested this with all 3 motors, and they were all referenced right. Or is there something I didn't understand yet? I already read the TMC2209 datasheets and studied the grblHAL code and the schematic of the btt board. |
If you look closely Y and Z are addressed as 2 and 1 respectively. So perhaps the schematic is correct and Y and Z should be swapped as default? I do not have a board so I cannot verify this. FYI the M122 ola/olb status can only be detected reliably if M122 is sent when the motors are running. |
I have a fresh cloned repository (with all submodules of course), but I ran into some issues.
The goal:
the problems:
What I did in the code so far:
#define BOARD_BTT_SKR_MINI_E3_V20
#define N_AXIS 4 // Number of axes
This is my console log (incl. settings):
in
btt_skr_mini_e3_2.0_map.h
SERIAL1_PORT is defined with 31. Why is this 31?When I change it to 3 (2 also seems to work), the motors start spinning, but not every command is being executed. log:
After a couple of seconds the board keeps on working... What could be the problem here?
The text was updated successfully, but these errors were encountered: