Firmware for hotend of dual extruder head
-
; Tools
M563 P0 D1.1 H0 F0 ; define tool 0
G10 P0 X23.9 Y-28.21 Z0 ; set tool 0 axis offsets
G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
M563 P1 D1.2 H1 F1 ; define tool 1
G10 P1 X-23.9 Y-28.21 Z0 ; set tool 1 axis offsets
G10 P1 R0 S0 ; set initial tool 0 active and standby temperatures to 0CYou didn't change the D values as I had mentioned earlier. It's probably ignoring everything after that.
Also, don't forget you can check for syntax errors with M98 P"config.g"
-
@phaedrux I did change the D values as suggested before I tried. But I have updated the code in the message thread to reflect this. Now the tool portion looks like:
; Tools M563 P0 D0 H0 F0 ; define tool 0 G10 P0 X23.9 Y-28.21 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M563 P1 D1 H1 F1 ; define tool 1 G10 P1 X-23.9 Y-28.21 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
M98 P"config.g" gives:
It seems to be saying that S0 and S1 are not defined. But they are defined in my code here:
; Heaters M308 S0 P"1.temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on expansion board pin 1.temp0 M950 H0 C"1.out0" T0 ; create nozzle heater output on 1.out0 and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H0 S280 ; set temperature limit for heater 0 to 280C M308 S1 P"1.temp1" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on expansion board pin 1.temp1 M950 H1 C"1.out1" T1 ; create nozzle heater output on 1.out2 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C
-
@feynman137 also wanted to add that if I switch the bed heaters to reading a thermistor from the expansion board instead of the mainboard I will no longer be able to get their temperature either. So the errors must be related to the expansion board. I can get the H0 to display a temperature if I list a mainboard thermistor so it likely isn't something related to the H0 config
-
Can you post the results of sending M122 and M122 B1 please?
-
@phaedrux said in Firmware for hotend of dual extruder head:
M122
M122
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.3 (2021-06-15 21:45:47) running on Duet 3 MB6HC v1.01 or later (SBC mode) Board ID: 08DJM-956L2-G43S8-6J9DJ-3SJ6N-980QG Used output buffers: 1 of 40 (13 max) === RTOS === Static ram: 150904 Dynamic ram: 62680 of which 88 recycled Never used RAM 140520, free system stack 200 words Tasks: SBC(ready,5.3%,328) HEAT(delaying,0.0%,325) Move(notifyWait,0.0%,352) CanReceiv(notifyWait,0.0%,799) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,339) TMC(notifyWait,7.1%,93) MAIN(running,87.5%,922) IDLE(ready,0.0%,29), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:04:48 ago, cause: power up Last software reset at 2021-08-30 20:54, reason: User, none spinning, available RAM 140812, slot 0 Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 Step timer max interval 182 MCU temperature: min 29.3, current 43.8, max 43.9 Supply voltage: min 23.7, current 23.7, max 23.8, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 11.9, current 12.0, max 12.0, under voltage events: 0 Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Driver 0: position 0, standstill, reads 35775, writes 14 timeouts 0, SG min/max 0/0 Driver 1: position 0, standstill, reads 35776, writes 14 timeouts 0, SG min/max 0/0 Driver 2: position 0, standstill, reads 35776, writes 14 timeouts 0, SG min/max 0/0 Driver 3: position 0, standstill, reads 35776, writes 14 timeouts 0, SG min/max 0/0 Driver 4: position 0, standstill, reads 35776, writes 14 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 35776, writes 14 timeouts 0, SG min/max 0/0 Date/time: 2021-08-31 18:07:31 Slowest loop: 0.45ms; 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: none, 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 = 2 3 4 5 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 === 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. === CAN === Messages queued 2509, received 2110, lost 0, longest wait 2ms for reply type 6049, peak Tx sync delay 248, free buffers 49 (min 48), ts 1442/1441/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === State: 4, failed transfers: 1, checksum errors: 0 Last transfer: 1ms ago RX/TX seq numbers: 9187/9187 SPI underruns 0, overruns 0 Disconnects: 0, timeouts: 0, IAP RAM available 0x2c818 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.3.0 Code buffer space: 4096 Configured SPI speed: 8000000Hz Full transfers per second: 0.14, max wait times: 13.0ms/0.0ms Codes per second: 0.00 Maximum length of RX/TX data transfers: 3159/836
M122 B1
M122 B1 Diagnostics for board 1: Board EXP3HC firmware 3.1.0 (2020-05-15b1) Never used RAM 163.1Kb, max stack 320b HEAT 1072 CanAsync 1452 CanRecv 1388 TMC 156 AIN 524 MAIN 2184 Last reset 00:06:12 ago, cause: power up Driver 0: standstill, reads 64061, writes 11 timeouts 0, SG min/max 0/0 Driver 1: standstill, reads 64063, writes 11 timeouts 0, SG min/max 0/0 Driver 2: standstill, reads 64065, writes 11 timeouts 0, SG min/max 0/0 Moves scheduled 0, completed 0, hiccups 0 VIN: 24.0V, V12: 12.2V MCU temperature: min 43.6C, current 43.8C, max 43.8C Ticks since heat task active 42, ADC conversions started 372036, completed 372036, timed out 0 Last sensors broadcast 00000000 found 0 45 ticks ago Free CAN buffers: 36 NVM user row de9a9239 aeecffb1 ffffffff ffffffff
-
So the mainboard does appear to be connecting to the expansion board.
-
The expansion board is running older firmware than the mainboard. You need to update it. If you've already uploaded the 3.3 zip file to the system tab in DWC, all you need to do is send M997 B1 to flash the expansion.
https://github.com/Duet3D/RepRapFirmware/releases/download/3.3/Duet2and3Firmware-3.3.zip
-
Actually I also see that you are using SBC mode. Have you done a sudo apt update sudo apt upgrade lately?
-
@phaedrux I did this last month I remember. But I don't think I flashed it to the expansion board. Because I ran the M997 B1 and reset the board. Now I can see all 6 temperatures!
-
Occasionally the expansion boards don't get updated automatically. I think that is being improved upon.
Regardless, it's also a good idea to check the installed firmware versions after an update with M115 and M115 B# for the expansion boards.
I would suggest that you do a sudo apt update and sudo apt upgrade again just in case. Ideally you'd only have to do that once for each major release going forward.