Temperature chart scale up to 2000c after updating to RRF3.2?
-
@Phaedrux I've been told so too;
see line 96 on my config.g:
; General Setup - RailCore RRF on an SBC for Duet3 ; General G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ; Debugging M111 S0 ; Debug (S0 is off; S1 is on) M929 P"eventlog.txt" S1 ; start logging to file eventlog.txt M915 X Y S10 F0 R1 ; log motor stalls (added 5/4/2019) ; Stepper Configuration and Trinamic Drive Tuning M569 P0 S1 D3 V5 H5 ; X / Rear - LDO-57STH56-2804MACRC M569 P1 S0 D3 V5 H5 ; Y / Front - LDO-57STH56-2804MACRC M569 P2 S1 D3 V5 H5 ; Z / FL - LDO-42STH47-1684MAC M569 P3 S1 D3 V5 H5 ; Z / RL - LDO-42STH47-1684MAC M569 P4 S1 D3 V5 H5 ; Z / MR - LDO-42STH47-1684MAC M569 P5 S0 D3 V5 H5 ; E / Extruder - LDO-42STH25-1004AC ; Stealthchop parameters M915 P0:1 S3 F1 H153 T20000 R0 M915 P2:3:4 S3 F1 H1652 T1 R0 M915 P5 S3 F1 H3037 T20000 R0 ; Steps/mm (for the default 1/16 microstepping) M92 X160 Y160 Z1600 E4130 ; Steps/mm ; Microstepping (independent of M92 above) M350 X64 Y64 Z16 I1 ; Set 32x microstepping for axes with interpolation M350 E16 I0 ; Set 16x microstepping for Flex3Drive extruder interpolation OFF ; Motor current M906 X{2800 * 0.65} Y{2800 * 0.65} Z{1680 * 0.65} E420 I30 ; Set motor currents (mA) and motor idle factor (%) M84 S30 ; Idle timeout 30s ; Speeds M203 X15000 Y15000 Z600 E2400 ; Maximum speeds (mm/min) // XY15000(250mm/s), Z600(10mm/s)) ; Accelerations and Jerk M201 X2500 Y2500 Z100 E120 ; Accelerations (mm/s^2) M566 X800 Y800 Z100 E6 ; Maximum jerk speeds (mm/min) ; 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 M208 X290 Y303 Z325 ; Set axis maxima and high homing switch positions (adjust to suit your machine) M208 X-27 Y0 Z0 S1 ; Set axis minima and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed) ; Leadscrew locations M671 X-10:-10:333 Y22.5:277.5:150 S7.5 ; End Stops M574 X1 S1 P"io0.in" ; Map the X endstop to io1.in M574 Y1 S1 P"io3.in" ; May the Y endstop to io2.in ; BLTouch 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 X Y25 Z2.00 P25 ; Set the offsets for the bltouch ; Define Bed M140 H0 M557 X5:290 Y30:300 P8:8 ; Probe from X=5 to 290, Y=30 to 300mm with 8x8 points ; Thermistors M308 S0 P"temp0" Y"thermistor" A"Keenovo" T100000 B4240 H0 L0 ; Bed thermistor - connected to temp0 M308 S1 P"temp1" Y"thermistor" A"Mosquito" T4606017 B5848 C5.548428e-8 H0 L0 ; Dyze 500c thermistor - connected to e0_heat ; Define Heaters M950 H0 C"out0" T0 ; Bed heater is on out0 M950 H1 C"out1" T1 ; Hotend heater is on out1 ; Heater model parameters M307 H0 A158.5 C366.7 D2.1 S1.0 V24.0 B0 ; Keenovo duet 3 configuration M307 H1 A458.2 C108.7 D4.5 S1.0 V29.3 B0 ; Mosquito 260deg 29.4V ; Heater Fault Parameters M570 H1 P10 T15 S180 ; Hotend allows 10sec for anomaly, permits 15deg excursion, abandons print after 180s M143 H1 P1 S350 A0 ; raise a heater fault if it exceeds 350C ; Fans M950 F0 C"out5" ; Hotend fan on "out5" connector M106 P0 H1 S0.57 T75 B0.3 ; Enable thermostatic mode for hotend fan - 0.81 to compensate for 29.4V + 0.7 slice recommended to quiet it down M950 F1 C"out4" ; Layer fan on "out4" connector M106 P1 S0 ; Layer Fan ; Tool definitions M563 P0 D0 H1 F1 ; Define tool 0 G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures ; Duet3 Cooling M308 S2 Y"drivers" A"DRIVERS" ; Configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet M308 S3 Y"mcu-temp" A"MCU" ; Configure sensor 3 as thermistor on pin e1temp for left stepper M950 F2 C"out6" Q100 ; Create fan 2 on pin fan2 and set its frequency M106 P2 C"ElectroBox" H1 S0.8 T75 ; Set fan 2 value ; Filament Sensor M591 D0 P7 C"io6.in" S0 E50 L1.25 R25:175 A1 ; Mesh Bed Compensation G29 S1 ; Load height map from SD card M376 H3 ; Set taper height 3mm ; Dynamic Acceleration Adjustment (DAA) ;M593 F52 ; Logging M929 P"eventlog.txt" S1 ; start logging to file eventlog.txt T0 ; Select first hot end
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.2 running on Duet 3 MB6HC v0.6 or 1.0 (SBC mode) Board ID: 08DJM-956L2-G43S4-6JTDA-3SS6L-1B76H Used output buffers: 1 of 40 (10 max) === RTOS === Static ram: 149788 Dynamic ram: 62788 of which 52 recycled Never used RAM 146204, free system stack 200 words Tasks: Linux(ready,121) HEAT(blocked,297) CanReceiv(blocked,927) CanSender(blocked,371) CanClock(blocked,354) TMC(blocked,53) MAIN(running,1199) IDLE(ready,19) Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:00:41 ago, cause: power up Last software reset at 2021-01-08 19:27, reason: User, GCodes spinning, available RAM 145540, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task Linu Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 Aux1 errors 0,0,0 MCU temperature: min 14.1, current 24.5, max 24.5 Supply voltage: min 27.9, current 29.5, max 29.5, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.1, max 12.1, under voltage events: 0 Driver 0: position 0, standstill, reads 34325, writes 20 timeouts 0, SG min/max 0/0 Driver 1: position 0, standstill, reads 34325, writes 20 timeouts 0, SG min/max 0/0 Driver 2: position 0, standstill, reads 34327, writes 19 timeouts 0, SG min/max 0/0 Driver 3: position 0, standstill, reads 34327, writes 19 timeouts 0, SG min/max 0/0 Driver 4: position 0, standstill, reads 34330, writes 16 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 34330, writes 16 timeouts 0, SG min/max 0/0 Date/time: 2021-01-18 15:17:31 Slowest loop: 0.29ms; fastest: 0.04ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 37.5MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 125, maxWait 0ms, bed compensation in use: mesh, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Movement lock held by null HTTP* is doing "M122" in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger* is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === Filament sensors === Extruder 0 sensor: no data received === CAN === Messages queued 78, send timeouts 282, received 0, lost 0, longest wait 0ms for reply type 0, free buffers 48 === SBC interface === State: 4, failed transfers: 0 Last transfer: 1ms ago RX/TX seq numbers: 777/777 SPI underruns 0, overruns 0 Number of disconnects: 0, IAP RAM available 0x2c8a8 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.2.0 Code buffer space: 4096 Configured SPI speed: 8000000 Hz Full transfers per second: 37.34 Maximum length of RX/TX data transfers: 2728/844
-
As far as I can tell your M140 (line 75) should come after the corresponding M950 (line 85)
"Order dependency
In RRF3 a M140 command with H parameter (other than H-1) must come after the M950 command that creates that heater, and before any M143 command that sets a temperature limit for that heater."
HTH Doug
-
Most commands in RRF don't depend on order, but some do. You've found a couple. In addition to The M140/M143 problem, there's also M584.
@fractalengineer said in Temperature chart scale up to 2000c after updating to RRF3.2?:
; 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 M208 X290 Y303 Z325 ; Set axis maxima and high homing switch positions (adjust to suit your machine) M208 X-27 Y0 Z0 S1
Your M584 line also needs to come earlier than any commands that refer to axis parameters.
@fractalengineer said in Temperature chart scale up to 2000c after updating to RRF3.2?:
; Mesh Bed Compensation G29 S1 ; Load height map from SD card M376 H3 ; Set taper height 3mm
Also, don't load the mesh in config.g because you've not defined z0 at startup at. Can lead to unexpected z offsets or weirdness.
Sending M98 P"config.g" to check for any other syntax errors might be a good idea.
-
The general rule on command order in config.g is: don't try to change the parameters of anything that you haven't already created and doesn't exist by default. For example:
- Don't refer to any axis letter or extruder number that you haven't created using M584 (except that XYZ already exist by default)
- Don't refer to any temperature sensor in M950 or M106 before you create it using M308
- Don't refer to a heater in M307, M140, M141, M143 or m563 before you create it using M950
- Don't refer to a fan in M106 before you create it using M950
- Don't refer to a tool in G10 before you create it using M563
-
Alright thanks guys; following your advice I moved the M140 block below M950, and while at it moved the M584 up top
DWC scale is back to 350deg, problem fixed!
Cheers
-
I added those rule of thumb to the gcode wiki.
-
@dc42 Will the firmware generate an error message in these situations, or silently continue? If the latter; would it be possible to add such sanity checks?
-
@ÖrjanE Sending M98 P"config.g" is a good sanity check before you start testing things. That will usually catch bad syntax.
-
@Phaedrux said in Temperature chart scale up to 2000c after updating to RRF3.2?:
@ÖrjanE Sending M98 P"config.g" is a good sanity check before you start testing things. That will usually catch bad syntax.
Yes, but I guess it will not catch these "order errors" since config.g will already have been processed once at startup. Things that need to be defined before use will be defined the second time config.g is processed.
The problem is how the firmware should communicate error messages at startup, when the web interface is not up yet. Perhaps logging them to a file on the sd-card would be an alternative?
-
@ÖrjanE said in Temperature chart scale up to 2000c after updating to RRF3.2?:
The problem is how the firmware should communicate error messages at startup, when the web interface is not up yet. Perhaps logging them to a file on the sd-card would be an alternative?
If you enable logging at the start of config.g using M929, they should already be logged.
-
@dc42 said in Temperature chart scale up to 2000c after updating to RRF3.2?:
If you enable logging at the start of config.g using M929, they should already be logged.
Ah, I had missed this possibility (probably did not get that far when studying the gcode-list...). Sounds like this would be a good recommendation for people trying to debug their configuration setup.