Dual extruder alternating correct + incorrect temperature status messages
I am having some challenges getting dual extrusion working and I believe it all stems from alternating incorrectly reported temperatures. I can print 100% fine on EXT0, and on EXT0 + EXT1, however printing just on EXT1 does not work and I get really weird messages in the log.
I ran a test where I tried extruding just from EXT1. (note I had also had EXT0 on for a while, hence the higher temp, but that doesn't matter for the test)
From the below log, you'll see I get T0 reporting true T0 temp, then it reports T1 temp, then back and forth etc...
While this is happening, the icon for EXT0 flips between heat and no-heat.
I ran a test where I tried extruding just from EXT1. (note I had also had EXT0 on for a while, hence the higher temp, but that doesn't matter for the test)
From the below log, you'll see I get T0 reporting true T0 temp, then it reports T1 temp, then back and forth etc...
While this is happening, the icon for EXT0 flips between heat and no-heat.
13:41:25.045 : T0:166.37 /210.00 B:30.68 /25.00 T0:194.91 /210.00 T1:166.37 /210.00 @:127 B@:0 @0:127 @1:127 W:?
13:41:25.186 : T0:195.06 /210.00 B:31.51 /25.00 T0:195.06 /210.00 T1:166.39 /210.00 @:127 B@:0 @0:127 @1:127
13:41:26.052 : T0:165.38 /210.00 B:30.73 /25.00 T0:195.91 /210.00 T1:165.38 /210.00 @:127 B@:0 @0:127 @1:127 W:?
13:41:26.193 : T0:195.91 /210.00 B:30.73 /25.00 T0:195.91 /210.00 T1:165.38 /210.00 @:127 B@:0 @0:127 @1:127
Then one of a few different things happen at random:
1. the print starts, but the log file has "echo: cold extrusion prevented"
2. I get a "thermal runaway" error and the machine halts
3. I get a "heater failure" error and the machine halts
Thank you.
Comments
After restarting it should then show correct temperatures. The trick will replace first T0: into T: so no firmware repair necessary, also it is still wrong.
\s*T0:\d+\.\d+\s*\/\s*\d+\.\d+\s*(.*)
replacing with just
$1
as it appears my issue has an incorrect temperature reported at the beginning of the ACK and then the actual temperatures reported later in the ACK. Not sure... Thanks!
However I think I found the issue in firmware: (bug)
https://github.com/MarlinFirmware/Marlin/issues/23504
I updated the temperature.cpp and temperature.h files and now it appears to work correctly. Hooray! Thanks again!