---
tag: m0032
title: Select and Start
brief: Begin an SD print from a file.
author: thinkyhead

group: sdcard
requires: SDSUPPORT

codes: [ M32 ]

notes:
- Requires [`SDSUPPORT`](/docs/configuration/configuration.html#sd-card)
- This is a seldom-used beta feature that needs more testing and use-cases.

parameters:

- tag: P
  optional: true
  description: Sub-program type.
  type: int
  values:
  - tag: 0
    description: (Default) Normal file start. The current file position is not saved or restored.
  - tag: 1
    description: Sub-program mode. The current file position is saved and restored after the given file completes.

- tag: S
  optional: true
  description: Starting file offset
  values:
  - tag: filepos
    type: int

examples:

- pre: Select and start a file at offset 5022.
  code: M32 S5022 !/boats/sailboat.gco

- pre: Select and start a file from within G-code.
  code: M32 P !/models/lgbust.gco#
  post: The `#` suffix is needed when using `P` to "stop buffer pre-reading" so no commands after `M32` will go into the buffer until after it returns.

---

The `M32` command exists to allow G-code to load other G-code files and run them as sub-programs. This can be useful to change the start / end G-code for a batch of files without having to edit them all.

For legacy reasons `M32` uses '`!`' (and '`#`') to delimit the filepath parameter. The filepath must be the last parameter.
