Octoprint limits hotend temperature (to 284)

Hello,

I can't find any information about this but definitely octoprint seems to be the problem.

I try to set temperature over 284 degree but octoprint won't allow it. Check the pictures here.

It does a mini-peak at 300 but immediately sets the limit to 284.

I have tried several changes in the firmware and I don't think the problem is there. Without octoprint I can just set 300 degree on the screen and it tries to reach it.

Almost no plugins in octoprint, anyhow I tested in safe mode and it is the same.

More information:
Creality CR10S4 with an SKR1.3 board

Before anyone says. I have got a microswiss hotend and have worked with nylon and ASA. It is safe to put the hotend at 300 degree.

Any help is welcome.

As your screenshot shows - OctoPrint is sending M104 S300, there is no problem there. The firmware will allow you to set the temperature to the max temp minus about 15 degrees, to allow for overshoot. What do you have defined for MAXTEMP in the firmware, and HOTEND_OVERSHOOT? If you don't define the second one, it defaults to 15C, which sounds exactly like your case.

Thanks, that would also apply when not using octoprint. Directly on the screen I can reach 305 degree which is as expected 320 MAXTEMP minus 15 degree default overshoot.

#define HEATER_0_MAXTEMP 320 (from my configuration.h)

And OVERSHOOT option is not defined. As results show it is set to default 15 degree.

Enable the serial.log, reproduce the issue and upload your serial.log then so we can see what the printer says, and the other sections from the (skipped) template such as safe mode would be good... As I said, your screenshot shows everything to be fine and OctoPrint is telling the printer to heat to 300.

Nothing relevant as far as I can see.

You can see how it intermediate sets the temperature to 284, overwriting M104 command.

2021-03-08 18:24:19,716 - serial.log is currently not enabled, you can enable it via Settings > Serial Connection > Log communication to serial.log
2021-03-08 19:06:12,324 - Enabling serial logging
2021-03-08 19:06:14,143 - Recv:  T:17.81 /0.00 B:17.19 /0.00 @:0 B@:0
2021-03-08 19:06:16,143 - Recv:  T:17.81 /0.00 B:17.34 /0.00 @:0 B@:0
2021-03-08 19:06:18,143 - Recv:  T:17.81 /0.00 B:17.34 /0.00 @:0 B@:0
2021-03-08 19:06:20,144 - Recv:  T:17.81 /0.00 B:17.66 /0.00 @:0 B@:0
2021-03-08 19:06:22,144 - Recv:  T:17.81 /0.00 B:17.50 /0.00 @:0 B@:0
2021-03-08 19:06:24,144 - Recv:  T:17.81 /0.00 B:17.34 /0.00 @:0 B@:0
2021-03-08 19:06:26,144 - Recv:  T:17.81 /0.00 B:17.50 /0.00 @:0 B@:0
2021-03-08 19:06:26,462 - Send: M104 S300
2021-03-08 19:06:26,473 - Recv: ok
2021-03-08 19:06:28,144 - Recv:  T:17.97 /284.00 B:17.50 /0.00 @:127 B@:0
2021-03-08 19:06:30,144 - Recv:  T:18.28 /284.00 B:17.34 /0.00 @:127 B@:0
2021-03-08 19:06:32,144 - Recv:  T:19.22 /284.00 B:17.50 /0.00 @:127 B@:0
2021-03-08 19:06:34,144 - Recv:  T:20.62 /284.00 B:17.66 /0.00 @:127 B@:0
2021-03-08 19:06:36,144 - Recv:  T:22.97 /284.00 B:17.66 /0.00 @:127 B@:0
2021-03-08 19:06:38,144 - Recv:  T:25.91 /284.00 B:17.66 /0.00 @:127 B@:0
2021-03-08 19:06:40,145 - Recv:  T:29.32 /284.00 B:17.81 /0.00 @:127 B@:0
2021-03-08 19:06:42,144 - Recv:  T:33.13 /284.00 B:17.19 /0.00 @:127 B@:0
2021-03-08 19:06:44,145 - Recv:  T:37.42 /284.00 B:17.50 /0.00 @:127 B@:0
2021-03-08 19:06:46,145 - Recv:  T:41.62 /284.00 B:17.34 /0.00 @:127 B@:0
2021-03-08 19:06:48,145 - Recv:  T:46.12 /284.00 B:17.19 /0.00 @:127 B@:0
2021-03-08 19:06:50,145 - Recv:  T:50.80 /284.00 B:17.50 /0.00 @:127 B@:0
2021-03-08 19:06:51,749 - Send: M104 S0
2021-03-08 19:06:51,774 - Recv: ok
2021-03-08 19:06:52,144 - Recv:  T:55.36 /0.00 B:17.81 /0.00 @:0 B@:0
2021-03-08 19:06:54,144 - Recv:  T:60.00 /0.00 B:17.66 /0.00 @:0 B@:0
2021-03-08 19:06:56,150 - Recv:  T:63.98 /0.00 B:17.50 /0.00 @:0 B@:0
2021-03-08 19:06:58,145 - Recv:  T:67.24 /0.00 B:17.66 /0.00 @:0 B@:0
2021-03-08 19:07:00,145 - Recv:  T:69.74 /0.00 B:17.34 /0.00 @:0 B@:0
2021-03-08 19:07:02,144 - Recv:  T:71.45 /0.00 B:17.66 /0.00 @:0 B@:0
2021-03-08 19:07:04,145 - Recv:  T:72.66 /0.00 B:17.66 /0.00 @:0 B@:0
2021-03-08 19:07:06,145 - Recv:  T:73.47 /0.00 B:17.81 /0.00 @:0 B@:0
2021-03-08 19:07:08,145 - Recv:  T:73.95 /0.00 B:17.81 /0.00 @:0 B@:0
2021-03-08 19:07:10,145 - Recv:  T:74.23 /0.00 B:17.81 /0.00 @:0 B@:0
2021-03-08 19:07:12,145 - Recv:  T:74.23 /0.00 B:17.19 /0.00 @:0 B@:0
2021-03-08 19:07:14,145 - Recv:  T:74.11 /0.00 B:17.34 /0.00 @:0 B@:0
2021-03-08 19:07:16,145 - Recv:  T:73.91 /0.00 B:17.50 /0.00 @:0 B@:0
2021-03-08 19:07:18,145 - Recv:  T:73.55 /0.00 B:17.34 /0.00 @:0 B@:0
2021-03-08 19:07:20,145 - Recv:  T:73.15 /0.00 B:17.50 /0.00 @:0 B@:0

So the firmware limits the temperature to 284Β°C - not OctoPrint

2 Likes

The next question then is what's the difference between sending an M104 and setting the temperature from the screen. Because clearly the limit is applied only when using the serial interface.

Any other test you can recommend.

This is how Marlin works:

Why it accepts higher values from the printer panel - I don't know.

So, where does it end?

It ends at 305 degree as expected by the firmware. 320 MAXTEMP minus the 15 degree overshoot. The expected behaviour.

This is obviously an issue with the firmware. Maybe a Marlin forum/the github can help.

There's not much of a clue here as to why the firmware is refusing to go any higher. As an experiment, what happens if you increase the MAXTEMP in the firmware? I'm not familiar with different behaviours from serial vs. the screen on the printer - but given the number of bugs relating to serial vendors seem to be able to create it would not surprise me if there were different implementations. Not quite sure.

I agree that seems to be marlin and not octoprint. I need to ask somewhere else because I have lost many hours and I'm unable to find where in the code is the m104 command limited.

Just curious: How does the printer react when you have a M104 S300 in a gcode file on the SD card?

1 Like

I cannot access the SD port on the board. I never bothered fixing the case for this because it was never my intention to load gecode using SD cards.

But with the older board where I loaded gcode through the SD card I remember setting it higher than 285 degree. But that was also a different version of marlin, I can't be sure if it is related or not.

I increased to 350 and the behaviour is the same. 335 degree trough the screen and still stuck at 284 using serial.

Have you tried pronterface?

Found the solution in another forum. The temperature limit is applied also to the thermistor table. I was using:

#define TEMP_SENSOR_0 1

Which has a table limited to 300. Therefor the limit is 300 - 15. I made a quick test configuring a different thermistor (just to confirm this) and this time the command returned 300 degree. This is very confusing because.
a) Limit is not applied to screen options.
b) Marlin 1.x didn't check this.

The solution is getting a new thermistor and changing configuration.h.

Thanks a lot for the help.

2 Likes