M20 is a member of a class of M-codes which are used to access and manage the contents of the connected Smoothie's SD Card

Issuing an M20 causes the contents of smoothies SD card to be output to its serial port. A properly connected host will in turn receive and display the Smoothies SDcard directory to its console.

To verify and debug your Smoothie's serial connection try this: http://smoothieware.org/debug:computer-sees-board

{ARTHUR: Special instructions for Ethernet connections?}


The command is used as such : 

M20  [[S]|[[P|]]]

Which means: output the contents of SD card to serial port while using to define the format and [[P|] defines the directory to list


Parameter Usage Example
Shift Style: Defines the format used to present the output M20 S0
P Directory: Defines the directory that will be listed M20

The Shift parameter when used with Smoothie supports Style 0 only, which is the default. If you do not include it will assume [[S0|] The P parameter is not supported by Smoothie. Smoothie defaults to the SDcards root directory.

If your SDcard contents was:

  • config.txt
  • firmware.cur
  • Readme.txt
  • myGgcode.gcode

This means if you command : 

M0 S0 


M0 S0 P1 


M0 S1 P1 


M0 P2 

….they will all print the following to the connected console: Ok config.txt firmware.cur Readme.txt myGgcode.gcode


The M20 command requires no special configuration settings

Further reading