{
    "pre":[
        "G28                ; home axes",
        "G1 Y50 F1000       ; lift y axis off belt for heating",
        "M107               ; turn off filament cooling fan",
        "M140 S{bed_temp}   ; set bed temp",
        "M104 S{temp}       ; set hot end temp",
        "M105               ; report temps",
        "M190 S{bed_temp}   ; wait for bed",
        "M105               ; report temps",
        "M109 S{temp}       ; wait for hot end",
        "M82                ; absolute extrusion mode",
        "G90                ; absolute positioning mode",
        "G21                ; use metric values",
        "G92 E0 Z0          ; zero E/Z axes",
        "G1 Y0.15           ; move head to belt",
        "G1 X200 E35 F800   ; extruder purge line",
        "G1 Z0.3            ; shift belt away 0.3mm",
        "G1 X0 E70          ; extruder purge line",
        "G92 Z0 E0          ; reset bed + extruder position",
        "M117 CR-30 Printing..."
    ],
    "post":[
        "M107               ; disable cooling fan",
        "M106 P0 S0         ; disable cooling fan",
        "M104 S0            ; shut down hot end",
        "M140 S0            ; shut down bed",
        "G92 E1             ; set filament position",
        "G1 E-1 F300        ; retract filament",
        "G28 X              ; home X axis",
        "G1 Y50 F1000       ; lift y axis",
        "M84                ; disable stepper motors"
    ],
    "extruders":[
        {
            "nozzle": 0.4,
            "filament": 1.75,
            "offset_x": 0,
            "offset_y": 0,
            "select": [ "T0" ]
        }
    ],
    "cmd":{
        "fan_power": "M106 S{fan_speed}",
        "progress": "M117 {progress}% layer {layer} / {layers}",
        "layer": [
            ";; --- layer {layer} {height} @ {z} ---",
            "M117 {progress}% layer {layer} / {layers}"
        ]
    },
    "settings":{
        "image_url": "/decal/3dprintmill.png",
        "image_anchor": 0,
        "image_scale": 1,
        "origin_center": false,
        "extrude_abs": true,
        "bed_belt": true,
        "bed_width": 220,
        "bed_depth": 350,
        "build_height": 170
    },
    "profiles":[{
        "processName": "CR30 PLA",
        "sliceHeight": 0.20,
        "sliceShells": 3,
        "sliceShellOrder": "in-out",
        "sliceLayerStart": "last",
        "sliceFillAngle": 45,
        "sliceFillOverlap": 0.3,
        "sliceFillSparse": 0.2,
        "sliceFillType": "linear",
        "sliceFillRepeat": 3,
        "sliceAdaptive": false,
        "sliceMinHeight": 0,
        "sliceSupportDensity": 0.25,
        "sliceSupportOffset": 0.4,
        "sliceSupportGap": 0,
        "sliceSupportSize": 6,
        "sliceSupportArea": 0.25,
        "sliceSupportExtra": 0,
        "sliceSupportAngle": 1,
        "sliceSupportNozzle": 0,
        "sliceSolidMinArea": 5,
        "sliceSolidLayers": 3,
        "sliceBottomLayers": 3,
        "sliceTopLayers": 3,
        "firstLayerRate": 10,
        "firstLayerPrintMult": 1.0,
        "firstLayerYOffset": 0,
        "firstLayerBrim": 0,
        "firstLayerBeltLead": 0,
        "firstLayerFanSpeed": 0,
        "outputLoops": 0,
        "outputTemp": 210,
        "outputFanMax": 255,
        "outputBedTemp": 70,
        "outputFanSpeed": 255,
        "outputFeedrate": 30,
        "outputFinishrate": 20,
        "outputSeekrate": 80,
        "outputShellMult": 1.15,
        "outputFillMult": 1.15,
        "outputSparseMult": 1.15,
        "outputFanLayer": 0,
        "outputRetractDist": 6,
        "outputRetractSpeed": 70,
        "outputRetractWipe": 0,
        "outputRetractDwell": 0,
        "outputShortPoly": 50.0,
        "outputMinSpeed": 5.0,
        "outputCoastDist": 0.3,
        "outputWipeDistance": 0,
        "outputLayerRetract": false,
        "detectThinWalls": false,
        "zHopDistance": 0,
        "antiBacklash": 0
    },{
        "processName": "CR30 PETG",
        "sliceHeight": 0.20,
        "sliceShells": 3,
        "sliceShellOrder": "in-out",
        "sliceLayerStart": "last",
        "sliceFillAngle": 45,
        "sliceFillOverlap": 0.3,
        "sliceFillSparse": 0.2,
        "sliceFillType": "linear",
        "sliceFillRepeat": 3,
        "sliceAdaptive": false,
        "sliceMinHeight": 0,
        "sliceSupportDensity": 0.25,
        "sliceSupportOffset": 0.4,
        "sliceSupportGap": 0,
        "sliceSupportSize": 6,
        "sliceSupportArea": 0.25,
        "sliceSupportExtra": 0,
        "sliceSupportAngle": 1,
        "sliceSupportNozzle": 0,
        "sliceSolidMinArea": 5,
        "sliceSolidLayers": 3,
        "sliceBottomLayers": 3,
        "sliceTopLayers": 3,
        "firstLayerRate": 10,
        "firstLayerPrintMult": 1.0,
        "firstLayerYOffset": 0,
        "firstLayerBrim": 0,
        "firstLayerBeltLead": 0,
        "firstLayerFanSpeed": 0,
        "outputLoops": 0,
        "outputTemp": 240,
        "outputFanMax": 0,
        "outputBedTemp": 70,
        "outputFanSpeed": 0,
        "outputFeedrate": 30,
        "outputFinishrate": 30,
        "outputSeekrate": 80,
        "outputShellMult": 1.15,
        "outputFillMult": 1.15,
        "outputSparseMult": 1.15,
        "outputFanLayer": 0,
        "outputRetractDist": 6,
        "outputRetractSpeed": 70,
        "outputRetractWipe": 0,
        "outputRetractDwell": 0,
        "outputShortPoly": 50.0,
        "outputMinSpeed": 5.0,
        "outputCoastDist": 0.3,
        "outputWipeDistance": 0,
        "outputLayerRetract": false,
        "detectThinWalls": false,
        "zHopDistance": 0,
        "antiBacklash": 0
    }]
}
