Skip to content


Visit for information related to this tag and others. We look forward to assisting in your tech projects with our in-depth knowledgebase…


For those of you, like me, who are into 3D printing, here is a quick, and VERY helpful set of marlin gcodes for your Marlin firmware. It will help you when you have to diagnose the errors on-screen, and it will help you even more, if you use the command sets through octoprint. Now onto the latest GCode as of Marlin 2.0.5

G0-G1: Linear Move
G2-G3: Arc or Circle Move
G4: Dwell
G5: Cubic spline
G10: Retract
G11: Recover
G12: Clean the Nozzle
G17-G18: CNC Workspace Planes
G20: Inch Units
G21: Millimeter Units
G26: Mesh Validation Pattern
G27: Park toolhead
G28: Auto Home
G29: Bed Leveling
G29: Bed Leveling (3-Point)
G29: Bed Leveling (Linear)
G29: Bed Leveling (Manual)
G29: Bed Leveling (Bilinear)
G29: Bed Leveling (Unified)
G30: Single Z-Probe
G31: Dock Sled
G32: Undock Sled
G33: Delta Auto Calibration
G34: Z Steppers Auto-Alignment
G38.2-G38.3: Probe target
G42: Move to mesh coordinate
G53: Move in Machine Coordinates
G54-G55: Workspace Coordinate System
G60: Save Current Position
G61: Return to Saved Position
G76: Probe temperature calibration
G80: Cancel Current Motion Mode
G90: Absolute Positioning
G91: Relative Positioning
G92: Set Position
G425: Backlash Calibration
M0-M1: Unconditional stop
M3: Spindle CW / Laser On
M4: Spindle CCW / Laser On
M5: Spindle / Laser Off
M16: Expected Printer Check
M17: Enable Steppers
M18-M84: Disable steppers
M20: List SD Card
M21: Init SD card
M22: Release SD card
M23: Select SD file
M24: Start or Resume SD print
M25: Pause SD print
M26: Set SD position
M27: Report SD print status
M28: Start SD write
M29: Stop SD write
M30: Delete SD file
M31: Print time
M32: Select and Start
M33: Get Long Path
M34: SDCard Sorting
M42: Set Pin State
M43: Debug Pins
M43 T: Toggle Pins
M48: Probe Accuracy Test
M7-M8: Coolant Controls
M73: Set Print Progress
M75: Start Print Job Timer
M76: Pause Print Job
M77: Stop Print Job Timer
M78: Print Job Stats
M80: Power On
M81: Power Off
M82: E Absolute
M83: E Relative
M85: Inactivity Shutdown
M92: Set Axis Steps-per-unit
M100: Free Memory
M104: Set Hotend Temperature
M105: Report Temperatures
M106: Set Fan Speed
M107: Fan Off
M108: Break and Continue
M109: Wait for Hotend Temperature
M110: Set Line Number
M111: Debug Level
M112: Emergency Stop
M113: Host Keepalive
M114: Get Current Position
M115: Firmware Info
M117: Set LCD Message
M118: Serial print
M119: Endstop States
M120: Enable Endstops
M121: Disable Endstops
M122: TMC Debugging
M125: Park Head
M126: Baricuda 1 Open
M127: Baricuda 1 Close
M128: Baricuda 2 Open
M129: Baricuda 2 Close
M140: Set Bed Temperature
M141: Set Chamber Temperature
M145: Set Material Preset
M149: Set Temperature Units
M150: Set RGB(W) Color
M155: Temperature Auto-Report
M163: Set Mix Factor
M164: Save Mix
M165: Set Mix
M166: Gradient Mix
M190: Wait for Bed Temperature
M191: Wait for Chamber Temperature
M200: Set Filament Diameter
M201: Set Print Max Acceleration
M203: Set Max Feedrate
M204: Set Starting Acceleration
M205: Set Advanced Settings
M206: Set Home Offsets
M207: Set Firmware Retraction
M208: Firmware Recover
M209: Set Auto Retract
M211: Software Endstops
M217: Filament swap parameters
M218: Set Hotend Offset
M220: Set Feedrate Percentage
M221: Set Flow Percentage
M226: Wait for Pin State
M240: Trigger Camera
M250: LCD Contrast
M260: I2C Send
M261: I2C Request
M280: Servo Position
M281: Edit Servo Angles
M290: Babystep
M300: Play Tone
M301: Set Hotend PID
M302: Cold Extrude
M303: PID autotune
M304: Set Bed PID
M350: Set micro-stepping
M351: Set Microstep Pins
M355: Case Light Control
M360: SCARA Theta A
M361: SCARA Theta-B
M362: SCARA Psi-A
M363: SCARA Psi-B
M364: SCARA Psi-C
M380: Activate Solenoid
M381: Deactivate Solenoids
M400: Finish Moves
M401: Deploy Probe
M402: Stow Probe
M403: MMU2 Filament Type
M404: Set Filament Diameter
M405: Filament Width Sensor On
M406: Filament Width Sensor Off
M407: Filament Width
M410: Quickstop
M412: Filament Runout
M413: Power-loss Recovery
M420: Bed Leveling State
M421: Set Mesh Value
M422: Set Z Motor XY
M425: Backlash compensation
M428: Home Offsets Here
M486: Cancel Objects
M500: Save Settings
M501: Restore Settings
M502: Factory Reset
M503: Report Settings
M504: Validate EEPROM contents
M524: Abort SD print
M540: Endstops Abort SD
M569: Set TMC stepping mode
M575: Serial baud rate
M600: Filament Change
M603: Configure Filament Change
M605: Dual Nozzle Mode
M665: Delta Configuration
M665: SCARA Configuration
M666: Set Delta endstop adjustments
M666: Set dual endstop offsets
M701: Load filament
M702: Unload filament
M710: Controller Fan settings
M851: XYZ Probe Offset
M852: Bed Skew Compensation
M871: Probe temperature config
M900: Linear Advance Factor
M906: TMC Motor Current
M907: Set Motor Current
M908: Set Trimpot Pins
M909: DAC Print Values
M910: Commit DAC to EEPROM
M911: TMC OT Pre-Warn Condition
M912: Clear TMC OT Pre-Warn
M913: Set Hybrid Threshold Speed
M914: TMC Bump Sensitivity
M915: TMC Z axis calibration
M928: Start SD Logging
M997: Firmware update
M999: STOP Restart
M7219: MAX7219 Control
T0-T1: Select Tool


This guide will be specific to the setup for my CR10 S5 with the SKR 1.4 Turbo board

Once I build the firmware in VSCode, I needed an easy way to upload it to the device.

To do so, I logged into Octopi

Clicked on the Wrench icon

Clicked on Plugin Manager

Searched for Firmware Updater

And installed the application

Now I have to log into my Raspberry Pi with Octoprint on it

So I open Putty

Input the IP Address for the PI and login

The I enter the following commands

sudo apt-get install usbmount
sudo nano /etc/usbmount/usbmount.conf
Find FS_MOUNTOPTIONS and change it to:
sudo systemctl edit systemd-udevd
Add these lines


Save and Close the file

sudo systemctl daemon-reload
sudo service systemd-udevd –full-restart


Log back into the PI

cd /media
ls -la
Verify full permissions on /media/usb
For mine, /media/usb pointed to usb0 so I had to run
chmod 777 usb0

Now log into Octopi through the browser

Click back onto the Wrench

Navigate down to Firmware Updater

Click the Wrench in Firmware Updater

Set the Flash Method

For my flash method, using the LPC1769 board, I had to select LPC1768

For the Path to firmware folder, I put in /media/usb

Click test to make sure the path is valid


Back in Firmware Updater main screen

Click Browse

Find the firmware.bin file that you created with VSCode

and Click Flash from file

Now the board is flashing and when it completes you will get the message Flash Successful

Thats it!

Thanks for reading

Hardware that I use:
Raspberry Pi 4 (4gb)

SanDisk 32GB Ultra microSDHC UHS-I Memory Card with Adapter

CanaKit 3.5A Raspberry Pi 4 Power Supply (USB-C)

CanaKit Raspberry Pi 4 Micro HDMI Cable – 6 Feet

Western Digital 500GB WD_Black SN750 NVMe

Plugable USB C to M.2 NVMe Tool-free Enclosure


This is a quick one

Open Pronterface

Connect the motherboard to the computer using USB cable

Make sure any jumpers for USB are enabled on the motherboard (instead of power supply)

In Pronterface, click Connect

You will see the following message

Printer is now online.

Next type in M115 and press Send

Your firmware will now be listed…