[Pi 0.75.1] Extruder Temperature reported incorrect and extrusion stopped.

- Printer has two extruders.  Worked fine with v0.70 (didn't have this problem).
- Pre print - both extruders are generally brought up to temperature in case both are needed.
- Print job sent to printer for single extruder so extruder #2 is turned off and the print starts.
- At some point the extrusion stops from extruder #1.  Manually stopped job.
- On the printer, the extruder temp #1 is OK (235°C) - BUT in Repetier host the extruder 1 temp is reported as 60°C (incorrect).  extruder 2 temp is curiously ALSO 60°C (and that is correct).  Force extruding #1 does not work in Repetier Host but does work from printer control panel.

It seems that Repetier Host is misinterpreting the temp feedback values from the printer and thinking that both extruders are 60°C.

Have replicated problem twice.

Workaround I have at the moment is to manually set extruder #2 to 180°C so that Repetier will still allow extrusion.


  • What firmware are you using and which version? I know at least one reporting temperatures wrong so only active extruder temperature is updated.
  • I am using Marlin - M115 responds:

    FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6
    FIRMWARE_URL:http://makerstoolworks.com/ PROTOCOL_VERSION:1.0

  • Here is an example of response when it is OK:

    12:45:28.103: N481353 M105
    12:45:28.737: ok T:230.0 /230.0 B:100.8 /100.0 T0:230.0 /230.0 T1:66.3 /0.0 @:50 B@:0 (2)

    I don't have a copy of when it is bad, but I have seen that the first T:xxx is the same as T1.  So that is probably the problem.  BUT T0 is correct.  It must have been looking at T0 before since I haven't changed the firmware and RHServer worked OK.  Can you change it to look at T0 for the T0 temp?

  • It would be good if the T0, T1, Tn number could be set in the printer extruder settings and then it looked for that in the M105 response.
  • First after rereading you once wrote host and title is server. Since host parses it self if you use host over server it is important where the error really happens.

    T0/T1 are preferred to T. Format is ok, also @0 and @1 are missing, so output of extruders can not be traced.

    Can you post what is send as response when the problem appears. I haven't changed temp. parsing till 0.75.1.

    Since you wrote "- At some point the extrusion stops from extruder #1.  Manually stopped job." I guess something went wrong and then the problems start, so the question is what is going wrong?
  • Sorry - did not mean "Host" - meant "Server".  Not using Host on the Pi.
    I'm connecting to RepetierServer running on the Pi using a browser that shows the extruder temperatures - I am NOT using Repetier Host.  I will try to replicate the problem again but am in the middle of a few print jobs so it may be a day or two.  I recall seeing the output when the problem occurred and the first T was showing the same as T1.

    Yes - there is some event that is changing the T value being returned from T0 to T1.  It feels to me like a return of comms errors - I saw quite a few in the log when the problem occurred.  I noted the display on the printer showed ETA/ETE/Layer (which was very nice BTW) but could this extra commands be overloading the comms and causing errors that could possible trigger this T confusion?
  • I have replicated the problem.  Attached below is some log during the problem.  It is acting like the tool has been changed at some point.  If I pause the print, select extruder 2 then select extruder 1 again and then continue - then the print continues.  So it seems like some command at some point is causing the extruder 2 to be selected so then the printer returned the T value as that tool rather than extruder 1.

    I notice that there are quite a few errors with the "Unknown command" after the M117 commands with the ETE and ETA values - I think it is the ":" (colon) character not being accepted by the firmware and then treating the text after that as another command.  I don't know if this is causing the problem but it may be good if we could disable that somewhere so we can eliminate that as a cause (AND/OR change the colon character to something else so that it won't give an error).

    15:02:03.300: N15472 M105
    15:02:03.309: ok T:64.5 /0.0 B:100.1 /100.0 T0:230.0 /230.0 T1:64.5 /0.0 @:0 B@:0
    15:02:04.402: N15473 M105
    15:02:04.403: M117 ETE 00:22:45
    15:02:04.414: ok T:64.5 /0.0 B:100.0 /100.0 T0:230.0 /230.0 T1:64.5 /0.0 @:0 B@:0
    15:02:04.414: ok
    15:02:04.415: echo:Unknown command: "22"
    15:02:04.415: ok
    15:02:04.416: echo:Unknown command: "45"
    15:02:04.416: ok
    15:02:08.562: echo: cold extrusion prevented
    15:02:08.566: ok (2)
    15:02:08.567: N15511 M105
    15:02:08.579: echo: cold extrusion prevented
    15:02:08.579: N15512 G1 X95.901 Y30.240 F12000
    15:02:08.583: ok T:64.5 /0.0 B:99.5 /100.0 T0:230.0 /230.0 T1:64.5 /0.0 @:0 B@:127
    15:02:08.584: ok
    15:02:08.584: N15513 G1 E0.0000 F1800
    15:02:08.587: ok
    15:02:08.587: N15514 G92 E0
    15:02:08.591: N15515 G1 X95.893 Y60.000 E0.8908 F3000
    15:02:10.181: echo: cold extrusion prevented
    15:02:10.182: ok (2)
    15:02:10.182: N15516 M105
    15:02:10.185: echo: cold extrusion prevented
    15:02:10.185: N15517 G1 X95.901 Y269.760 E7.1698
    15:02:10.189: ok T:64.5 /0.0 B:99.3 /100.0 T0:230.0 /230.0 T1:64.5 /0.0 @:0 B@:127
    15:02:10.193: ok
    15:02:10.193: N15518 G1 X95.539 Y269.760 E7.1807
    15:02:10.194: echo: cold extrusion prevented
    15:02:10.201: ok
    15:02:10.201: N15519 G1 X95.539 Y30.240 E14.3505
    15:02:10.287: echo: cold extrusion prevented
    15:02:10.291: ok
    15:02:10.292: N15520 G1 X95.901 Y30.240 E14.3613
    15:02:10.354: N15521 G92 E0
    15:02:10.385: echo: cold extrusion prevented
    15:02:10.389: ok
    15:02:10.390: N15522 G1 E-0.5000 F1800
    15:02:11.889: echo: cold extrusion prevented
    15:02:11.893: ok (2)
    15:02:11.893: N15523 M105
    15:02:11.897: N15524 G1 X95.815 Y30.240 F12000
    15:02:11.901: echo: cold extrusion prevented

  • You could be right regarding : char. Yesterday I stumble dupon the same problem with repetier-firmware in ascii mode. : is to separate multiple gcodes as it seems.

    So I will remove the colons in ETA/ETE next update. Until then disable ETA/ETE in printer configuration. There is a option to disable lcd update. Hope that also solves the T1 problem which you have.
  • I think disabling the ETA/ETE has fixed the problem.  So far I have made 2 successful prints since just setting the display to only the "Layer" option.
  • I have already modified next release to replace ":".

    I checked Marlin code and they have changed it. In 1.0.x branch it splits at ":" and in RC branch they have removed this. So for backward compatibility I will remove it starting with 0.75.2 but in firmware definition for the server it can be disabled.
  • I have had a failed print.  I will turn off the display completely and record the logs and then post the next failure.
  • OK - here is a log extract from a failed print.  The display status was turned off.  It got 5hrs into the print and then had the problem at 5:11:08.793 .  I cannot work out what is changing the Active Extruder to 1.  It still feels like a comms problem and perhaps we are not seeing what the printer is receiving.  There are many comms errors throughout the log (405 in 8hrs5mins) - I think this is mainly due to the commands getting out-of-sync because the firmware only responds 'ok' without a line number.  But why could this be more of a problem now in 0.75 from 0.70?

    <  5:10:51.889: N385890 M105
    >  5:10:51.890: ok
    <  5:10:51.890: N385891 G1 X162.740 Y129.390 E6.0952
    >  5:10:51.896: ok
    <  5:10:51.897: N385892 G1 X162.740 Y90.610 E7.2560
    >  5:10:51.947: ok
    <  5:10:51.947: N385893 G1 X122.140 Y90.610 E8.4714
    >  5:10:51.949: ok T:230.0 /230.0 B:100.6 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:45 B@:0
    <  5:10:51.949: N385894 G1 X122.140 Y89.490 E8.5049
    >  5:10:51.962: ok
    <  5:10:51.962: N385895 G1 X163.860 Y89.490 E9.7537
    >  5:10:51.966: ok
    <  5:10:51.966: N385896 G1 X163.860 Y210.510 E13.3764
    >  5:10:51.979: ok
    <  5:10:51.979: N385897 G1 X122.140 Y210.510 E14.6252
    >  5:10:51.980: ok
    <  5:10:51.980: N385898 G1 X122.140 Y209.390 E14.6587
    >  5:10:52.634: ok
    <  5:10:52.640: N385899 G1 X162.740 Y209.390 E15.8741
    >  5:10:52.641: ok
    <  5:10:52.641: N385900 G1 X162.740 Y170.610 E17.0349
    >  5:10:53.322: ok
    <  5:10:53.322: N385901 M105
    >  5:10:53.323: ok
    <  5:10:53.323: N385902 G1 X163.105 Y169.595 F12000
    <  5:10:53.347: N385903 G92 E0
    >  5:10:53.457: ok
    >  5:10:54.769: ok T:230.1 /230.0 B:100.6 /100.0 T0:230.1 /230.0 T1:62.4 /0.0 @:44 B@:0
    <  5:10:54.769: N385904 M105
    <  5:10:54.779: N385905 G1 X163.495 Y169.205 E0.0165 F3861
    >  5:10:54.805: ok
    >  5:10:54.806: ok
    <  5:10:54.807: N385906 G1 X163.495 Y168.526 E0.0368
    >  5:10:54.810: ok T:230.1 /230.0 B:100.6 /100.0 T0:230.1 /230.0 T1:62.4 /0.0 @:44 B@:0
    <  5:10:54.810: N385907 G1 X163.105 Y168.916 E0.0534
    >  5:10:56.071: ok
    <  5:10:56.072: N385908 M105
    >  5:10:56.072: ok
    <  5:10:56.073: N385909 G1 X163.105 Y168.238 E0.0737
    >  5:10:57.279: ok
    <  5:10:57.280: N385910 M105
    <  5:10:57.314: N385911 G1 X163.495 Y167.847 E0.0902
    >  5:10:58.545: ok
    >  5:10:58.551: ok T:230.0 /230.0 B:100.4 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:45 B@:0
    <  5:10:58.551: N385912 M105
    >  5:10:58.591: ok T:230.0 /230.0 B:100.4 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:45 B@:0
    <  5:10:58.591: N385913 G1 X163.495 Y167.168 E0.1105
    >  5:10:59.856: ok
    <  5:10:59.857: N385914 M105
    >  5:10:59.860: ok T:230.0 /230.0 B:100.3 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:45 B@:0
    <  5:10:59.861: N385915 G1 X163.105 Y167.559 E0.1271
    >  5:11:01.064: ok
    <  5:11:01.065: N385916 M105
    >  5:11:01.069: ok T:230.0 /230.0 B:100.3 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:45 B@:0
    <  5:11:01.069: N385917 G1 X163.105 Y166.880 E0.1474
    >  5:11:02.330: ok
    <  5:11:02.330: N385918 M105
    >  5:11:02.334: ok T:230.0 /230.0 B:100.2 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:45 B@:0
    <  5:11:02.335: N385919 G1 X163.495 Y166.490 E0.1639
    >  5:11:02.366: ok
    <  5:11:02.367: N385920 G1 X163.495 Y165.811 E0.1842
    >  5:11:02.371: ok T:230.0 /230.0 B:100.2 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:45 B@:0
    <  5:11:02.371: N385921 G1 X163.105 Y166.201 E0.2008
    >  5:11:03.670: ok
    <  5:11:03.676: N385922 M105
    >  5:11:03.677: ok
    <  5:11:03.677: N385923 G1 X163.105 Y165.522 E0.2211
    >  5:11:07.438: ok
    <  5:11:07.438: N385924 M105
    <  5:11:07.450: N385925 M105
    >  5:11:08.746: ok T:230.0 /230.0 B:99.6 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:45 B@:127
    <  5:11:08.746: N385926 M105
    >  5:11:08.783: ok T:230.0 /230.0 B:99.6 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:45 B@:127
    <  5:11:08.783: N385927 G1 X163.495 Y165.132 E0.2376
    >  5:11:08.790: ok T:230.0 /230.0 B:99.6 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:45 B@:127
    >  5:11:08.792: ok T:230.0 /230.0 B:99.6 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:45 B@:127
    <  5:11:08.792: N385928 G1 X163.495 Y164.453 E0.2579
    >  5:11:08.793: echo:Active Extruder: 1
    >  5:11:08.794: ok
    <  5:11:08.794: N385929 G1 X163.105 Y164.843 E0.2745
    >  5:11:08.795: Error:No Line Number with checksum, Last Line: 385926
    >  5:11:08.803: Error:Line Number is not Last Line Number+1, Last Line: 385926
    <  5:11:08.912: Resend: N385927 G1 X163.495 Y165.132 E0.2376
    >  5:11:08.912: Resend: 385927
    >  5:11:08.913: ok
    <  5:11:08.913: Resend: N385928 G1 X163.495 Y164.453 E0.2579
    >  5:11:08.937: ok
    <  5:11:08.937: Resend: N385929 G1 X163.105 Y164.843 E0.2745
    >  5:11:08.938: ok
    <  5:11:08.938: N385930 G1 X163.105 Y164.165 E0.2948
    >  5:11:10.039: echo: cold extrusion prevented
    >  5:11:10.043: ok
    <  5:11:10.043: N385931 M105
    >  5:11:10.043: ok
    <  5:11:10.044: N385932 G1 X163.495 Y163.774 E0.3113
    >  5:11:11.247: echo: cold extrusion prevented
    >  5:11:11.251: ok
    <  5:11:11.251: N385933 M105
    <  5:11:11.336: N385934 G1 X163.495 Y163.095 E0.3316
    >  5:11:11.374: echo: cold extrusion prevented
    >  5:11:11.379: echo: cold extrusion prevented
    >  5:11:11.383: ok
    >  5:11:11.388: ok T:62.4 /0.0 B:99.4 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:0 B@:127
    <  5:11:11.388: N385935 G1 X163.105 Y163.486 E0.3481
    >  5:11:11.391: echo: cold extrusion prevented
    >  5:11:11.396: ok T:62.4 /0.0 B:99.4 /100.0 T0:230.0 /230.0 T1:62.4 /0.0 @:0 B@:127
    <  5:11:11.396: N385936 G1 X163.105 Y162.807 E0.3685
    >  5:11:11.399: ok
    <  5:11:11.399: N385937 G1 X163.495 Y162.417 E0.3850
    >  5:11:11.400: echo: cold extrusion prevented
    >  5:11:11.403: echo: cold extrusion prevented

  • Still getting this problem intermittantly.  I thought it may be a power supply issue causing some USB communication problem between the pi and the printer so I tried a different powered USB hub.  It seemed to work better but after testing many prints now I think it is still just a random intermittant problem.

    It seems there must be a "T1" being received by the printer randomly.  That then causes a "Active Extruder:1" in the log and "cold extrusion prevented" then follows on every subsequent G1 line.
    I have managed to resume printing by sending a T0 command during printing but the lines that were missed in the interim are obviously missed.

    It would be good if Repetier Server had a setting that would automatically send a "T0" command if an undesired "Active Extruder:1" appeared in the log - that would then prevent this false tool change and "cold extrusion prevented" warning.
  • I have an idea what happened, but you will not like it:-(

    It seems that some boards have a tendency to insert answers send to server into the incoming queue. Always only a few chars and so random that there is no visible pattern. Chances get higher with more returned data like temperatures reported. Having 2 extruders this string contains T1 like T1:199 and if that gets backcopied it would create exactly that problem.

    In repetier firmware we have solved that problem by requiring ALWAYS a checksum if we started with binary data. The problem is that if a command like
    N900 G1 X200*88
    T1:0 G1 X200*88
    the T1 is a valid command ended with : sign, also never intended to send. There are other combination with T1 that get interpreted as switch command. Maybe that is a reason why latest Marlin version (RC branch at least) now do not consider : a command split on serial line. So upgrading to that or latest repetier version would help preventing this I think.

    Your idea to switch back fast to T0 is not that bad, but has the problem that this would also appear if a user would change extruder on printer lcd. There is no way to distinguish the wanted from unwanted switch.

  • What I forget to mention - the error does not only happen on Repetier-Server but also on other hosts with the same printer/pc combination. My guess is that it is somewhere in the usb-serial queue, but could not pin it. 
  • Ah yes I was wondering if something was echoing some part of the temperature response line from the printer to the pi - the T1 part of that response would explain why the active extruder is changed.  Well that explains it.

    Regarding the automatic T0 switch back I suggested - I am suggesting that it be an OPTION somewhere in the print settings.  In this way the workaround can be turned on/off by the user as necessary - only if they require it.

    When I really do need to use two extruders and I get this problem - I do not know what to do.  At the moment I am forced not to use Repetier Server - rather I am using an SD card direct into the printer LCD display to print.  :-(  I hope I can use Repetier Server again but at the moment it is now broken for me.

    I will look into updated firmware - but I am not sure if there is a version released for my printer yet (MendelMax 3).  Do you have anyone using Repetier firmware on a MendelMax 3 (with a GLCD display)?  The main board in a MendelMax 3 is a Rambo.
  • Rambo is supported for both, so updating is not a problem if you now your configuration settings like pins and thermistor types.
    Some GLCD types are supported by repetier.

    We could add a server side command
    To watch for changes from LCD side. Only 10-20 lines after extruder switch wound not be protected (required from delay between sending and response). 
Sign In or Register to comment.