Heater Monitor Setup (M143)
-
Hi, I have the following configuration:
- Mains powered silicone heater mat with an integrated thermistor
- A second thermistor on the side of the aluminum bed
- Duet Maestro at the current beta firmware version
I am trying to configurethe following:
- My board should use the bed thermistor as the control target
- The temperature of the silicone pad shoud stay below a given temperature, lets say 120°C
My configuration is using S0 for the silicone heater thermistor and S4 for the aluminium bed thermistor. My understanding is that I should be able to configure a monitor with M143 to limit the maximum silicone heater temperature as follows:
;; thermal ------------------------------------------------- ; Sensors -------------------------------------------------- M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 A"Bedmat"; configure sensor 0 as thermistor on pin temp0 M308 S1 P"e0temp" Y"pt1000" A"Hotend" ; configure sensor 1 as thermistor M308 S2 P"ctemp" Y"thermistor" T100000 B3950 A"Chamber" ;Chamber fan M308 S3 Y"mcu-temp" A"Board" M308 S4 P"e1temp" Y"thermistor" T100000 B3950 A"Bedplate" ; Heaters -------------------------------------------------- ;Bed M950 H0 C"bedheat" T4 ; create bed heater output on out0 and map it to sensor 4 M143 H0 P1 T0 A2 S110 C0 ; Regulate (A2) bed heater (H0) to have pad sensor (T0) below 110°C. Use Heater monitor 1 for it M143 H0 P2 T0 A0 S120 C0 ; Fault (A0) bed heater (H0) if pad sensor (T0) exceeds 120°C. Use Heater monitor 2 for it M143 H0 P0 S110 ; Set bed heater max temperature to 120°C, use implict monitor 0 which is implicitly configured for heater fault M140 H0
However, I see the silicone pad temperature overshooting to the point that I rather turn it of by hand:
It looks like the monitors are not working - do I miss anything here?
Edit: M122 Output
M122 === Diagnostics === RepRapFirmware for Duet 2 Maestro version 3.2-beta3.2 running on Duet Maestro 1.0 Board ID: 08DJM-9X66L-LG3SJ-6JKF2-3SJ6L-KAX6R Used output buffers: 3 of 24 (11 max) === RTOS === Static ram: 22780 Dynamic ram: 97892 of which 200 recycled Never used RAM 9176, free system stack 218 words Tasks: NETWORK(ready,205) HEAT(blocked,331) TMC(blocked,71) MAIN(running,480) IDLE(ready,21) Owned mutexes: === Platform === Last reset 00:00:39 ago, cause: software Last software reset at 2020-11-21 20:12, reason: User, GCodes spinning, available RAM 9176, slot 1 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN Error status: 0x00 MCU temperature: min 42.3, current 42.4, max 43.3 Supply voltage: min 0.0, current 24.4, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: position 0, standstill, read errors 0, write errors 1, ifcnt 107, reads 10859, writes 8, timeouts 0, DMA errors 0 Driver 1: position 0, standstill, read errors 0, write errors 1, ifcnt 105, reads 10858, writes 8, timeouts 0, DMA errors 0 Driver 2: position 0, standstill, read errors 0, write errors 1, ifcnt 106, reads 10858, writes 8, timeouts 0, DMA errors 0 Driver 3: position 0, standstill, read errors 0, write errors 1, ifcnt 101, reads 10858, writes 8, timeouts 0, DMA errors 0 Driver 4: position 0, standstill, read errors 0, write errors 1, ifcnt 105, reads 10858, writes 8, timeouts 0, DMA errors 0 Driver 5: position 0, standstill, read errors 0, write errors 1, ifcnt 105, reads 10858, writes 8, timeouts 0, DMA errors 0 Driver 6: position 0, standstill, read errors 0, write errors 1, ifcnt 105, reads 10858, writes 8, timeouts 0, DMA errors 0 Date/time: 2020-11-21 20:12:54 Slowest loop: 25.26ms; fastest: 0.16ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 10 SD card 0 detected, interface speed: 15.0MBytes/sec SD card longest read time 0.9ms, write time 0.0ms, max retries 0 === Move === Hiccups: 0(0), FreeDm: 169, MinFreeDm: 169, MaxWait: 0ms Bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed moves 0, StepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, StepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1, chamberHeaters = -1 -1 Heater 0 is on, I-accum = 0.2 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Movement lock held by null HTTP is idle 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 Daemon is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 6.27ms; fastest: 0.01ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 1 of 8 Interface state active, link 100Mbps full duplex
-
Nevermind, Fixed it - Problem was the order of my commands, I now moved the M140 and M307 to before the M143 definition:
;; thermal ------------------------------------------------- ; Sensors -------------------------------------------------- M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 A"Bedmat"; configure sensor 0 as thermistor on pin temp0 M308 S1 P"e0temp" Y"pt1000" A"Hotend" ; configure sensor 1 as thermistor M308 S2 P"ctemp" Y"thermistor" T100000 B3950 A"Chamber" ;Chamber fan M308 S3 Y"mcu-temp" A"Board" M308 S4 P"e1temp" Y"thermistor" T100000 B3950 A"Bedplate" ; Heaters -------------------------------------------------- ;Bed M950 H0 C"bedheat" T4 ; create bed heater output on out0 and map it to sensor 4 M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M140 H0 ;PID Settings M307 H0 A301.0 C845.3 D1.4 S1.00 V23.6 B0 M307 H1 A482.6 C291.7 D5.5 S1.00 V23.6 B0 ;V6 ; Monitors & Limits M143 H0 P1 T0 A2 S110 C0 ; Regulate (A2) bed heater (H0) to have pad sensor (T0) below 110°C. Use Heater monitor 1 for it M143 H0 P2 T0 A0 S120 C0 ; Fault (A0) bed heater (H0) if pad sensor (T0) exceeds 120°C. Use Heater monitor 2 for it M143 H0 P0 S110 ; Set bed heater max temperature to 120°C, use implict monitor 0 which is implicitly configured for heater fault M143 H1 S400 ; set temperature limit for heater 1 to 275C