What M140 / M190 means

Starting bed heat early can reduce total preparation time because the printer can perform other safe setup work while the larger thermal mass warms. M140 starts that process asynchronously. M190 is normally placed at the point where printing should not proceed until the bed is ready.

As with hotend commands, firmware controls the exact S/R waiting behavior, allowable heater index and target range. The generated file should not be treated as a substitute for thermal-runaway protection, a correctly configured sensor or the machine manufacturer's operating limits.

Syntax and parameters

M140 S<temperature>
M190 S<temperature>
M190 R<temperature>
S

Bed target; common Marlin behavior waits for heating but not cooling when used with M190.

R

M190 target that can wait while heating or cooling where supported.

I

Heater index on firmware and builds that support multiple heated beds.

Practical examples

Start bed heating

M140 S60
M104 S200

Starts bed and nozzle heating without blocking the next setup commands.

Wait for the bed

M190 S60
G28

Waits for the configured bed condition, then homes the printer.

Firmware context

SystemStatusWhat changes
MarlinCommonStandard heated-bed target and wait commands.
KlipperCommonSupports slicer-compatible forms; native heater commands can be used in macros.
RepRapFirmwareCheck dialectSupports bed temperature control with firmware-specific heater mapping and wait behavior.
CNC controllersNot applicableHeated-bed M-codes are part of 3D-printer dialects, not generic CNC G-code.

What this viewer can show

Recognized, not shown

The viewer recognizes bed-temperature commands, but it does not show temperature targets or add heating time to the print-time estimate.

Common mistakes

  • Waiting before starting other heaters may increase preparation time unnecessarily.
  • A commanded temperature does not prove the machine can reach or safely hold it.
  • Multi-bed indices and cooling waits differ by firmware and configuration.

Primary sources

This page is an original explanation, reviewed against the firmware documentation below. Always confirm commands against the firmware and configuration on the machine that will execute them.