Start / Stop S3D SCRIPT / G-CODE
-
@fcwilt Right now I don't have any code (except old Little Monster Smoothieware code) and I went to print something and the z-probe didn't extend and the height went to low, I did the offset and have done the work to get it all set up, but don't know how to start it and how to end the code. This is all new to me, and it was unexpected. The MKS Base card burnt out so I went with the Duet and have not had the time to do my research like I always like to do. I just don't want to break something in the process.
-
Have you created the basic files I mentioned and have you installed them on the Duet?
- config.g
- homeall.g
- homex.g
- homey.g
- homez.g
Frederick
-
@fcwilt Sorry I was in bed and working now. I have done all (not to say they are right or not).
-
@noblebran said in Start / Stop S3D SCRIPT / G-CODE:
@fcwilt Sorry I was in bed and working now. I have done all (not to say they are right or not).
OK lets check those files.
using the </> tag post copy&paste the contents of each file in a separate tag.
The </> tag creates a scrollable region and makes viewing code easy.
Frederick
-
@fcwilt config.g
; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Mon Jul 05 2021 14:33:32 GMT-0400 (Eastern Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"My Printer" ; set printer name M665 R155 L397.15 B155 H520 ; Set delta radius, diagonal rod length, printable radius and homed height M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them ; Network M552 S1 ; enable network M587 S"XXXXXX" ; CONFIGURE AP M586 P0 S1 ; enable HTTP M586 P1 S1 ; enable FTP M586 P2 S1 ; enable Telnet ; Drives M569 P0 S1 ; physical drive 0 goes forwards M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S0 ; physical drive 3 goes forwards M584 X0 Y1 Z2 E3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X160.00 Y160.00 Z160.00 E873.08 ; set steps per mm M566 X1200.00 Y1200.00 Z1200.00 E1200.00 ; set maximum instantaneous speed changes (mm/min) M203 X72000.00 Y72000.00 Z72000.00 E1200.00 ; set maximum speeds (mm/min) M201 X2000.00 Y2000.00 Z2000.00 E1000.00 ; set accelerations (mm/s^2) M906 X1200 Y1200 Z1200 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 Z0 S1 ; set minimum Z ; Endstops M574 X2 S1 P"xstop" ; configure active-high endstop for high end on X via pin xstop M574 Y2 S1 P"ystop" ; configure active-high endstop for high end on Y via pin ystop M574 Z2 S1 P"zstop" ; configure active-high endstop for high end on Z via pin zstop ; Z-Probe M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch M558 P9 C"^zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X0 Y20 Z1.35 ; set Z probe trigger value, offset and trigger height M557 R150 S45 ; define mesh grid ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M307 H1 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e1heat" T1 ; create nozzle heater output on e1heat and map it to sensor 1 M307 H1 B0 R3.660 C138.7 D14.26 S1.00 V23.1 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S1 H0 T50 ; set fan 0 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Miscellaneous M575 P1 S1 B57600 ; enable support for PanelDue M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss M501 ; for PID tuning
-
@fcwilt homeall.g
G91 ; relative positioning G1 H1 X705 Y705 Z705 F3600 ; move all towers to the high end stopping at the endstops (first pass) G1 H2 X-5 Y-5 Z-5 F3600 ; go down a few mm G1 H1 X10 Y10 Z10 F360 ; move all towers up once more (second pass) G1 Z-5 F6000 ; move down a few mm so that the nozzle can be centred G90 ; absolute positioning G1 X0 Y0 F6000 ; move X+Y to the center
-
@fcwilt homex.g
G28 X ; home x
-
@fcwilt homey.g
G28 Y
-
@fcwilt homez.g
G28 Z
-
Great.
Now I don't have any delta printers so I had to check.
For a delta printer the RRF configuration tool doesn't create those four homing files, just homedelta.g
The homeall.g you posted looks like what the homedelta.g file should be.
So get rid of homex.g homey.g and homez.g and then rename homeall.g to homedelta.g.
Now with that out of the way let's turn to config.g.
You have an M587 there which not be used in config.g. You use that command when setting up the WiFi connection but you don't keep it in config.g.
At first glance everything else looks reasonable.
Does the PanelDue work?
Does homing work?
Can you move the nozzle to all places in the printable area?
Can you move over the range of the Z axis?
If you move to Z=10 and do a G30 does the Z probe work?
If you activate the heaters do they heat as expected to whatever temperature you specified?
Do the fans work?
Thanks.
Frederick
-
@fcwilt said in Start / Stop S3D SCRIPT / G-CODE:
Great.
Now I don't have any delta printers so I had to check.
For a delta printer the RRF configuration tool doesn't create those four homing files, just homedelta.g
The homeall.g you posted looks like what the homedelta.g file should be.
So get rid of homex.g homey.g and homez.g and then rename homeall.g to homedelta.g.Okay, this is done. Let me go to the next part.
-
@fcwilt said in Start / Stop S3D SCRIPT / G-CODE:
Now with that out of the way let's turn to config.g.
You have an M587 there which not be used in config.g. You use that command when setting up the WiFi connection but you don't keep it in config.g.
At first glance everything else looks reasonable.
Does the PanelDue work?
Does homing work?
Can you move the nozzle to all places in the printable area?
Can you move over the range of the Z axis?
If you move to Z=10 and do a G30 does the Z probe work?
If you activate the heaters do they heat as expected to whatever temperature you specified?
Do the fans work?My PanelDue 7i works, I haven't been able to print an enclosure for it so I haven't really been using it, but it connects and shows readings, etc.
Homing does work.
Yes, I can move the nozzle to all places in the printable area.
I can move the nozzle over the range of the z axis using code, I can using the dashboard buttons. Homed it is x0, y0, z515 so when I put in a g1 z- command it goes down.
The z-probe worked, re-calibrated just now (put the bed at z5, now its z6.35), I thought I put that correction in the config, but I guess not (as you know its the distance between the nozzle tip and tip of the probe).
The heaters work, but I have another thread going as I always get faults that my block heater goes way above the set point. I have all e3d parts, I don't have an e3d cartridge thermistor but I didn't get one when I received the parts years ago and it worked when I had the old smoothieware system (MKS Base). The bed works great though.
The fans work (I think). I say I think because my heatsink fan is on 24/7 now, which I know is because of the connection I plugged it in. My part cooling fans are set to turn on when the temp goes above 50 I think but I didn't know how else to control them as I would normally in the slicer.
I did do an autocalibration and it worked
Besides the extruder heater/thermistor and the fans (but they work) I think to answer everything I would say yes besides my comments above. Sorry for the abundance of detail.
-
@fcwilt Interesting . Why do it as a call to files on the Duet? You do lose the Simpify3D script variable capability that way.
-
@donstauffer said in Start / Stop S3D SCRIPT / G-CODE:
@fcwilt Interesting . Why do it as a call to files on the Duet? You do lose the Simpify3D script variable capability that way.
Yes you do but I haven't found that to be a problem.
For example, I handle required changes based on the current filament type by using the filament handling feature in the DWC.
When you select the current filament type to print it runs a config.g file unique to that filament type. In that file I put bed/hotend temperature settings, adjust the print speed and extrusion rate, etc.
I prefer keeping as much in the Duet as I can which makes using different slicers easier.
Frederick
-
@fcwilt I was thinking along those lines but I couldn't quite solidify those thoughts. Makes sense.
-
@fcwilt said in Start / Stop S3D SCRIPT / G-CODE:
@donstauffer said in Start / Stop S3D SCRIPT / G-CODE:
@fcwilt Interesting . Why do it as a call to files on the Duet? You do lose the Simpify3D script variable capability that way.
Yes you do but I haven't found that to be a problem.
For example, I handle required changes based on the current filament type by using the filament handling feature in the DWC.
When you select the current filament type to print it runs a config.g file unique to that filament type. In that file I put bed/hotend temperature settings, adjust the print speed and extrusion rate, etc.
I prefer keeping as much in the Duet as I can which makes using different slicers easier.
Frederick
So I don't end up putting the code in the S3D software anymore, it is built into the duet? How do I make sure it comes down, the probe touches and prints from that 'mesh/surface'?
There is also a configoveride now that doesn't have all the information that the config.g file does. I guess I need to make sure it uses that first when making a print. Maybe I need a new slicer?
-
@noblebran said in Start / Stop S3D SCRIPT / G-CODE:
So I don't end up putting the code in the S3D software anymore, it is built into the duet? How do I make sure it comes down, the probe touches and prints from that 'mesh/surface'?
That is entirely up to you. Many folks do, I don't. I found I prefer to have all of my print start and print end code in the Duet.
Everything that needs to happen at the start of the print is in the code I place in my print_begin.g file which includes:
- homing XYZ
- bed leveling
- setting bed/hotend temps,
- waiting for temps to reach the set points
- priming the extruder
- pausing to allow user to clean hotend/bed
- setting the Z=0 datum
- loading the height map
And anything else that I might want to have happen at the start of a print.
There is also a configoveride now that doesn't have all the information that the config.g file does. I guess I need to make sure it uses that first when making a print. Maybe I need a new slicer?
The file config-override.g is processed at boot time when config.g is processed.
There is nothing you need to do with config-override.g at print time.
You can use any slicer you want as I sometimes do.
My approach doesn't care as I simply setup each slicer to call my code at the start and end of a print. My code does not change if I change which slicer I use.
Frederick
-
@fcwilt said in Start / Stop S3D SCRIPT / G-CODE:
The file config-override.g is processed at boot time when config.g is processed.
There is nothing you need to do with config-override.g at print time.Okay this is the same as Smoothieware on the MKS Base. Thank you!
@fcwilt said in Start / Stop S3D SCRIPT / G-CODE:
That is entirely up to you. Many folks do, I don't. I found I prefer to have all of my print start and print end code in the Duet.
Everything that needs to happen at the start of the print is in the code I place in my print_begin.g file which includes:homing XYZ
bed leveling
setting bed/hotend temps,
waiting for temps to reach the set points
priming the extruder
pausing to allow user to clean hotend/bed
setting the Z=0 datum
loading the height mapAnd anything else that I might want to have happen at the start of a pring.
Thank you my friend. I’m trying to figure all this out, so I appreciate your patience. If there is anything you can share with me as far as code to get me started I’d appreciate it. I know you don’t have a delta so things will be different but I have some things I promised to print (my director) and then my printer burnt out and I’m in a rush.
I have a new surface and hot end and don’t want to be smashing into it. Maybe I put a piece of cardboard over it or something. But anything is greatly appreciated and I appreciate your patience.
-
@noblebran said in Start / Stop S3D SCRIPT / G-CODE:
homing XYZ
bed leveling
setting bed/hotend temps,
waiting for temps to reach the set points
priming the extruder
pausing to allow user to clean hotend/bed
setting the Z=0 datum
loading the height mapIf there is anything you can share with me as far as code to get me started I’d appreciate it.
Glad to help in anyway I can.
I've listed the primary things that need to get done before a print and thus my print_begin.g file has the commands needed to do those things.
My file also has some code that is just checking to be sure conditions needed for printing are met.
Perhaps if you look back at my print_begin.g file that I posted it will make more sense.
If not ask about any part of it - I can create a simpler version.
Frederick
-
@fcwilt said in Start / Stop S3D SCRIPT / G-CODE:
Perhaps if you look back at my print_begin.g file that I posted it will make more sense.
I apologize I didn't see where it was, you mean the parts that are listed underneath it or the actual code itself?