ImShogun
Posts: 15
Joined: Wed Jan 07, 2015 10:32 am

fan_speed_pwm is ignored (since 2014?), documentation is almost inexistent about variables!

A read the forums for a while now, trying to figure out why I spent HOURS of my life trying to run the fan on my flashforge.

I wont spend time focusing about the printer I'm using, because it doe snot - and should not matter. Instead, I'll focus one one single functionality of S3D, scripts and variables.

Here are the facts:

I inserted M126 [fan_speed_pwm] in the starting script.
I inserted M126 [fan_speed_pwm] in the layers script, because I want it to adjust speed properly on each layers based on the process settings.

I do not care about the necessity to do this to make it work. I know it should work because these variables are ment for that.

Results:

1 It replaces the variable by zero on the start script that is correct, my process says zero for the first layer so ok.
2 It DID NOT replace any other occurrence of it in next layers!
3 As it did NOT replace them, fan is always OFF. If i turn it on from the control panel, then the S126 [fan_speed_pwm] line... turn it off on each layer.

There are at least 5 threads vaguely ignored about this in this forum. This is one of them. Despite good explanations from the other users.

Please remember that we paid for this, and we want to have it working as it should. That includes a good documentation about all variables, not some spare pages here and there (I saw the ones you have already, nothing is obvious nor synthesized properly as a technical sheet should be), and on top of that, the functionalities should be maintained. Not waved out for empiric reasons like "Others have your printer and are happy".

This is getting ridiculous, the bug has been declared in 2014 already! WAKE UP!!!!

SO, here is my attempt to do most of the debugging for you:


MY STARTING SCRIPT:

; **** Replicator 1 single start.gcode ****
M73 P0 ; enable build progress
G162 X Y F3000 ; home XY maximum
G161 Z F1200 ; home Z minimum
G92 Z-5 ; set Z to -5
G1 Z0 ; move Z to 0
G161 Z F100 ; home Z slowly
M132 X Y Z A B ; recall home offsets
G1 X-120 Y-70 Z30 F9000 ; move to wait position off table
G130 X20 Y20 Z20 A20 B20 ; lower stepper Vrefs while heating
M126 S[fan_speed_pwm]
M140 S[bed0_temperature] T0
M104 S[extruder0_temperature] T0
M134 T0 ; stabilize bed temperature
M133 T0 ; stabilize extruder temperature
G130 X127 Y127 Z40 A127 B127 ; default stepper Vrefs
G92 A0 ; zero extruder
G1 Z0.4 ; position nozzle
G1 E25 F300 ; purge nozzle
G1 X-115 Y-65 Z0.15 F1200 ; slow wipe
G1 X-110 Y-60 Z0.5 F1200 ; lift
G92 A0 ; zero extruder
M73 P1 ;@body (notify GPX body has started)
; **** end of start.gcode ****

MY LAYER CHANGE SCRIPT:

M126 S[fan_speed_pwm];

WHAT S3D MADE OF IT (START):

; **** Replicator 1 single start.gcode ****
M73 P0 ; enable build progress
G162 X Y F3000 ; home XY maximum
G161 Z F1200 ; home Z minimum
G92 Z-5 ; set Z to -5
G1 Z0 ; move Z to 0
G161 Z F100 ; home Z slowly
M132 X Y Z A B ; recall home offsets
G1 X-120 Y-70 Z30 F9000 ; move to wait position off table
G130 X20 Y20 Z20 A20 B20 ; lower stepper Vrefs while heating
M127 ; ---> CORRECT! clean and all, I had it set to 0 for first layer in the process
M140 S60 T0
M104 S205 T0
M134 T0 ; stabilize bed temperature
M133 T0 ; stabilize extruder temperature
G130 X127 Y127 Z40 A127 B127 ; default stepper Vrefs
G92 A0 ; zero extruder
G1 Z0.4 ; position nozzle
G1 E25 F300 ; purge nozzle
G1 X-115 Y-65 Z0.15 F1200 ; slow wipe
G1 X-110 Y-60 Z0.5 F1200 ; lift
G92 A0 ; zero extruder
M73 P1 ;@body (notify GPX body has started)
; **** end of start.gcode ****
G1 X0.000 Y0.000 Z0.000 E-3.0000 F1800
G1 X0.000 Y0.000 Z0.325 F1200

WHAT S3D MADE OF IT (LAYER)

; layer 1, Z = 0.225
M126 S[fan_speed_pwm]; <-- CATASTROPHY, always turning the fan off.

I tried:

- [fan0_speed_pwm] instead, not working.
- exclude specific obscure rules ignoring M126/7 commands, I tried FFAANN S[fan_speed_pwm] so that I could post-process back to M126, not working

Example of the produced gcode;

; layer 3, Z = 0.525
M126 S[fan_speed_pwm];
M126 S[fan-speed-pwm];
M126 S[fan0_speed_pwm];
M126 S[fan0-speed-pwm];
FFAANN S[fan_speed_pwm];
N_TIMES S[fan_speed_pwm] REPL_BT_S3D: [fan_speed_pwm]; yep.

And I had also a look at the release notes page here: https://www.simplify3d.com/software/release-notes/

Nothing about variables since release 1.1.4
Version 2.1.0 had "Fixed minor issue with per-layer fan speed controls" though. removed since then? Nothing about fan since. Neither cooling.

Then, to be thorough in my attempt to debug what you did not, I removed all FAN related lines from my scripts.
Guess what happened?

Not ONE line inserted for the fan control, neither M127, M126 and even M106.

What happen then if I start clicking the special cooling options? I checked "increase fan speed for layers below [duration=45] seconds", and also "Bridging fan speed override", and apparently they all got inserted. "Blow fan to full power" worked too.

Example:
; layer 28, Z = 4.275
M126 S158

That is great, it will at least save the day for overhangs and small zones, but else, the fan will keep being off.

So, for me, unless I find a hack with the temperature control for my secondary removed extruder, for example, and the post scripting process, I'll be sticking to fan 100% all the time activated manually.

Unless somebody spend a few minute to add the missing line since, probably,most if not all versions from after version 2.0.1?

That would show great respect for the hours we all spent trying to figure it out. That includes making this post.

Thank you for everything we can do with your software, I love it, but right now, I also am really disappointed. .
Last edited by ImShogun on Fri Apr 20, 2018 5:56 pm, edited 1 time in total.
ImShogun
Posts: 15
Joined: Wed Jan 07, 2015 10:32 am

Re: fan_speed_pwm is ignored (since 2014?), documentation is almost inexistent about variables!

In the meantime, this is how I recovered FAN functionalities (ONLY FOR M126/M127 commands!!!) :

Howto:

- Forget about the cooling section
- In Scripts > Post processing, add the script I paste at the end of this post
- Process > Temperature > Add Temperature controler
- Name it f.e. "MY FAN"
- Set Temp identifier to T5
- Remove "Wait for temperature controller to stabilize" (important!)
- Back In cooling > remove every options in "Fan Overrides" and "Fan Options" unless you know that it will not interfere with your new "temperature cooling settings"!

As I wanted first layer off then 50% next then 100% next, and as 100% fan is S255, I set two layer temperatures:

- Layer 1: 125
- Layer 2: 255

But feel free to set whatever you want, you basically got -almost- the same freedom as in the cooling section.

Hope it helps!

SCRIPT:

{REPLACE "M104 S0 T5" "M127"}
{REPLACE "M104 S1 T5" "M126 S1"}
{REPLACE "M104 S2 T5" "M126 S2"}
{REPLACE "M104 S3 T5" "M126 S3"}
{REPLACE "M104 S4 T5" "M126 S4"}
{REPLACE "M104 S5 T5" "M126 S5"}
{REPLACE "M104 S6 T5" "M126 S6"}
{REPLACE "M104 S7 T5" "M126 S7"}
{REPLACE "M104 S8 T5" "M126 S8"}
{REPLACE "M104 S9 T5" "M126 S9"}
{REPLACE "M104 S10 T5" "M126 S10"}
{REPLACE "M104 S11 T5" "M126 S11"}
{REPLACE "M104 S12 T5" "M126 S12"}
{REPLACE "M104 S13 T5" "M126 S13"}
{REPLACE "M104 S14 T5" "M126 S14"}
{REPLACE "M104 S15 T5" "M126 S15"}
{REPLACE "M104 S16 T5" "M126 S16"}
{REPLACE "M104 S17 T5" "M126 S17"}
{REPLACE "M104 S18 T5" "M126 S18"}
{REPLACE "M104 S19 T5" "M126 S19"}
{REPLACE "M104 S20 T5" "M126 S20"}
{REPLACE "M104 S21 T5" "M126 S21"}
{REPLACE "M104 S22 T5" "M126 S22"}
{REPLACE "M104 S23 T5" "M126 S23"}
{REPLACE "M104 S24 T5" "M126 S24"}
{REPLACE "M104 S25 T5" "M126 S25"}
{REPLACE "M104 S26 T5" "M126 S26"}
{REPLACE "M104 S27 T5" "M126 S27"}
{REPLACE "M104 S28 T5" "M126 S28"}
{REPLACE "M104 S29 T5" "M126 S29"}
{REPLACE "M104 S30 T5" "M126 S30"}
{REPLACE "M104 S31 T5" "M126 S31"}
{REPLACE "M104 S32 T5" "M126 S32"}
{REPLACE "M104 S33 T5" "M126 S33"}
{REPLACE "M104 S34 T5" "M126 S34"}
{REPLACE "M104 S35 T5" "M126 S35"}
{REPLACE "M104 S36 T5" "M126 S36"}
{REPLACE "M104 S37 T5" "M126 S37"}
{REPLACE "M104 S38 T5" "M126 S38"}
{REPLACE "M104 S39 T5" "M126 S39"}
{REPLACE "M104 S40 T5" "M126 S40"}
{REPLACE "M104 S41 T5" "M126 S41"}
{REPLACE "M104 S42 T5" "M126 S42"}
{REPLACE "M104 S43 T5" "M126 S43"}
{REPLACE "M104 S44 T5" "M126 S44"}
{REPLACE "M104 S45 T5" "M126 S45"}
{REPLACE "M104 S46 T5" "M126 S46"}
{REPLACE "M104 S47 T5" "M126 S47"}
{REPLACE "M104 S48 T5" "M126 S48"}
{REPLACE "M104 S49 T5" "M126 S49"}
{REPLACE "M104 S50 T5" "M126 S50"}
{REPLACE "M104 S51 T5" "M126 S51"}
{REPLACE "M104 S52 T5" "M126 S52"}
{REPLACE "M104 S53 T5" "M126 S53"}
{REPLACE "M104 S54 T5" "M126 S54"}
{REPLACE "M104 S55 T5" "M126 S55"}
{REPLACE "M104 S56 T5" "M126 S56"}
{REPLACE "M104 S57 T5" "M126 S57"}
{REPLACE "M104 S58 T5" "M126 S58"}
{REPLACE "M104 S59 T5" "M126 S59"}
{REPLACE "M104 S60 T5" "M126 S60"}
{REPLACE "M104 S61 T5" "M126 S61"}
{REPLACE "M104 S62 T5" "M126 S62"}
{REPLACE "M104 S63 T5" "M126 S63"}
{REPLACE "M104 S64 T5" "M126 S64"}
{REPLACE "M104 S65 T5" "M126 S65"}
{REPLACE "M104 S66 T5" "M126 S66"}
{REPLACE "M104 S67 T5" "M126 S67"}
{REPLACE "M104 S68 T5" "M126 S68"}
{REPLACE "M104 S69 T5" "M126 S69"}
{REPLACE "M104 S70 T5" "M126 S70"}
{REPLACE "M104 S71 T5" "M126 S71"}
{REPLACE "M104 S72 T5" "M126 S72"}
{REPLACE "M104 S73 T5" "M126 S73"}
{REPLACE "M104 S74 T5" "M126 S74"}
{REPLACE "M104 S75 T5" "M126 S75"}
{REPLACE "M104 S76 T5" "M126 S76"}
{REPLACE "M104 S77 T5" "M126 S77"}
{REPLACE "M104 S78 T5" "M126 S78"}
{REPLACE "M104 S79 T5" "M126 S79"}
{REPLACE "M104 S80 T5" "M126 S80"}
{REPLACE "M104 S81 T5" "M126 S81"}
{REPLACE "M104 S82 T5" "M126 S82"}
{REPLACE "M104 S83 T5" "M126 S83"}
{REPLACE "M104 S84 T5" "M126 S84"}
{REPLACE "M104 S85 T5" "M126 S85"}
{REPLACE "M104 S86 T5" "M126 S86"}
{REPLACE "M104 S87 T5" "M126 S87"}
{REPLACE "M104 S88 T5" "M126 S88"}
{REPLACE "M104 S89 T5" "M126 S89"}
{REPLACE "M104 S90 T5" "M126 S90"}
{REPLACE "M104 S91 T5" "M126 S91"}
{REPLACE "M104 S92 T5" "M126 S92"}
{REPLACE "M104 S93 T5" "M126 S93"}
{REPLACE "M104 S94 T5" "M126 S94"}
{REPLACE "M104 S95 T5" "M126 S95"}
{REPLACE "M104 S96 T5" "M126 S96"}
{REPLACE "M104 S97 T5" "M126 S97"}
{REPLACE "M104 S98 T5" "M126 S98"}
{REPLACE "M104 S99 T5" "M126 S99"}
{REPLACE "M104 S100 T5" "M126 S100"}
{REPLACE "M104 S101 T5" "M126 S101"}
{REPLACE "M104 S102 T5" "M126 S102"}
{REPLACE "M104 S103 T5" "M126 S103"}
{REPLACE "M104 S104 T5" "M126 S104"}
{REPLACE "M104 S105 T5" "M126 S105"}
{REPLACE "M104 S106 T5" "M126 S106"}
{REPLACE "M104 S107 T5" "M126 S107"}
{REPLACE "M104 S108 T5" "M126 S108"}
{REPLACE "M104 S109 T5" "M126 S109"}
{REPLACE "M104 S110 T5" "M126 S110"}
{REPLACE "M104 S111 T5" "M126 S111"}
{REPLACE "M104 S112 T5" "M126 S112"}
{REPLACE "M104 S113 T5" "M126 S113"}
{REPLACE "M104 S114 T5" "M126 S114"}
{REPLACE "M104 S115 T5" "M126 S115"}
{REPLACE "M104 S116 T5" "M126 S116"}
{REPLACE "M104 S117 T5" "M126 S117"}
{REPLACE "M104 S118 T5" "M126 S118"}
{REPLACE "M104 S119 T5" "M126 S119"}
{REPLACE "M104 S120 T5" "M126 S120"}
{REPLACE "M104 S121 T5" "M126 S121"}
{REPLACE "M104 S122 T5" "M126 S122"}
{REPLACE "M104 S123 T5" "M126 S123"}
{REPLACE "M104 S124 T5" "M126 S124"}
{REPLACE "M104 S125 T5" "M126 S125"}
{REPLACE "M104 S126 T5" "M126 S126"}
{REPLACE "M104 S127 T5" "M126 S127"}
{REPLACE "M104 S128 T5" "M126 S128"}
{REPLACE "M104 S129 T5" "M126 S129"}
{REPLACE "M104 S130 T5" "M126 S130"}
{REPLACE "M104 S131 T5" "M126 S131"}
{REPLACE "M104 S132 T5" "M126 S132"}
{REPLACE "M104 S133 T5" "M126 S133"}
{REPLACE "M104 S134 T5" "M126 S134"}
{REPLACE "M104 S135 T5" "M126 S135"}
{REPLACE "M104 S136 T5" "M126 S136"}
{REPLACE "M104 S137 T5" "M126 S137"}
{REPLACE "M104 S138 T5" "M126 S138"}
{REPLACE "M104 S139 T5" "M126 S139"}
{REPLACE "M104 S140 T5" "M126 S140"}
{REPLACE "M104 S141 T5" "M126 S141"}
{REPLACE "M104 S142 T5" "M126 S142"}
{REPLACE "M104 S143 T5" "M126 S143"}
{REPLACE "M104 S144 T5" "M126 S144"}
{REPLACE "M104 S145 T5" "M126 S145"}
{REPLACE "M104 S146 T5" "M126 S146"}
{REPLACE "M104 S147 T5" "M126 S147"}
{REPLACE "M104 S148 T5" "M126 S148"}
{REPLACE "M104 S149 T5" "M126 S149"}
{REPLACE "M104 S150 T5" "M126 S150"}
{REPLACE "M104 S151 T5" "M126 S151"}
{REPLACE "M104 S152 T5" "M126 S152"}
{REPLACE "M104 S153 T5" "M126 S153"}
{REPLACE "M104 S154 T5" "M126 S154"}
{REPLACE "M104 S155 T5" "M126 S155"}
{REPLACE "M104 S156 T5" "M126 S156"}
{REPLACE "M104 S157 T5" "M126 S157"}
{REPLACE "M104 S158 T5" "M126 S158"}
{REPLACE "M104 S159 T5" "M126 S159"}
{REPLACE "M104 S160 T5" "M126 S160"}
{REPLACE "M104 S161 T5" "M126 S161"}
{REPLACE "M104 S162 T5" "M126 S162"}
{REPLACE "M104 S163 T5" "M126 S163"}
{REPLACE "M104 S164 T5" "M126 S164"}
{REPLACE "M104 S165 T5" "M126 S165"}
{REPLACE "M104 S166 T5" "M126 S166"}
{REPLACE "M104 S167 T5" "M126 S167"}
{REPLACE "M104 S168 T5" "M126 S168"}
{REPLACE "M104 S169 T5" "M126 S169"}
{REPLACE "M104 S170 T5" "M126 S170"}
{REPLACE "M104 S171 T5" "M126 S171"}
{REPLACE "M104 S172 T5" "M126 S172"}
{REPLACE "M104 S173 T5" "M126 S173"}
{REPLACE "M104 S174 T5" "M126 S174"}
{REPLACE "M104 S175 T5" "M126 S175"}
{REPLACE "M104 S176 T5" "M126 S176"}
{REPLACE "M104 S177 T5" "M126 S177"}
{REPLACE "M104 S178 T5" "M126 S178"}
{REPLACE "M104 S179 T5" "M126 S179"}
{REPLACE "M104 S180 T5" "M126 S180"}
{REPLACE "M104 S181 T5" "M126 S181"}
{REPLACE "M104 S182 T5" "M126 S182"}
{REPLACE "M104 S183 T5" "M126 S183"}
{REPLACE "M104 S184 T5" "M126 S184"}
{REPLACE "M104 S185 T5" "M126 S185"}
{REPLACE "M104 S186 T5" "M126 S186"}
{REPLACE "M104 S187 T5" "M126 S187"}
{REPLACE "M104 S188 T5" "M126 S188"}
{REPLACE "M104 S189 T5" "M126 S189"}
{REPLACE "M104 S190 T5" "M126 S190"}
{REPLACE "M104 S191 T5" "M126 S191"}
{REPLACE "M104 S192 T5" "M126 S192"}
{REPLACE "M104 S193 T5" "M126 S193"}
{REPLACE "M104 S194 T5" "M126 S194"}
{REPLACE "M104 S195 T5" "M126 S195"}
{REPLACE "M104 S196 T5" "M126 S196"}
{REPLACE "M104 S197 T5" "M126 S197"}
{REPLACE "M104 S198 T5" "M126 S198"}
{REPLACE "M104 S199 T5" "M126 S199"}
{REPLACE "M104 S200 T5" "M126 S200"}
{REPLACE "M104 S201 T5" "M126 S201"}
{REPLACE "M104 S202 T5" "M126 S202"}
{REPLACE "M104 S203 T5" "M126 S203"}
{REPLACE "M104 S204 T5" "M126 S204"}
{REPLACE "M104 S205 T5" "M126 S205"}
{REPLACE "M104 S206 T5" "M126 S206"}
{REPLACE "M104 S207 T5" "M126 S207"}
{REPLACE "M104 S208 T5" "M126 S208"}
{REPLACE "M104 S209 T5" "M126 S209"}
{REPLACE "M104 S210 T5" "M126 S210"}
{REPLACE "M104 S211 T5" "M126 S211"}
{REPLACE "M104 S212 T5" "M126 S212"}
{REPLACE "M104 S213 T5" "M126 S213"}
{REPLACE "M104 S214 T5" "M126 S214"}
{REPLACE "M104 S215 T5" "M126 S215"}
{REPLACE "M104 S216 T5" "M126 S216"}
{REPLACE "M104 S217 T5" "M126 S217"}
{REPLACE "M104 S218 T5" "M126 S218"}
{REPLACE "M104 S219 T5" "M126 S219"}
{REPLACE "M104 S220 T5" "M126 S220"}
{REPLACE "M104 S221 T5" "M126 S221"}
{REPLACE "M104 S222 T5" "M126 S222"}
{REPLACE "M104 S223 T5" "M126 S223"}
{REPLACE "M104 S224 T5" "M126 S224"}
{REPLACE "M104 S225 T5" "M126 S225"}
{REPLACE "M104 S226 T5" "M126 S226"}
{REPLACE "M104 S227 T5" "M126 S227"}
{REPLACE "M104 S228 T5" "M126 S228"}
{REPLACE "M104 S229 T5" "M126 S229"}
{REPLACE "M104 S230 T5" "M126 S230"}
{REPLACE "M104 S231 T5" "M126 S231"}
{REPLACE "M104 S232 T5" "M126 S232"}
{REPLACE "M104 S233 T5" "M126 S233"}
{REPLACE "M104 S234 T5" "M126 S234"}
{REPLACE "M104 S235 T5" "M126 S235"}
{REPLACE "M104 S236 T5" "M126 S236"}
{REPLACE "M104 S237 T5" "M126 S237"}
{REPLACE "M104 S238 T5" "M126 S238"}
{REPLACE "M104 S239 T5" "M126 S239"}
{REPLACE "M104 S240 T5" "M126 S240"}
{REPLACE "M104 S241 T5" "M126 S241"}
{REPLACE "M104 S242 T5" "M126 S242"}
{REPLACE "M104 S243 T5" "M126 S243"}
{REPLACE "M104 S244 T5" "M126 S244"}
{REPLACE "M104 S245 T5" "M126 S245"}
{REPLACE "M104 S246 T5" "M126 S246"}
{REPLACE "M104 S247 T5" "M126 S247"}
{REPLACE "M104 S248 T5" "M126 S248"}
{REPLACE "M104 S249 T5" "M126 S249"}
{REPLACE "M104 S250 T5" "M126 S250"}
{REPLACE "M104 S251 T5" "M126 S251"}
{REPLACE "M104 S252 T5" "M126 S252"}
{REPLACE "M104 S253 T5" "M126 S253"}
{REPLACE "M104 S254 T5" "M126 S254"}
{REPLACE "M104 S255 T5" "M126 S255"}

Return to “Troubleshooting and Bug Reports”