Header for Ultimaker S3

Hi,

I wanted to use Kiri:Moto to generate gcode for the Ultimaker S3. I can aloready generate the gcode. Adjusted a correct header, but…
The header for the Ultimaker S3 has to be the first lines in the gcode file.
Kiri:Moto generates some lines before witg eg the settings. Is it possible to generate these lines at the bottom? or generate them after the header set in the machine setup?

maybe an option to place the kiri:moto lines as a variable {kirimoto} in the header so you can choose as a user where to place that. (and if not placed in header or footer, than placed at the top?!)

The workaround now is to open the gcode in a text editor and remove (or swap) these lines so that the UMS3 required lines are on the top.

kind regards,
joris

this works:

; — startup —
;START_OF_HEADER
;HEADER_VERSION:0.1
;FLAVOR:Griffin
;GENERATOR.NAME:Cura_SteamEngine
;GENERATOR.VERSION:4.12.1
;GENERATOR.BUILD_DATE:2021-11-18
;TARGET_MACHINE.NAME:Ultimaker S3
;EXTRUDER_TRAIN.0.INITIAL_TEMPERATURE:200
;EXTRUDER_TRAIN.0.MATERIAL.VOLUME_USED:135
;EXTRUDER_TRAIN.0.MATERIAL.GUID:506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9
;EXTRUDER_TRAIN.0.NOZZLE.DIAMETER:0.4
;EXTRUDER_TRAIN.0.NOZZLE.NAME:AA 0.4
;BUILD_PLATE.TYPE:glass
;BUILD_PLATE.INITIAL_TEMPERATURE:60
;PRINT.TIME:894
;PRINT.GROUPS:1
;PRINT.SIZE.MIN.X:10
;PRINT.SIZE.MIN.Y:10
;PRINT.SIZE.MIN.Z:0.27
;PRINT.SIZE.MAX.X:180
;PRINT.SIZE.MAX.Y:180
;PRINT.SIZE.MAX.Z:150
;END_OF_HEADER
; Generated by Kiri:Moto 3.2.1
; Tue Mar 29 2022 09:00:56 GMT+0200 (Central European Summer Time)
; Bed left:0 right:223 top:223 bottom:0
; Bed type: fixed
; Target: Ultimaker s3
; — process —
; processName = default
; outputOriginCenter = false
; outputInvertX = false
; outputInvertY = false
; sliceHeight = 0.2
; sliceShells = 3
; sliceShellOrder = in-out
; sliceLayerStart = last
; sliceLineWidth = 0
; sliceFillAngle = 45
; sliceFillWidth = 1
; sliceFillOverlap = 0.35
; sliceFillSparse = 0.1
; sliceFillRepeat = 1
; sliceFillRate = 0
; sliceFillType = triangle
; sliceSupportDensity = 0.25
; sliceSupportOffset = 1
; sliceSupportGap = 1
; sliceSupportSize = 5
; sliceSupportArea = 0.1
; sliceSupportSpan = 5
; sliceSupportExtra = 0
; sliceSupportAngle = 50
; sliceSupportNozzle = 0
; sliceSupportEnable = false
; sliceSupportOutline = true
; sliceSolidMinArea = 1
; sliceSolidLayers = 3
; sliceBottomLayers = 3
; sliceTopLayers = 3
; firstSliceHeight = 0.25
; firstLayerRate = 30
; firstLayerFillRate = 35
; firstLayerPrintMult = 1
; firstLayerLineMult = 1
; firstLayerYOffset = 0
; firstLayerNozzleTemp = 0
; firstLayerBedTemp = 0
; firstLayerBrim = 0
; firstLayerBrimIn = 0
; firstLayerBrimTrig = 0
; firstLayerBrimGap = 0
; firstLayerBeltLead = 3
; firstLayerBeltBump = 0
; firstLayerFanSpeed = 0
; firstLayerFlatten = 0
; outputRaft = false
; outputRaftSpacing = 0.2
; outputDraftShield = false
; outputTemp = 200
; outputBedTemp = 60
; outputFeedrate = 50
; outputFinishrate = 50
; outputSeekrate = 80
; outputShellMult = 1.25
; outputFillMult = 1.25
; outputSparseMult = 1.25
; outputFanSpeed = 255
; outputRetractDist = 1.5
; outputRetractSpeed = 40
; outputRetractWipe = 0
; outputRetractDwell = 20
; outputBrimCount = 2
; outputBrimOffset = 2
; outputShortPoly = 100
; outputMinSpeed = 10
; outputCoastDist = 0
; outputPurgeTower = 0
; outputBeltFirst = false
; outputAvoidGaps = true
; outputLayerRetract = false
; outputLoops = 0
; detectThinWalls = false
; sliceMinHeight = 0
; sliceAdaptive = false
; zHopDistance = 0.2
; arcTolerance = 0
; antiBacklash = 1
; ranges = []
; beltAnchor = 3
M104 S200 T0 ; set extruder temperature
M140 S60 T0 ; set bed temperature
G90 ; set absolute positioning mode
M82 ; set absolute positioning for extruder
M107 ; turn off filament cooling fan
G92 E0 ; zero the extruded
M109 S200 T0 ; wait for extruder to reach target temp
G1 E15 F200 ; purge 15mm from extruder
G92 E0 ; zero the extruded
G1 F225 ; set feed speed
G1 E-1.5000 F2400 ; e-retract 1.5

Hi @Rooie_Joris and welcome. Thanks for this bit of information. I will add a marker, as you suggest, that allows for the config and other automated comments to be placed before or after header or disabled entirely.

I propose the presence of one of these lines:

;; PREAMBLE OFF

;; PREAMBLE END

to either disable header config comments or place them after the header. the default behavior is ON in the absence of either of these.

Sounds good, altough the ‘preamble’ as a variable like the {temp} makes more sense for me, (but I am trained as product designer, not as an programmer… : )
Then you can place it everywhere you want, also in the footer and if you don’t use that in the header or footer, then it is placed like it is now.

How does it work when you add the marker/adjustments, how can I see if I use the version with the adjustments?

cheers / joris

hmm. I guess the use case that would make sense for this is injection in the post. in which case {preamble} doesn’t make sense as a name. I’ve already added the PREAMBLE control for tonight’s 3.3 release

Thanks…!!
(was a bit lost in translation, but ‘preamble’ indeed doesn’t make sense as a name indeed…)

will try and test coming days/weeks…

Update: export seems to work…!! cannot test the printer at the moment