How do I enable the hot end heater
-
The basic print function on my homebuilt printer works pretty well now. Eventually, the routines will be split up into more logical routines or macros, along with constant and continued tuning. Before doing that though, there's working through the long list of nagging little details.
Right now, if I forget to manual enable the hotend heater via the DWC, the printer goes on its way, not realizing that it's disabled, so it tries to prime the extruder, which predictable fails. I searched through the Gcode Dictionary but could not find how to enable the hotend heater via either G or M code. I assume I'm missing it, or is there a very good reason why it is meant to be manually enabled. Thanks
-
Here are links to docs for commands related to your question:
And also related to your question you may recall may approach of using the filament specific config.g file to deal with temps (and other things)?
Here is one of those files:
M221 S100 D0 ; set extrusion multiplier G10 S190 R0 ; set extruder temps M140 S60 R0 ; set bed temps set global.g_print_beg_prime = 10 ; set global.g_print_beg_retract = 0.5 ; set global.g_print_end_retract = 0.5 ;
And here are the parts of my print_begin.g file which invokes the filament config.g file and later waits for the temps to be reached:
; select tool and configure based on filament selected T0 ; select tool 0 so extruder commands below will work M703 ; configure selected filament (sets bed/extruder temps, extrusion multiplier)
M291 R"Heating Extruder & Bed" P"Please wait..." T0 M116 ; wait for temps to reach set points M291 R"Priming Extruder" P"Please wait..." T0
-
@fcwilt said in How do I enable the hot end heater:
T0 ; select tool 0 so extruder commands below will work M703 ; configure selected filament (sets bed/extruder temps, extrusion multiplier)
Thanks. So doing it this way places all the filament information in the printer. Do these settings overrule the same settings from the slicer, or do those have to be set to zero? If they're set to zero, though, I'm not sure that means that the slicer doesn't set the parameters, or does set them to zero, so it's back to: where is the printer getting its filament settings from?
For example, here's what PrusaSlicer is setting for filament parameters:
Over here in the Duet-resident filament config file is:
So, "who wins out?"
Guess I'll find out by trying it.
-
This is what Cura does for the settings:
; Cura (Repeteir flavor - no temps) inserts the following around the call to this file ;M109 S0 ; set extruder temp and wait (no wait with S0) ;M82 ; absolute E moves ;M98 P"print_begin.g" ; invokes this file ;G92 E0 ; set E position ;G92 E0 ; set E position again (have no idea why) ;G1 F1800 E-1 ; do initial retract
The M109 is setting the extruder temp to 0 which is of no consequence so when you get to the T0/M703 commands in the print_begin.g file the temp settings commands in the filament specific config.g file (G10, M140, M558) are executed and determine the temps.
-
@fcwilt Okay, thanks, so the printer "wins" as far as which parameters are being used.
Okay, I'm trying to get the call to filament config settings to work, yet it's as if the printer isn't seeing them at all.
Here's my print_begin file:
; PrusaSlicer (RepRapflavor) inserts the following around the call to this file ;M106 S0 ; fan off ;M98 P"print_begin.g" ; invokes this file ;G21 ; set units to millimeters ;G90 ; absolute XYZ moves ;M83 ; relative E moves G32 ; home and level bed, then move to bed center and set Z datum ; select tool and configure based on filament selected T0 ; select tool 0 so extruder commands below will work M703 ; loads selected filament configuration (bed/extruder temps, extrusion ; multiplier, etc). See config.g in filament folder. ; setup to print G90 ; absolute moves G1 Z20 F2000 ; position for cleaning - set as desired G1 X0 Y-170 F10000 ; position for cleaning - set as desired M291 R"Heating Extruder & Bed" P"Please wait..." T0 M116 ; wait for temps to reach set points M291 R"Priming Extruder" P"Please wait..." T0 M83 ; insure extruder relative mode G92 E0 ; reset the extruder logical position G1 E10 F60 ; prime the extruder M400 ; wait to complete G92 E0 ; reset the extruder logical position M291 R"Clean Nozzle and Bed" P"Click OK to begin printing" S3 T0 G1 E-1.2 F60 ; retract to control oozing M400 ; wait to complete G92 E0 ; reset the extruder logical position G1 X0 Y0 F10000 ; move probe to center of bed G30 ; probe once to set Z=0 datum, necessary for loading height map G29 S1 ; load existing height map, "heightmap.csv" (created via G29 S0)
And here is my filament config.g:
M291 R"PLA+" P"Configuring..." T0 M221 S100 D0 ; set extrusion multiplier G10 S190 R190 ; set extruder temps M140 S60 R60 ; set bed temp M291 R"PLA+" P"Configuring - Done" T1
What happens is:
- Start print
- Bed heater starts warming up immediately
- Bed temp reaches 60C (hot end remains at zero C commanded and off the entire time).
- Bed is leveled and Z datum set
- Nozzle moves to front of bed and immediately, "Clean Nozzle and Bed" is displayed. At the same time, the extruder starts running, but of course with the hot end never having been enabled and the temperature remaining at zero, it just clunks away on cold filament.
So it seems to be flying right past setting extruder temperature or waiting for it to achieve the target. It is not displaying the "configuring" messages in filament config.g file, nor is it displaying "Heating bed and extruder".
Do the SD /sys/filament/PLA+ files belong somewhere else? Here is where the filament files are:
-
Well the filament folder appears to be correct as you are seeing the filament specific files but the filament folder is not contained in the system folder but rather at the same level.
This is what an FTP connection to my printer displays:
Please post the first 10-20 lines of the file you are trying to print.
Thanks.
Frederick
-
-
@fcwilt How does someone without an FTP connection create a Filament folder at the same level as SYS? I did the automated code load/upgrade, and my file structure has remained the same since. I don't see how, via the DWC, to "back out a level" in order to create a new folder. I realize I can force it to happen by removing the SD card from the printer and making it happen within my laptop, but... really?
-
@kb58 said in How do I enable the hot end heater:
@fcwilt How does someone without an FTP connection create a Filament folder at the same level as SYS? I did the automated code load/upgrade, and my file structure has remained the same since. I don't see how, via the DWC, to "back out a level" in order to create a new folder. I realize I can force it to happen by removing the SD card from the printer and making it happen within my laptop, but... really?
The DWC does it for you.
See the following:
You select the Filaments item on the left (see above)
Then you select New Filament on the right upper corner (see above)
It will ask for a name and then create the required folder and files (they are empty) in the correct location.
Then you should see the new filament name on the left in the list of filaments.
Selecting the filament should take you to the empty files ready for editing.
Frederick
-
@fcwilt Yes that is how it's set up now (had to cut and paste the code in from the laptop, rather than pointing the DWC to where to get it from).
Anyway, there's something else going on. I double checked that the filament files are where they should be, but when the print is started, it's as if it's not executing the filament config.g file. No messages and it's not setting extruder temperature. Not sure where the bed temp command of 60C is coming from but suspect that's from the slicer.
-
I don't know why I thought you were using Cura - Prusa is a bit different.
This is what I found Prusa generates and the conditions I used in configuring Prusa:
; PrusaSlicer (RepRapflavor - no temps) inserts the following around the call to this file ;M107 ; fan off (should be M106 S0) ;M98 P"print_begin.g" ; invokes this file ;G21 ; set units to millimeters ;G90 ; absolute XYZ moves ;M83 ; relative E moves
Check your settings in Prusa and see if the generated code matches the above.
Frederick
-
@fcwilt I did at 14:58
-
@kb58 said in How do I enable the hot end heater:
@fcwilt I did at 14:58
I know - I was working too fast and trying to juggle too many things at once - see my post before this one regards Prusa settings.
Frederick
-
-
A portion of "print_begin"
I think the clue is in this area. Even if the M703 on Line 12 isn't doing anything, I can't figure out why the messages on Line 20 and 22 aren't appearing.
What's strange is that this all used to work fine before adding content to the filament files... Maybe I need to back up and delete it.
-
The G32 invokes bed.g
Perhaps something is happening in bed.g that is causing the problem.
Post bed.g, please.
Frederick
-
; bed.g ; called to perform automatic bed compensation via G32 ; M561 ; clear any bed transform G28 ; home all G30 P0 X-139 Y-119 Z-99999 ; probe near left front leadscrew G30 P1 X0 Y150 Z-99999 ; probe near rear center leadscrew G30 P2 X145 Y-119 Z-99999 S3 ; probe near right front leadscrew, then perform 3-pt calibration G1 X0 Y0 G30 G30 s-1 ;M291 P"Leveling finished" R"Probing..." S1 T2 M291 P"Leveling finished" S1 T2
-
@kb58 said in How do I enable the hot end heater:
; bed.g ; called to perform automatic bed compensation via G32 ; M561 ; clear any bed transform G28 ; home all G30 P0 X-139 Y-119 Z-99999 ; probe near left front leadscrew G30 P1 X0 Y150 Z-99999 ; probe near rear center leadscrew G30 P2 X145 Y-119 Z-99999 S3 ; probe near right front leadscrew, then perform 3-pt calibration G1 X0 Y0 G30 G30 s-1 ;M291 P"Leveling finished" R"Probing..." S1 T2 M291 P"Leveling finished" S1 T2
That last M291 doesn't have the R parameter - perhaps that is the problem.
Also why are you doing the G30 S-1? It doesn't hurt but I'm just curious.
Frederick
-
Don't see how, given that:
So R is just an option title.
About the G30 s-1, it's just for checking on what the printer thinks the probe to bed offset is. Want to make sure it's not drifting.
-
@kb58 Hah, I'm back at the same point when this thread was started. I can make everything work if I manually enable the hot end heater via the DWC. I had expected the filament code to enable the hot end heater and it simply doesn't. I'll have to review that code, or insert some new code to make it happen.