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. .