B-H-S
Posts: 39
Joined: Tue May 15, 2018 2:49 pm

Re: S3d code for Taz 6 v3

Thanks for the Reply,,

Yep I agree that S3D does somethings better that is why I purchased it back in version 3.0 ?? I use it with a Prusa and Ultimaker 2 and when I had a BCN I used it in that too,, But when it came to Dual head, as I said it was a hand full to get right,, in your opinion having converted from TAZ 6 and using cura how easy is it to get S3d to work with TAZ, the self levelling bed ect seems complicated to get it to work with s3d, I have only had the TAZ6 for a few days,, so just getting used to it,, the .5 nozzle is a bit numb for fine details, so was going to put .40 nozzles in the dual head... on the TAZ website there is a start up script for S3D would you recommend it??
b-morgan
Posts: 24
Joined: Tue Oct 24, 2017 11:00 am

Re: S3d code for Taz 6 v3

The TAZ 6 self-leveling bed is handled by the commands in the start gcode as is the nozzle wipe. The biggest difference between Cura and S3D is that Cura handles the nozzle offset(s) before outputting the gcode and S3D expects the nozzle offsets to be handled by the (Marlin) firmware. This is easily handled by the M218 command placed appropriately in the start gcode (and one in the Cura start gcode to clear it). By having an M218 in both slicer's start gcode, you can mix print jobs from either slicer in any order.

The other big difference is that Cura uses {} to delineate variables where S3D uses [] and the variable names are different. S3D also doesn't have as many variables as Cura, so some of the temperature values will need to be hand coded.

I believe everything you need is posted in this thread. I'm not sure about the one posted in the LulzBot forums but it could be OK. Just double check that the latest start gcode from CuraLE is reflected in the version of S3D start gcode you use.

I have my TAZ 6 connected to a Raspberry Pi running OctoPi and OctoPrint. For cosmetics, I have two OctoPrint printer definitions (with and without the nozzle offset) so the the OctoPrint gcode viewer displays correctly.
B-H-S
Posts: 39
Joined: Tue May 15, 2018 2:49 pm

Re: S3d code for Taz 6 v3

Thanks for that I will download the startcode in this thread and check,, thank you,,
B-H-S
Posts: 39
Joined: Tue May 15, 2018 2:49 pm

Re: S3d code for Taz 6 v3

blow ir the code I found but it is for the single head and there is some end code

;This G-Code has been generated specifically for the LulzBot TAZ 6 with standard extruder
M75 ; start GLCD timer
G26 ; clear potential 'probe fail' condition
G21 ; set units to Millimetres
M107 ; disable fans
M420 S0 ; disable previous leveling matrix
G90 ; absolute positioning
M82 ; set extruder to absolute mode
G92 E0 ; set extruder position to 0
M140 S{material_bed_temperature} ; start bed heating up
G28 XY ; home X and Y
G1 X-19 Y258 F1000 ; move to safe homing position
M109 R{material_soften_temperature} ; soften filament before homing Z
G28 Z ; home Z
G1 E-30 F100 ; retract filament
M109 R{material_wipe_temperature} ; wait for extruder to reach wiping temp
G1 X-15 Y100 F3000 ; move above wiper pad
G1 Z1 ; push nozzle into wiper
G1 X-17 Y95 F1000 ; slow wipe
G1 X-17 Y90 F1000 ; slow wipe
G1 X-17 Y85 F1000 ; slow wipe
G1 X-15 Y90 F1000 ; slow wipe
G1 X-17 Y80 F1000 ; slow wipe
G1 X-15 Y95 F1000 ; slow wipe
G1 X-17 Y75 F2000 ; fast wipe
G1 X-15 Y65 F2000 ; fast wipe
G1 X-17 Y70 F2000 ; fast wipe
G1 X-15 Y60 F2000 ; fast wipe
G1 X-17 Y55 F2000 ; fast wipe
G1 X-15 Y50 F2000 ; fast wipe
G1 X-17 Y40 F2000 ; fast wipe
G1 X-15 Y45 F2000 ; fast wipe
G1 X-17 Y35 F2000 ; fast wipe
G1 X-15 Y40 F2000 ; fast wipe
G1 X-17 Y70 F2000 ; fast wipe
G1 X-15 Y30 Z2 F2000 ; fast wipe
G1 X-17 Y35 F2000 ; fast wipe
G1 X-15 Y25 F2000 ; fast wipe
G1 X-17 Y30 F2000 ; fast wipe
G1 X-15 Y25 Z1.5 F1000 ; slow wipe
G1 X-17 Y23 F1000 ; slow wipe
G1 Z10 ; raise extruder
M109 R{material_probe_temperature} ; wait for extruder to reach probe temp
G1 X-9 Y-9 ; move above first probe point
M204 S100 ; set probing acceleration
G29 ; start auto-leveling sequence
M420 S1 ; enable leveling matrix
M425 Z ; use measured Z backlash for compensation
M425 Z F0 ; turn off measured Z backlash compensation. (if activated in the quality settings, this command will automatically be ignored)
M204 S500 ; restore standard acceleration
G1 X0 Y0 Z15 F5000 ; move up off last probe point
G4 S1 ; pause
M400 ; wait for moves to finish
M117 Heating... ; progress indicator message on LCD
M109 R{material_print_temperature_layer_0} ; wait for extruder to reach printing temp
M190 S{material_bed_temperature_layer_0} ; wait for bed to reach printing temp
G1 Z2 E0 F75 ; prime tiny bit of filament into the nozzle
M117 TAZ 6 Printing... ; progress indicator message on LCD

End script
M400 ; wait for moves to finish
M140 S{material_part_removal_temperature} ; start bed cooling
M104 S0 ; disable hotend
M107 ; disable fans
G91 ; relative positioning
G1 E-1 F300 ; filament retraction to release pressure
G1 Z20 E-5 X-20 Y-20 F3000 ; lift up and retract even more filament
G1 E6 ; re-prime extruder
M117 Cooling please wait ; progress indicator message on LCD
G90 ; absolute positioning
G1 Y0 F3000 ; move to cooling position
M190 R{material_part_removal_temperature} ; wait for bed to cool down to removal temp
G1 Y280 F3000 ; present finished print
M140 S{material_keep_part_removal_temperature_t}; keep temperature or cool downs
M77 ; stop GLCD timer
M84 ; disable steppers
G90 ; absolute positioning


ADITIONAL INSRUCTIONS TO WORK OUT
Update the following line with your specific filament recommended part removal temperature.
M190 S50 ; set bed to cool off

Remove Variables and Update Temperatures
Replace the S{print_...} variables from the above GCODE block with your specific temperatures. For example: M140 S{print_bed_temperature} would be replaced by M140 S110.
M140 S{print_bed_temperature}; get bed heating up
M109 S{print_temperature} ; set extruder temp and wait
M190 S{print_bed_temperature}; get bed temping up during first layer

Update Soften Filament, Wipe, and Probe Temperatures
A nozzle cleaning/probing temperature of 70% of extrusion temperature should work for most materials. Nylon-based filament may require a higher cleaning temperature. Update the following nozzle cleaning and probing temperatures found in the larger start GCODE section.
M109 S170 ; soften filament for z homing
M104 S160 ; wipe temp
M109 S160 ; heat to probe temp
B-H-S
Posts: 39
Joined: Tue May 15, 2018 2:49 pm

Re: S3d code for Taz 6 v3

High
I started to prep my S3D for my Taz 6 I used the code for a std single head with twipe temps ect but when I checked the code the std
G90
M82
M106 S0
M140 S60
M190 S60
M104 S205 T0
M109 S205 T0

appears this is not a problem for other printer's but with there being a wipe temp in the script M104 S205 T0 (print temp) is higher, can I disable this code being produced as the G90 M82 ect are in the script..
mdavis1863
Posts: 17
Joined: Tue Jul 03, 2018 11:25 am

Re: S3d code for Taz 6 v3

Maybe I am missing something, but when I look at this startup script posted in this thread (Taz 6 Dual v3.fff), I don't see that it is heating up both extruders at the end of the Start script. The bottom of this script is:

...
M117 Heating...
M104 S[extruder0_temperature] T0 ; start heating back extruder
M190 S[bed0_temperature] ; stabilize bed
M109 S[extruder0_temperature] T0 ; stabilize back extruder
T1 ; switch to front extruder
G1 E0 F75 ; extrude filament back into nozzle
T0 ; switch to back extruder
G92 E-12 ; adjust E value
G1 Z2 E0 F75 ; extrude filament back into nozzle
M104 S0 T1 ; cool down front extruder
M117 TAZ Printing...

But if I look over at the Cura start script from version 3.2.32 for Taz6 with V3 dual extruder, I see it ends with:

...
M104 S{material_print_temperature_0} T0 ; set extruder temp
M104 S{material_print_temperature_1} T1; set extruder temp
G1 X100 Y-25 Z0.5 F3000 ; move to open space
M400 ; clear buffer
M117 Heating... ; LCD status message
M109 R{material_print_temperature_0} T0 ; set extruder temp and wait
M109 R{material_print_temperature_1} T1; set extruder temp and wait

M117 Purging... ; LCD status message
T0 ; select this extruder first
G1 E0 F100 ; undo retraction
G92 E-15 ; set extruder negative amount to purge
G1 E0 F100 ; purge XXmm of filament
T1 ; switch to second extruder
G92 E-15 ; set extruder negative amount to purge
G1 E0 F100 ; undo retraction
G92 E-15 ; set extruder negative amount to purge
G1 E0 F100 ; purge XXmm of filament
G1 Z0.5 ; clear bed (barely)
G1 X100 Y0 F5000 ; move above bed to shear off filament
T0 ; switch to first extruder
M190 S{material_bed_temperature_layer_0}; get bed temping up during first layer
G1 Z2 E0 F75
M400 ; clear buffer
M117 TAZ Printing... ; LCD status message

In other words, shouldn't there be M109 commands for both heads? I don't see that in this Taz 6 Dual v3.fff
b-morgan
Posts: 24
Joined: Tue Oct 24, 2017 11:00 am

Re: S3d code for Taz 6 v3

mdavis1863 wrote: Sat Mar 02, 2019 3:50 pmIn other words, shouldn't there be M109 commands for both heads? I don't see that in this Taz 6 Dual v3.fff
I believe you are correct and both heads need temperature commands. I haven't examined the attachments and other code posts line by line but the correct start (and end) code for S3D and the TAZ 6 Dual Extruder V3 is probably an intelligent combination of the latest CuraLE code and the code posted here that accounts for the differences between Cura and S3D with regards to variables and nozzle offsets.

Even if you never use CuraLE to slice your models, if you own a LulzBot printer you should probably have CuraLE installed just to monitor firmware, material profiles, and start/end code updates.
mdavis1863
Posts: 17
Joined: Tue Jul 03, 2018 11:25 am

Re: S3d code for Taz 6 v3

Yes, I downloaded Cura 3.6.3 just for this purpose. But Cura has many temperature variables, so I ended up replacing with constants for now (maybe will get fancier later). I see Cura scripts in 3.6.3 make great use of R parameters (which I guess are just kind of like registers in a normal assembly code language). I took all that out and replaced each T{blah blah} or R{blah blah} with a simple (but inflexible) Txxx where xxx is whatever temperature I wanted at that point.

I noted Cura startup script has a new strategy for startup which seems to work well. It moves the bed to the extreme back, so that the toolhead is actually over empty space. Then it "purges" filament from both heads until there is a good steady stream. Then it moves the bed back under the toolhead with minimal clearance, chopping off the extruded filament, which then falls off under the bed. I think this makes a lot of sense. With my old single tool head and Cura-based startup script, it would move to the front left corner while heating up, and invariably filament would start to drip out, so that when the toolhead started moving it would often be dragging along a "turd" of filament that messed up the first layer. This method of using the bed to chop off the turd is very effective.....the head was full of filament but with no hanging turd. (OK, I think I just invented a new 3D printing term for the little bit of filament that leaks out during heating).

Regarding offset, I might be wrong but I thought I read that someone reported using Simplify3D without checking "Apply toolhead offsets to Gcode coordinates". I had to do the opposite - the only way I could get it to work on S3D was by checking that box. I have the support on Tool1 (right side) and the main structure on Tool0 (left side), so I set X offset for Tool0 to +6.5mm and for Tool1 to -6.5mm, and then checked the box to apply these in Gcode. So when I review the print on the preview screen in S3D, the support appears 13mm to the left of the main structure. But when it actually prints, they line up. In other words, whenever I did NOT check the box "Apply toolhead offsets to Gcode coordinates", then my support structure appears correct in S3D preview mode, but when I actually print the support would be 13mm to the right of the main structure. When I printed from Cura, it lined up, so I am sure I reflashed and did everything correctly, otherwise Cura would not be lining up.
S3D-Chris
Posts: 250
Joined: Wed Jun 20, 2018 12:52 pm

Re: S3d code for Taz 6 v3

Please contact our support team at support@simplify3d.com and our team can send you the profile!
b-morgan
Posts: 24
Joined: Tue Oct 24, 2017 11:00 am

Re: S3d code for Taz 6 v3

mdavis1863 wrote: Tue Mar 05, 2019 11:51 am Regarding offset, I might be wrong but I thought I read that someone reported using Simplify3D without checking "Apply toolhead offsets to Gcode coordinates". I had to do the opposite - the only way I could get it to work on S3D was by checking that box.
The TAZ 6 (Marlin) firmware default is "M218 T0 X0 Y0" and "M218 T1 X0 Y0", i.e. the firmware knows nothing about the offset between nozzles. This requires the offsets to be in the Gcode itself.

If, however, you add "M218 T1 X13 Y0" (which can be fine-tuned if necessary) to the end of the S3D start code, then you do not need to check "Apply toolhead offsets to Gcode coordinates". The Gcode produced and the preview within S3D is correct. Note: The M218 command must be in the start gcode as the Marlin firmware does not store these offsets in EEPROM. If you copied the beginning of the start code from CuraLE, it expects the firmware offsets to be zero so the M218 goes at the end.
mdavis1863 wrote: Tue Mar 05, 2019 11:51 am When I printed from Cura, it lined up, so I am sure I reflashed and did everything correctly, otherwise Cura would not be lining up.
You did do everything right. CuraLE and the Marlin firmware supplied by LulzBot are in sync with each other.

What I did was add to my CuraLE start code the M218 commands to set the offset to zero. My S3D start code is as identical as possible (some temperature variables are not available in S3D) with the addition of the M218 to set the offsets at the end of it.

This gives me the flexibility of printing jobs sliced with CuraLE and jobs sliced with S3D in any order. Both Slicers preview the job correctly so I get the best of both worlds. There are other slicers like IceSL and Pathio that may or may not have the ability to build the offsets into the Gcode but I don't care as I just compensate with M218 commands as appropriate.

Return to “General Discussion and Tips”