Skip to content

Custom C gcodes

Andrew edited this page Nov 5, 2025 · 6 revisions

This firmware implements some special custom C-codes to allow you to configure parameters not available in normal standard Marlin G-codes. You can include them in your G-code scripts or send them to the printer. You need to use a host/terminal with support for non-standard G-codes or create a .gcode file and "print" it.

Note: A special version of Pronterface is needed to support non-standard G-codes: https://github.com/mriscoc/Pronterface-PFEd/releases/tag/PFEd-20230517

  • C10 : Mark the g-code file as a Configuration file to avoid confirm to print and print done dialogs (at least one space is currently required after the C10).
  • C11 En Rn Gn Bn : colorize UI elements (C11 E0 to update the screen)
  • C29 Ln Rn Fn Bn Nn Tn : set probing mesh inset (Left, Right, Front, Back) in mm. N amount of grid points of the mesh leveling and T the probing temperature (T0 doesn't change the current bed temperature)
  • C100 Xn Yn Zn : setup minimum physical limits
  • C101 Xn Yn Zn : setup maximum physical limits
  • C102 Xn Yn : setup bed size (can't be larger than physical limits)
  • C104 U1 Tn : unlock the maximum hotend temperature temperature to ###°C (limited by thermistor calibration table)
    CAUTION! : the stock hotend doesn't support more than 260°C due to the PTFE degradation.
  • C108 : cancel screens waiting for user simple confirmation
  • C125 Xn Yn Zn : setup the park position
  • C250 Pn : enable or disable preview screen (needs HAS_GCODE_PREVIEW)
  • C412 Mn : set run-out sensor active state (M0:LOW, M1:HIGH, M2:MOTION)
  • C510 Un : lock/unlock the screen (C510 U1 to unlock)
  • C562 En : invert the Extruder (E1 to invert)
  • C810 An Bn Cn Dn En : sets up the toolbar shortcuts A..E to functions 0..n (0 disable that shortcut)
  • C851 Sn [Zn] Mn : Set probe Z feed speed (S) in mm/min, Multiple probing (Mn>1) or disables it (M0), in manual mesh version, Z parameter can be used to set a manual Z-offset.

In UBL versions the mesh parameters are saved in separate EEPROM mesh slots, so to save them use G29 S# when "#" is a slot number. After changing any parameter, send an M500 to save to EEPROM and make it permanent, then reboot the printer to be sure to take any physical change.

Clone this wiki locally