OctoPrint Error with start Temp under 10°


I have the problem with the OctoPrint (Version 1.3.9 on OctoPi 0.15.1) and really low tempreture information from the printer. I am using Creality CR-10 S5 and it is in my Gardenshellt in a Box. But we have right now the beginning of winter and the surrounding temp is arround -5°. OctoPrint cannot cope with that and starts only at 10°. So the problem is, that it cannot communicate with the printer because an Error occurs as soon as I want to start heating with OctoPrint. I have to manually start the preheating from the Printer and as soon as the bed temp and nozzle is reaching 10° OctoPrint is showing up the temp and is working just fine. I also can then start the print from OctoPrint.

Does anyone of you heard about the problem already or could give me a hit how to solve it? I think it was just not thought about my special temp case, which I totally understand.

Could I solve that with changing configuration at OctoPrint or do I have to deep into the source code?

Friendly regards, Robert


Wildly flailing for an answer, I would guess that the regex responsible for interpreting temperatures from the printer expects two digits or more of temperature and therefore is having difficulty seeing your single digit or negative celsius amounts.

I would then guess that this file is responsible, specifically the regex_temp variable's use of regex_float_pattern.

regex_float_pattern = "[-+]?[0-9]*\.?[0-9]+"

Try looking at your Terminal tab to and report back here if your printer is reporting the temperature in a weird way. It would be nice to know what it looks like as a string so that we can run that through the regex to see if it works or not.


I have that same or similar problem at home cause I dont use central heating. If my printer has a bed or nozzle temperature below x (i think about 15 or so) degree for some it gives a min temp alarm (written on display) and cuts the connection via USB. Restarting the printer and reconnecting Octoprint fixes that. I have a network controlled power switch so I can do that remote if needed.



Min temp errors come from your printer's firmware. Most printers will use a minimum temperature as a simple way of detecting temperature sensor errors. If your printer regularly sees temperatures below that, you might need to consider lowering the min temp value and re-flash your firmware. There's nothing OctoPrint can do if your printer's firmware thinks there are sensor issues.


Is this something that can be adjusted using the EEPROM Editor plugin... or does it require a total re-flashing of Marlin, for example?


Haven't used marlin in years but as far as I'm aware, adjusting any of the security/safety issues requires a re-flash. Min / max temp, thermal runaway, etc. Bit annoying I know but generally the min temp is probably one of those things you set and forget, never really needing to change it again, so is pointless to be taking up valuable eeprom variable space.


Hi, thank you for the hit. I will try to do it. I am currently running a longer print over some days, but I will come back.

Friendly regards, Robert


I put my printer in an enclosure and am using the enclosure plugin to run a very small space heater in the enclosure to keep the temperature at a printable level. When I had mine out in the open I had the same issues and would get problems with prints lifting do a cold draft from a window near where the printer was situated.


I understand it. This my output of the Erro:

Changing monitoring state from "Offline" to "Detecting serial port"
Serial port list: ['/dev/ttyUSB0']
Connecting to: /dev/ttyUSB0
Changing monitoring state from "Detecting serial port" to "Opening serial port"
Connected to: Serial<id=0x6a09f950, open=True>(port='/dev/ttyUSB0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitor
Starting baud rate detection...
Changing monitoring state from "Opening serial port" to "Detecting baudrate"
Trying baudrate: 115200
Send: N0 M110 N0125
Recv: start
Changing monitoring state from "Detecting baudrate" to "Operational"
Recv: echo: External Reset
Recv: Marlin
Send: N0 M110 N0
Recv: echo: Last Updated: 2015-12-01 12:00 | Author: (CR-10 500)
Recv: Compiled: Jun 1 2018
Recv: echo: Free Memory: 1139 PlannerBufferBytes: 1232
Recv: echo:Hardcoded Default Settings Loaded
Recv: echo:Steps per unit:
Recv: echo: M92 X80.00 Y80.00 Z400.00 E93.00
Recv: echo:Maximum feedrates (mm/s):
Recv: echo: M203 X300.00 Y300.00 Z5.00 E25.00
Recv: echo:Maximum Acceleration (mm/s2):
Recv: echo: M201 X300 Y300 Z100 E5000
Recv: echo:Accelerations: P=printing, R=retract and T=travel
Recv: echo: M204 P500.00 R500.00 T1000.00
Recv: echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)
Recv: echo: M205 S0.00 T0.00 B20000 X5.00 Z0.40 E5.00
Recv: echo:Home offset (mm):
Recv: echo: M206 X0.00 Y0.00 Z0.00
Recv: echo:Material heatup parameters:
Recv: echo: M145 M0 H185 B0 F0
Recv: echo: M145 M1 H240 B0 F0
Recv: echo:PID settings:
Recv: echo: M301 P22.20 I1.08 D114.00 C100.00 L20
Recv: echo:Filament settings: Disabled
Recv: echo: M200 D3.00
Recv: echo: M200 D0
Recv: Error:MINTEMP triggered, system stopped! Heater_ID: bed
Changing monitoring state from "Operational" to "Error: MINTEMP triggered, system stopped! Heater_ID: bed"
Changing monitoring state from "Error: MINTEMP triggered, system stopped! Heater_ID: bed" to "Offline (Error: MINTEMP triggered, system stopped! Heater_ID: bed)"
Connection closed, closing down monitor

I just don't know what to change to get it fixed.


Too bad we can't see the actual temperature returned (more specifically, the format of the temperature as returned).

It might be worth using a hairdryer to warm up the hotend, then try to connect again.


The error is triggerd by the heatbed.
In Marlin is a BED_MINTEMP defined with 5 (°C). This also is used to check for a broken thermistor wiring (0°C as far as i remember).
So the questions should be:
"Is your room-/bed-temperature realy below 5°C or is your thermistor wiring broken?"
"Which actual bed temperature reports Octoprint in the temperature tab?"



No wiring Errors. Everything is working fine. I have the printer Enbeded but in a my Gardenshelter. So write now we have winter in Austria and the surrounding temp is -3°. I can start the heating up with my printer controller. As soon as the bed and the nozzle reaches 10° I can connect with OctoPrint and can take over.

Problem is in the Octoprint code. The printer is showing temp a single digit and I it will be sent as single digit.
I know It's a special case, but I would like to also been able to start heating up for remote.
Does anyone of you did already plugin's with temp control for octoPrint to know what to change in the regex or if where the Octoprint Software is sending the Heater_ID: bed error?

Friendly regards, robert


Until we see the actual temperature(s) returned from your firmware then it's difficult to suggest a solution. It feels like we have a horse-and-cart problem: you can't see your Terminal until OctoPrint connects to the printer in order to start seeing those responses. Again, use a hairdryer to warm up your hotend/bed/whatever long enough for OctoPrint to successfully handshake.

Once the serial connection is happy, then don't heat anything up with the interface. Let it cool back down to 9 degrees Celsius or less again while watching the Terminal. In theory, it will fail. And yet at this point, you could copy/paste the Terminal output.


I would then guess that this file is responsible, specifically the regex_temp variable's use of regex_float_pattern .

regex_float_pattern = "[-+]?[0-9]*\.?[0-9]+"

In my mind, we'll need to see what is produced from your firmware to run it through that regex. Then we'll know which of two paths to take: fix your firmware or patch OctoPrint.


Servus @becki!

Be aware about the storage temperatures of your material in your garden shelter. Also with cold temperatures the humidity can rise rapidly.


You've got a point there, Ewald. I bet PLA wouldn't like freezing temperatures much.


Thank you. I a thought the same and I am storing the material in the house in a waterresistant box. :slight_smile:


I got your point with the hear dryer and I am sorry about thinking it the wrong way. I wanted to heat it up today but the climate is twisting right now and I have around 10° surrounding temp. at the week and it will cool down again to arround 0. But I have some temp values also with a slight temp below 10°:

Recv: ok T:14.4 /0.0 B:8.9 /0.0 T0:14.4 /0.0 @:0 B@:0
Send: M105
Recv: ok T:12.9 /0.0 B:9.5 /0.0 T0:12.9 /0.0 @:0 B@:0
Send: M105
Recv: ok T:10.9 /0.0 B:10.9 /0.0 T0:10.9 /0.0 @:0 B@:0
Send: M105
Recv: ok T:14.2 /0.0 B:8.8 /0.0 T0:14.2 /0.0 @:0 B@:0
Send: M105
Recv: ok T:13.2 /0.0 B:9.4 /0.0 T0:13.2 /0.0 @:0 B@:0
Send: M105
Recv: ok T:13.2 /0.0 B:9.1 /0.0 T0:13.2 /0.0 @:0 B@:0
Send: M105
Recv: ok T:10.6 /0.0 B:10.3 /0.0 T0:10.6 /0.0 @:0 B@:0
Send: M105
Recv: ok T:11.6 /0.0 B:10.7 /0.0 T0:11.6 /0.0 @:0 B@:0

I don't know why but the 8.8 temp was not a problem today ?!?
maybe the nozzle has also to be below 10°? When I am getting the first Error I will post it.

The temp ribbon is showing below 10 : Aus -> maybe in English off or out


So... it's working.

What I guessed was happening before you provided the terminal output:

  • For any decimal place that was other than zero, your firmware would return one digit of precision on the temperature
  • For any decimal place that was exactly zero, your firmware was dropping the period and decimal zero, leaving that as just "B:9" or "T:9", let's say. We still don't know if this is the case since it hasn't failed. Perhaps more testing.

Maybe this is related only to the initial temperature check. Maybe once it's passed the initial check, it's never going to complain again.

Short version: the regex is happy with "T:n.d" and "B:n.d" (single-digit to left/right of decimal point). This isn't the problem.

It's still possible that when that "n" or that "d" is also a zero what your firmware produces something that the regex isn't happy with. But as has been suggested, exactly zero to OctoPrint means "your thermistor isn't attached". [Update: Only your firmware might think that rather than OctoPrint, as described below by foosel.]

It's also entirely possible that this is something wrong with your thermistor or your control board; heating up the thermistor in the bed brought it up to the minimum operating temperature, say.

Feel free to use an ice cube (and a bowl below it) to change the temperature of the (unheated) hotend if you wanted to make things go faster.


Exactly zero to OctoPrint means 0. It doesn't care about temperatures, it just parses and displays them. Any related errors are triggered by the firmware. If your firmware is happy with -10°C, OctoPrint will also be happy with it. If your firmware isn't, it will trigger an Error: message which in turn will tell OctoPrint that something's off which it will then inform the user about with a big red angry notification.


So, we're at the "fix your firmware" troubleshooting step, I take it.