Have you read Marlin's Code of Conduct? By filing an Issue, you are expected to comply with it, including treating everyone with respect: https://github.com/MarlinFirmware/Marlin/blob/1.1.x/.github/code_of_conduct.md
Do you want to ask a question? Are you looking for support? Please don't post here. Instead please use the Marlin Firmware forum at http://forums.reprap.org/list.php?415 or the Marlin Facebook Group https://www.facebook.com/groups/1049718498464482/.
Before filing an issue be sure to test the 1.1 and/or 2.0 "bugfix" branches to see whether the issue is already addressed.
If I try to use multiple TMC2208 drivers (X, Y & Z) the LCD displays
TMC Connection Error. M122 reports the following:
X Y Z Enabled false false false Set current 600 600 600 RMS current 1049 581 1049 MAX current 1479 819 1479 Run current 18/31 18/31 18/31 Hold current 9/31 9/31 9/31 CS actual 0/31 9/31 0/31 PWM scale 0 11 0 vsense 0=.325 1=.18 0=.325 stealthChop false true false msteps 256 16 256 tstep 0 max 0 pwm threshold 98 98 658 [mm/s] 1613.52 100.85 48.06 OT prewarn false false false OT prewarn has been triggered false false false off time 0 4 0 blank time 16 24 16 hysteresis -end -3 2 -3 -start 1 1 1 Stallguard thrs DRVSTATUS X Y Z stst X olb ola s2gb s2ga otpw ot 157C 150C 143C 120C s2vsa s2vsb Driver registers: X 0x00:00:00:00 Bad response! Y 0xC0:09:00:00 Z 0x00:00:00:00 Bad response! Testing X connection... Error: All LOW Testing Y connection... OK Testing Z connection... Error: All LOW
I know the drivers are working because if I switch out the X or Z driver with the Y driver, the driver UART works. But if I use a driver in the X or Z position, those are returning 0x00:00:00:00. Even though the UART connection does not work, the drivers do drive the motors.
I'm using cb643d87df16dd54d6e7779fe8565c9be04ec951 compiled with PIO for the Fysetc F6, the original Watterott TMC2208 Silentstepsticks (jumper closed) and TMCStepper 0.2.3. The board allows for 'plug and play' use of the TMC2208, just one jumper on the board needs to be set (and the jumper on the stepsticks need to be closed).
I think it might be because of multiple drivers trying to use the same UART. But I do not know enough about this stuff at all. Or could the board be at fault?
Having the same problem: Using an MKS Gen L with 5x TMC2208 in UART none of the drivers gets recognized, all drivers report ALL LOW. With 1.1.9 everything worked fine. I copied the pin definitions from my 1.1.9 pins_ramps.h file into my config_advanced like this:
#if AXIS_IS_TMC(X) #define X_CURRENT 800 //MS (mA) RMS current. Multiply by 1.414 for peak current. up to 950 with 1.5A steppers #define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing #define X_MICROSTEPS 16 // 0..256 #define X_RSENSE 0.11 #define X_CHAIN_POS -1 // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ... #define X_SERIAL_TX_PIN 40 //MS #define X_SERIAL_RX_PIN 63 //MS #endif #if AXIS_IS_TMC(X2) #define X2_CURRENT 800 #define X2_CURRENT_HOME X2_CURRENT #define X2_MICROSTEPS 16 #define X2_RSENSE 0.11 #define X2_CHAIN_POS -1 #endif #if AXIS_IS_TMC(Y) #define Y_CURRENT 800 #define Y_CURRENT_HOME Y_CURRENT #define Y_MICROSTEPS 16 #define Y_RSENSE 0.11 #define Y_CHAIN_POS -1 #define Y_SERIAL_TX_PIN 59 //MS #define Y_SERIAL_RX_PIN 64 //MS #endif #if AXIS_IS_TMC(Y2) #define Y2_CURRENT 800 #define Y2_CURRENT_HOME Y2_CURRENT #define Y2_MICROSTEPS 16 #define Y2_RSENSE 0.11 #define Y2_CHAIN_POS -1 #endif #if AXIS_IS_TMC(Z) #define Z_CURRENT 800 #define Z_CURRENT_HOME Z_CURRENT #define Z_MICROSTEPS 16 #define Z_RSENSE 0.11 #define Z_CHAIN_POS -1 #define Z_SERIAL_TX_PIN 19 //MS default 42 #define Z_SERIAL_RX_PIN 11 //MS default 65 #endif #if AXIS_IS_TMC(Z2) #define Z2_CURRENT 800 #define Z2_CURRENT_HOME Z2_CURRENT #define Z2_MICROSTEPS 16 #define Z2_RSENSE 0.11 #define Z2_CHAIN_POS -1 #endif #if AXIS_IS_TMC(Z3) #define Z3_CURRENT 800 #define Z3_CURRENT_HOME Z3_CURRENT #define Z3_MICROSTEPS 16 #define Z3_RSENSE 0.11 #define Z3_CHAIN_POS -1 #endif #if AXIS_IS_TMC(E0) #define E0_CURRENT 800 #define E0_MICROSTEPS 16 #define E0_RSENSE 0.11 #define E0_CHAIN_POS -1 #define E0_SERIAL_TX_PIN 42 //MS default 44 #define E0_SERIAL_RX_PIN 65 //MS default 66 #endif #if AXIS_IS_TMC(E1) #define E1_CURRENT 800 #define E1_MICROSTEPS 16 #define E1_RSENSE 0.11 #define E1_CHAIN_POS -1 #define E1_SERIAL_TX_PIN 44 //MS default -1 #define E1_SERIAL_RX_PIN 66 //MS default -1** #endif
you can see I changed some pins to make all 5 drivers work but I made sure all RX pins are interrupt capable and since they have worked with Marlin 1.1.9 but with Marlin 2.0 none of them reports a connection.
I tried fiddling with the
ADVANCED_OK as suggested by @tmaniac and even with
RX_BUFFER_SIZE but it did not change anything.
Running the drivers in standalone mode now for the time being to make use of Marlin 2.0 but I'd like to be able to use
HYBIRD_THRESHOLD etc. some time...