Clear all

MK4IS Printer definition for Cura Slicer  

Active Member
MK4IS Printer definition for Cura Slicer

I would like to add my new MK4IS printer to an older version of the Cura slicer. sells RC airplanes .stl files that take advantage of a specific release of Cura (4.12.1) that slice his designs correctly.

I need help creating a definition file (something like "prusa_mk4is.def.json") so that Cura can slice the .stl files with the appropriate settings and output the gcode for my printer.

Thanks in advance.

Posted : 24/09/2023 5:52 pm
Active Member
Topic starter answered:
RE: MK4IS Printer definition for Cura Slicer

I looked at a Prusa Slicer generated gcode file and noticed code to enable the Input Shaper. Are there other special codes that need to be inserted to use all the features of the MK4IS?

Posted : 25/09/2023 11:59 am
Active Member
Topic starter answered:
RE: MK4IS Printer definition for Cura Slicer

Can I modify the original Cura profiles for the i3_MK3 printer to create an MK4IS profile? I have the "Original_Prusa_i3_MK3S_MK3.def.json" file as well as the printer_extruders, meshes, layerheight and materials files. I feel like I'm talking to myself. Probably just try making MK4IS clones of the i3_MK3S files and change the name to MK4IS. I asked Prusa for help, but they only support the Prusa Slicer.

Posted : 28/09/2023 4:23 pm
Active Member

Not exactly Cura 4.2, but this could be helpful for you. I'm working on a set of Cura 5.x G-Code Start/End. Cura still can't be beat for slicing RC plane parts. Here's what I have so far. I'd love others take on it.


  • Since Cura doesn't support the Jinja2 syntax PrusaSlicer uses (all the If/Then trees)
    • Made a few basic assumptions
      • 0.4mm nozzle
      • preheat nozzle temp @170c
      • Switched End G-Codes to using relative. If you print really tall objects, may want to comment out G1 Z10 F720 ; Move print head up
      • Commented out the M201-205 commands, but left them here if you want to try enabling faster printing. 
  • It currently skips M555, as it's a little unclear how bed leveling size is calculated for me. This means the printer defaults to a full bed 49 point probe. You can get this generated for you each time via throwing your object in PrusaSlicer and manually updating it. A pain in my opinion.
  • Uses M82 for the print itself, as is the standard in Cura (absolute extrusion numbers). This is the opposite of files created in PrusaSlicer, which defaults to relative extrusion.

I'll be continuing to work with the different variable library for Cura to try and match functionality.

Start G-Code

;M201 X4000 Y4000 Z200 E2500 ; sets maximum accelerations, mm/sec^2
;M203 X300 Y300 Z40 E100 ; sets maximum feedrates, mm / sec
;M204 P4000 R1200 T4000 ; sets acceleration (P, T) and retract acceleration (R), mm/sec^2
;M205 X8.00 Y8.00 Z2.00 E10.00 ; sets the jerk limits, mm/sec
;M205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec
M17 ; enable steppers
M862.1 P0.4 ; nozzle diameter check
M862.3 P "MK4" ; printer model check
M862.5 P2 ; g-code level check
M862.6 P"Input shaper" ; FW feature check
M115 U5.0.0+12061

;M555 X1e-06 Y-4 W250 H214 ; Tells MBL what size of print area. These values assume a 250x210x210 cube.

G90 ; use absolute coordinates
M83 ; extruder relative mode

M140 S[first_layer_bed_temperature] ; set bed temp
M104 S170 ; set extruder temp for bed leveling
M109 R170 ; wait for temp

M84 E ; turn off E motor

G28 ; home all without mesh bed level

G1 X42 Y-4 Z5 F4800

M302 S160 ; lower cold extrusion limit to 160C

G1 E-2 F2400 ; retraction

M84 E ; turn off E motor

G29 P9 X10 Y-4 W32 H4

G0 Z40 F10000

M190 S{material_bed_temperature_layer_0} ; wait for bed temp


M84 E ; turn off E motor
G29 P1 ; invalidate mbl & probe print area
G29 P1 X0 Y0 W50 H20 C ; probe near purge place
G29 P3.2 ; interpolate mbl probes
G29 P3.13 ; extrapolate mbl outside probe area
G29 A ; activate mbl

; prepare for purge
M104 S{material_print_temperature_layer_0}
G0 X0 Y-4 Z15 F4800 ; move away and ready for the purge
M109 S{material_print_temperature_layer_0}

G92 E0
M569 S0 E ; set spreadcycle mode for extruder

; Extrude purge line
G92 E0 ; reset extruder position
G1 E2 F2400 ; deretraction after the initial one before nozzle cleaning
G0 E7 X15 Z0.2 F500 ; purge
G0 X25 E4 F500 ; purge
G0 X35 E4 F650 ; purge
G0 X45 E4 F800 ; purge
G0 X48 Z0.05 F8000 ; wipe, move close to the bed
G0 X51 Z0.2 F8000 ; wipe, move quickly away from the bed

G92 E0
M221 S100 ; set flow to 100%
G21 ; set units to millimeters
G90 ; use absolute coordinates
M82 ; absolute extrusion mode


End G-Code

G91 ; use relative coordinates

G1 Z10 F720 ; Move print head up
M104 S0 ; turn off temperature
M140 S0 ; turn off heatbed
M107 ; turn off fan
G90 ; use Absolute
G1 X250 Y210 F3600 ; park
G1 Z210 F300 ; Move print head up
G4 ; wait
M572 S0 ; reset PA
M593 X T2 F0 ; disable IS
M593 Y T2 F0 ; disable IS
M84 X Y E ; disable motors
This post was modified 2 months ago 2 times by Crashoverride
Posted : 04/10/2023 9:12 pm
Active Member
Topic starter answered:
RE: MK4IS Printer definition for Cura Slicer

Thank you for the g-code. That is exactly what I needed help with. I'll give this a try in the next few days.

Posted : 06/10/2023 12:10 pm