This is the gcode I've pieced together from various sources & got working. I have to set up each extruder as a separate printer. So I can use the left or the right but no dual extrusion. With the X3GWriter plugin by Ghostkeeper cura will output x3g.
Right Extruder Start Gcode
; begin
M136 ; tell the firmware we're starting a build
M73 P0 ; reset build progress
G130 X118 Y118 A118 B118 ; set vref's to default
M190 S{print_bed_temperature} ; set bed temp, don't wait
M104 S{print_temperature} T0 ; set right nozzle temp, don't waitdisable right nozzle, don't wait
M104 S0 T1 ; disable left nozzle, don't wait
T0 ; home on the right extruder
G90 ; set positioning to absolute
G28 X Y Z ; home XYZ at default home feedrates
G92 X0 Y0 Z0 A0 B0 ; define this as Z=0, the other coords are technically unnecessary but x3g requires them so gpx will make some up
G1 Z5 ; move the platform 5mm down
G28 Z F500 ; so we can home z again slowly
M132 X Y Z ; Recall stored home offsets
G1 X-95 Y-73 Z30 F7000; move to waiting position (front left corner of print bed)
M116 ; wait for target temperatures to be reached. GPX only, RepG doesn't understand
G92 E0 ; set current extruder position as 0 so that E15 below makes sense
G1 Z{first_layer_height} F6000.000; move to first layer height
G1 X100 Y-73 F7000.000; move to front right corner of bed
G1 X-90 Y-73 E24 F2000.000; extrude a line of filament across the front edge of the bed
G4 P2000; wait for ooze to slow
G1 Z0 F6000.000; lower nozzle height to 0
G1 X-95; wipe nozzle
G1 Z{first_layer_height} F6000.000; set nozzle to first layer height
G1 F7000; ensure fast travel to first print move
G92 E0 ; set E to 0 again because the slicer's next extrusion is relative to this 0
;end
Left Extruder Start Gcode
; begin
M136 ; tell the firmware we're starting a build
M73 P0 ; reset build progress
G130 X118 Y118 A118 B118 ; set vref's to default
M190 S{print_bed_temperature} ; set bed temp, don't wait
M104 S0 T0 ; disable right nozzle, don't wait
M104 S{print_temperature} T1 ; set left nozzle temp, don't wait
T1 ; home on the left extruder
G90 ; set positioning to absolute
G28 X Y Z ; home XYZ at default home feedrates
G92 X0 Y0 Z0 A0 B0 ; define this as Z=0, the other coords are technically unnecessary but x3g requires them so gpx will make some up
G1 Z5 ; move the platform 5mm down
G28 Z F500 ; so we can home z again slowly
M132 X Y Z ; Recall stored home offsets
G1 X-95 Y-73 Z30 F7000; move to waiting position (front left corner of print bed)
T1 ; select left extruder
M116 ; wait for target temperatures to be reached. GPX only, RepG doesn't understand
G92 E0 ; set current extruder position as 0 so that E15 below makes sense
G1 Z{first_layer_height} F6000.000; move to first layer height
G1 X100 Y-73 F7000.000; move to front right corner of bed
G1 X-90 Y-73 E24 F2000.000; extrude a line of filament across the front edge of the bed
G4 P2000; wait for ooze to slow
G1 Z0 F6000.000; lower nozzle height to 0
G1 X-95; wipe nozzle
G1 Z{first_layer_height} F6000.000; set nozzle to first layer height
G1 F7000; ensure fast travel to first print move
G92 E0 ; set E to 0 again because the slicer's next extrusion is relative to this 0
;end
I use the same end gcode for both extruders
M73 P100 ; end build progress
M140 S0 ; set bed temperature to 0
M104 S0 T0 ; set extruder temperature to 0
M104 S0 T1 ; set extruder temperature to 0
G92 E1
G1 E-5 F300
G28 X Y F2500 ; home X and Y axes
M18 ; disable all stepper motors
M70 P5 (We <3 Making Things!)
M72 P1 ; Play Ta-Da song
Hope this helps some of you.