@sputnikoc3d said in Opinions on "FYSETC" ... politely, please.:
Why should we be polite when discussing them ?
The op is Canadian!
@sputnikoc3d said in Opinions on "FYSETC" ... politely, please.:
Why should we be polite when discussing them ?
The op is Canadian!
from a user point of view it's a bug. It says the temperature is rising too slowly when in fact it's rising just fine. This is the #1 issue affecting reliability for me.
Back once again to report heater faults. This time I think the issue is that my room temperature is too cold, even though my printer is enclosed, it's not perfectly sealed.
I don't need help troubleshooting, just wanted to report that the duet firmware is still buggy here.
Yep I do copy/paste the line into config.g. It looks like the values are applied correctly too:
In my config.g:
M307 H0:
Hmm, got another heater fault today despite having changed the thermistor value and retuning.
I think the problem is that it is using the wrong thermistor value, as per the graph the keenovo thermistor vs bed thermistor are way different when they should be the same. This is my mistake.
Thank you Phaedrux!
Thanks!
Still running the tuner, can post results when done. Just realized that my config.g has "B4240" for the bed thermistor, when I think it should be B3950. Could that be the cause?
M303 H0 S100
Config.g:
;General Setup - RailCore RRF on a SBC for Duet3
M929 S2 ; Enable Logging
G21 ; Work in millimetres
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves
; Stepper configuration
M569 P0 S1 D3 ; Drive 0 X / Rear
M569 P1 S0 D3 ; Drive 1 Y / Front
M569 P2 S1 ; Drive 2 Z Front Left
M569 P3 S1 ; Drive 3 Z Rear Left
M569 P4 S1 ; Drive 4 Z Right
M569 P5 S1 ; Drive 5 Extruder
;Axis configuration
M669 K1 ; corexy mode
M584 X0 Y1 Z2:3:4 E5 ; Map X to drive 0 Y to drive 1, Z to drives 2, 3, 4, and E to drive 5
;Leadscrew locations
M671 X-15:-15:336 Y20:277:150 S7.5
M350 X16 Y16 Z16 E16 I1 ; set 16x microstepping for axes with interpolation
M906 X1400 Y1400 Z1200 E800 I80 ; Set motor currents (mA)
;M906 X1200 Y1200 Z1200 E800 I80 ; Set motor currents (mA)
M201 X2500 Y2500 Z100 E1500 ; Accelerations (mm/s^2)
M203 X24000 Y24000 Z900 E3600 ; Maximum speeds (mm/min)
M566 X800 Y800 Z100 E1500 ; Maximum jerk speeds mm/minute
M208 X288 Y305 Z338 ; set axis maxima and high homing switch positions (adjust to suit your machine)
M208 X-10 Y0 Z0 S1 ; set axis minima and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed)
M92 X200 Y200 Z1600 E837 ; steps/mm
; End Stops
M574 X1 S1 P"io1.in" ; Map the X endstop to io1.in
M574 Y1 S1 P"io2.in" ; May the Y endstop to io2.in
; Thermistors
M308 S0 P"temp0" Y"thermistor" A"bed_heat" T100000 B4240 H0 L0 ; Bed thermistor - connected to temp0
M308 S1 P"temp1" Y"thermistor" A"e0_heat" T100000 B4725 C7.06e-8 H0 L0 ; duet3 e3d thermistor - connected to e0_heat
;M308 S1 P"temp1" Y"thermistor" A"e0_heat" T500000 B4723 C1.196220e-7 H0 L0 ; _RRF3_ slice thermistor
M308 S2 P"temp2" Y"thermistor" A"keenovo" T100000 B3950 H0 L0 ; Keenovo thermistor - connected to temp2
;Define Heaters
M950 H0 C"out0" T0 ; Bed heater is on out0
M950 H1 C"out1" T1 ; Hotend heater is on out1
;Define Bed
M140 H0
M307 H0 R0.246 K0.112:0.000 D30.62 E1.35 S1.00 B0 ; Bed, with enclosure tuned at 100c
; M307 H0 B0 R0.238 C1055.6 D38.24 S1.00 V24.0 ; Bed, with enclosure tuned at 60c
; M307 H0 R0.225 K0.135:0.000 D45.28 E1.35 S1.00 B0 ; Bed, no enclosure tuned at 60c
M307 H1 R2.489 K0.564:0.000 D6.51 E1.35 S1.00 B0 V24.0 ; Hotend with 5015 fan, with enclosure
; M307 H1 R2.370 K0.536:0.000 D7.36 E1.35 S1.00 B0 V24.0 ; Hotend with 5015 fan, no enclosure
M570 S360 ; Hotend may be a little slow to heat up so allow it 180 seconds
M143 S295 ; Set max hotend temperature
; Mesh bed level grid
M557 X102.5:227.5 Y92.65:207.65 P2:2
; Fans
M950 F0 C"out4" ; Layer fan on "out4" connector
M106 P0 S0 ; Layer Fan
M950 F1 C"out5" ; Hotend fan on "out5" connector
M106 P1 S255 H1 T50 ; enable thermostatic mode for hotend fan
; M106 P1 S0
; Filter fans
M950 F2 C"out9"
M106 P2 S0
M950 F3 C"out8"
M106 P3 S0
; Tool definitions
M563 P0 D0 H1 F0 ; Define tool 0
G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
; BLTouch
; larger probe offset = nozzle closer to the bed
M558 P9 C"io7.in" H5 R1 F120 T6000 A5 S0.02 B1 ; define the bltouch input on io7.in
M950 S0 C"io7.out" ; define the bltouch servo on io7.out
;G31 X2 Y38.15 Z1.38 P25 ; set the offsets for the bltouch
G31 X2 Y38.15 Z1.15 P25 ; set the offsets for the bltouch
; Calibrate MCU Temperature
M912 P0 S-8.7
; Stealthchop
M98 P"stealthchop/config.g"
T0 ; select first hot end
Just thought of a hack for this... I might put M562 in daemon.g if there's no solution...
Hi,
Recently I started printing with ASA which requires a higher bed temperature (85c). Every single print was getting a heater fault, so I did another PID tune of the bed at 100c. Every single print still gets a heater fault.
The only way I've found to avoid the heater faults is to preheat the bed, first to 60c or 70c then finally to my target temperature. After that I can start the print without fault.
What diagnostic information do you need to debug this?
Happy to try any other troubleshooting steps, I went through these before: https://docs.duet3d.com/en/User_manual/Troubleshooting/Heater_faults
Also it always (like 100%) triggers a heater fault unless I preheat the bed manually. So these heater faults are not really spurious, but reliable
For future travelers, I was one of the folks testing Alex Maclean's work. I haven't used the latest (time) but wanted to share my config as an example. Note it might have bugs, but hopefully gets you started: https://github.com/ibash/railcore-klipper/blob/main/ibash.cfg
Works perfectly, thanks again! For reference:
enable_filters_for_time.g
echo "enable filters for time"
if !exists(global.disable_filter_at)
global disable_filter_at = 0
;
if !exists(global.is_filter_enabled)
global is_filter_enabled = false
;
set global.disable_filter_at = {state.upTime + 10}
set global.is_filter_enabled = true
; Turn on filter fans
M98 P"filters/enable.g"
auto_disable.g
if exists(global.disable_filter_at) && exists(global.is_filter_enabled) && global.is_filter_enabled
if state.upTime >= global.disable_filter_at
set global.is_filter_enabled = false
M98 P"filters/disable.g"
;
daemon.g
M98 P"filters/auto_disable.g"
Hi,
A bit of a niche request, but is it possible to run a gcode after a print but not as part of a print?
I added air filters to my printer, and want to run them for 20 minutes following a print, but also don't want to block myself from starting a new print and/or running other gcode in the console.
Currently using stop / dwell will extend the print time for those 20 minutes, I'd like to do this async.
No big deal if there's no way to do this, I can fallback to implementing it on the raspberry pi.
@phaedrux Cool, that makes sense. Any other things I should watch out for?
After this might take a pass at enabling/disabling stealthchop midprint, thinking if I keep the z-steppers energized then I can move the head away from the print, reinitialize the x/y steppers, rehome, and then continue printing.
The specific values depend on your machine, but the things to know are:
M569 ...
and then send M569 P0
in the console with no parameters to see what the speed is set at.Here's my stealthchop config:
In my config.g:
; Trinamic Drive Tuning
; Tune tpwmthrs (V) so stealthchop runs at appropriate speeds
; and tune thigh (H) to avoid shifting into fullstep mode
; Tune stealthchop to 250mm/s, set coolstep to the same, and then limit the max speed to 120mm/s
; tpwmthrs = 12000000 / (<speed in mm/s> * 200 * 16)
; This keeps everything slow and quiet.
M569 P0 D3 V15 H15 ; Enable stealthchop on X
M569 P1 D3 V15 H15 ; Enable stealthchop on Y
M915 X Y T15 ; Coolstep only starts after stealthchop (effectively never)
; Limit speed / acceleration
M201 X1200 Y1200 ; Max Acceleration (mm/min)
M203 X7200 Y7200 ; Max Speed (mm/min)
M566 X600 Y600 ; Max "jerk" speed (mm/min)
Tuning at the top of my homex.g
G1 H2 X-0.005 ; 1 microstep movement to energize steppers
G4 P150 ; pause for 150ms to allow the driver to establish motor parameters
G1 H2 Z0.000625 ; 1 microstep movement to energize steppers
G4 P150 ; pause for 150ms to allow the driver to establish motor parameters
Again, your specific values for H/V/T depend on your machine. In my config I set it to 15, which corresponds to enabling stealthchop up to 250mm/s. But then I limit overall speed to 120mm/s because at higher speeds stealthchop will skip steps.
So, I'd recommend setting the number low (something like 10) so stealthchop is always enabled and then limiting the speed, acceleration, and jerk of your machine.
Last but not least, when troubleshooting it's useful to restart the machine between config changes (or use M999
) sometimes setting config values can get a bit funky.