---
tag: m0122
title: TMC Debugging
brief: Get TMC Debug Info
author: mbuc

group: debug
since: 1.1.7

codes: [ M122 ]

notes:
- Requires at least one [Trinamic stepper driver](/docs/hardware/tmc_drivers.html#supported-tmc-drivers-and-features) with SPI or UART connection.
- '`TMC_DEBUG` is no longer required to enable this G-code in Marlin 2.x, but enabling it produces an extended report.'
- Responses of all `LOW` (`00:00:00:00`) or all `HIGH` (`FF:FF:FF:FF`) are signs of a communication problem.<br/>
  See [TMC Troubleshooting](/docs/hardware/tmc_drivers.html#troubleshooting) for further information.

parameters:

- tag: I
  since: 2.0.6
  type: flag
  optional: true
  description: Flag to re-initialize stepper drivers with current settings.

- tag: X
  type: flag
  optional: true
  description: Target X driver(s) only.

- tag: Y
  type: flag
  optional: true
  description: Target Y driver(s) only.

- tag: Z
  type: flag
  optional: true
  description: Target Z driver(s) only.

- tag: E
  type: flag
  optional: true
  description: Target E driver(s) only.

- tag: V
  requires: TMC_DEBUG
  type: flag
  optional: true
  description: Report raw register data. Refer to the datasheet to decipher the report.

- tag: S
  requires: TMC_DEBUG, MONITOR_DRIVER_STATUS
  optional: true
  description: Flag to enable/disable continuous debug reporting.
  values:
  - type: bool

- tag: P
  requires: TMC_DEBUG, MONITOR_DRIVER_STATUS
  optional: true
  description: Interval between continuous debug reports, in milliseconds.
  values:
  - tag: ms
    type: int

examples:

- pre: 'Enable debugging output:'
  code: M122 S1

- pre: 'Get all (supported) Trinamic driver states:'
  code: |
    > M122
                      X       Y
    Enabled           false   false
    Set current       850     850
    RMS current       826     826
    MAX current       1165    1165
    Run current       26/31   26/31
    Hold current      13/31   13/31
    CS actual         13/31   13/31
    PWM scale 41      41
    vsense            1=.18   1=.18
    stealthChop       true    true
    msteps            16      16
    tstep             1048575 1048575
    pwm
    threshold         0       0
    [mm/s]            -       -
    OT prewarn        false   false
    OT prewarn has
    been triggered    false   false
    off time          5       5
    blank time        24      24
    hysterisis
    -end              2       2
    -start            3       3
    Stallguard thrs   0       0
    DRVSTATUS X       Y
    stallguard
    sg_result         0       0
    fsactive
    stst
    olb
    ola
    s2gb
    s2ga
    otpw
    ot
    'Driver registers:'
      X = 0x80:0D:00:00
      Y = 0x80:0D:00:00

---

Do a communication check for configured TMC drivers. Trinamic drivers that support this feature are TMC2130, TMC2160, TMC2208, TMC2209, TMC2660, TMC5130, and TMC5160.

- With no parameters, this command returns the current settings for all installed and supported Trinamic stepper drivers.
- Send `M122 I` to re-initialize drivers after a late power-on. Use `S[0|1]` to enable/disable continuous debugging output.
