SKR Mini E3 V2.0, Marlin 2.0.7
To build without errors with TMC2209,s selected for X,Y,Z and E0 I had to comment out the following in trinamic.ccp. without the change, enabling any more than 1 driver resulted in an error.
Any thoughts?
//SA_NO_TMC_HW_C(X);SA_NO_TMC_HW_C(X2);
//SA_NO_TMC_HW_C(Y);SA_NO_TMC_HW_C(Y2);
//SA_NO_TMC_HW_C(Z);SA_NO_TMC_HW_C(Z2);SA_NO_TMC_HW_C(Z3);SA_NO_TMC_HW_C(Z4);
//SA_NO_TMC_HW_C(E0);SA_NO_TMC_HW_C(E1);SA_NO_TMC_HW_C(E2);SA_NO_TMC_HW_C(E3);SA_NO_TMC_HW_C(E4);SA_NO_TMC_HW_C(E5);SA_NO_TMC_HW_C(E6);SA_NO_TMC_HW_C(E7);
Not a error, you have a configuration problems which marlin now catches.
You have TMC2209's all of which share one serial port (this is how this board was designed) so you need to set corect unique slave addresses to each stepper driver.
Ie you need You need the following in Configuration_adv.h
#define X_SLAVE_ADDRESS 0
#define Y_SLAVE_ADDRESS 2
#define Z_SLAVE_ADDRESS 1
#define E0_SLAVE_ADDRESS 3
@ellensp Thanks for clearing that up for me. I have never come across this issue before. Made the changes and it built without errors.
Many have this issue and M122 says everything is fine, but what is really happening is all TMC2209's setting for X,Y,Z and E all get applied to slave 0. M122 also only gets all data from slave 0, The other TMCs run with power on defaults.
Thus this test was added to catch this issue as many don't know about this setting.
@ellensp sorry to bother you, but is there a reason behind the order they are assigned? As why they are not just 0,1,2,3 as opposed to 0,2,1,3 Thanks again for being so helpful.
@Portzal that is just how they are wired on the board. I suspect that was a mistake when designing the board, and it wasn’t worth fixing.
Most helpful comment
Not a error, you have a configuration problems which marlin now catches.
You have TMC2209's all of which share one serial port (this is how this board was designed) so you need to set corect unique slave addresses to each stepper driver.
Ie you need You need the following in Configuration_adv.h