Which UART communication is supported by Klipper?

Basic Information:

Printer Model:
MCU / Printerboard:
klippy.log

Fill out above information and in all cases attach your klippy.log file. Pasting your printer.cfg is not needed

Describe your issue:

Which UART modes does Klipper support? TMC2225 datasheet lists two, one to one (read/write) and one to many (write only)

I’m just guessing, but this:

https://www.klipper3d.org/G-Codes.html?h=dump#dump_tmc

suggests to me that klipper uses read/write access

DUMP_TMC is an external tool. What I wonder is if Klipper reads from TMC before, during or after printing? Or, in other words does it ever check what registers are set?

If I understood your question correctly, I can tell you that Klipper supports both. For example, the Duet3 Mini 5+ has up to 7 TMC2209 drivers all sitting on the same UART bus and using logical addressing. The TMC drivers support up to four individual addresses per bus, so an additional chip selection is required if more than 4 drivers are on the same bus. This is accomplished by using uart_address for logical addressing and select_pins for chip selection. This also works whether a dedicated tx_pin is used or not, in other words a single or dual wire works equally well.

Klipper communicates with the TMC drivers continuously. This is used, for example, for error state checks, snesorless homing, etc.

Klipper requires read/write access to the tmc drivers. So, setups that are arranged for “write only” access are not supported.

-Kevin