Thermal Runaway Protection absent on Creality Ender 3

I did try to reply to on the FAQ regarding the Printer Safety Check, but there doesnt seem to be an option.

I believe the Ender 3 firmware does not yet have Thermal Runaway Protection - this is a shame because it is proving to be a popular machine (Best Seller on Amazon, and look at the number of videos being posted on YouTube).

Octoprint does not identify my Ender 3 as having this as a known issue, but I believe it does on the current version

Weird, you should be able to just reply to the topic. In any case, what makes you come to the conclusion? Did you do any specific tests?

Also, could you please provide a serial.log of connecting to your printer? Without any kind of sensible information in the output that the printer produces to definitely identify it by, I won't be able to add a check in the printer safety plugin.

Serial log for Ender 3 here:

2018-11-12 14:58:29,727 - serial.log is currently not enabled, you can enable it via Settings > Serial Connection > Log communication to serial.log
2018-11-13 01:29:02,801 - Enabling serial logging
2018-11-13 01:29:04,024 - Send: M105
2018-11-13 01:29:04,053 - Recv: ok T:14.7 /0.0 B:15.0 /0.0 T0:14.7 /0.0 @:0 B@:0
2018-11-13 01:29:09,027 - Send: M105
2018-11-13 01:29:09,040 - Recv: ok T:14.9 /0.0 B:15.0 /0.0 T0:14.9 /0.0 @:0 B@:0
2018-11-13 01:29:13,782 - Connection closed, closing down monitor
2018-11-13 01:29:13,786 - Changing monitoring state from "Operational" to "Offline"
2018-11-13 01:29:18,663 - Connecting to: /dev/ttyUSB0
2018-11-13 01:29:18,679 - Changing monitoring state from "Offline" to "Opening serial port"
2018-11-13 01:29:18,683 - Connected to: Serial<id=0x67344e70, open=True>(port='/dev/ttyUSB0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitor
2018-11-13 01:29:18,684 - Starting baud rate detection...
2018-11-13 01:29:18,686 - Changing monitoring state from "Opening serial port" to "Detecting baudrate"
2018-11-13 01:29:19,694 - Trying baudrate: 115200
2018-11-13 01:29:19,705 - Recv: start
2018-11-13 01:29:19,714 - Send: N0 M110 N0*125
2018-11-13 01:29:19,716 - Changing monitoring state from "Detecting baudrate" to "Operational"
2018-11-13 01:29:19,732 - Recv: echo: External Reset
2018-11-13 01:29:19,738 - Send: N0 M110 N0*125
2018-11-13 01:29:19,743 - Recv: Marlin 1.0.0
2018-11-13 01:29:19,746 - Recv: echo: Last Updated: Sep  3 2018 15:45:59 | Author: (Ender3)
2018-11-13 01:29:19,750 - Recv: Compiled: Sep  3 2018
2018-11-13 01:29:19,752 - Recv: echo: Free Memory: 9679  PlannerBufferBytes: 1232
2018-11-13 01:29:19,756 - Recv: echo:Hardcoded Default Settings Loaded
2018-11-13 01:29:20,653 - Recv: echo:SD card ok
2018-11-13 01:29:20,658 - Recv: Init power off infomation.
2018-11-13 01:29:20,660 - Recv: size:
2018-11-13 01:29:20,662 - Recv: 591
2018-11-13 01:29:20,664 - Recv: init valid:
2018-11-13 01:29:20,666 - Recv: 0
2018-11-13 01:29:20,669 - Recv: 0
2018-11-13 01:29:20,732 - Recv: ok
2018-11-13 01:29:20,735 - Recv: ok
2018-11-13 01:29:20,736 - Send: N1 M115*39
2018-11-13 01:29:20,742 - Send: N2 M21*18
2018-11-13 01:29:20,787 - Recv: FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:http://www.mendel-parts.com PROTOCOL_VERSION:1.0 MACHINE_TYPE:www.creality3d.cn EXTRUDER_COUNT:1 UUID:00000000-0000-0000-0000-000000000000
2018-11-13 01:29:20,794 - Recv: ok
2018-11-13 01:29:20,796 - Recv: echo:SD card ok
2018-11-13 01:29:20,799 - Recv: Init power off infomation.
2018-11-13 01:29:20,802 - Recv: size:
2018-11-13 01:29:20,804 - Send: M20
2018-11-13 01:29:20,806 - Recv: 591
2018-11-13 01:29:20,808 - Recv: init valid:
2018-11-13 01:29:20,810 - Recv: 0
2018-11-13 01:29:20,811 - Recv: 0
2018-11-13 01:29:20,812 - Recv: ok
2018-11-13 01:29:20,819 - Recv: Begin file list
2018-11-13 01:29:20,994 - Recv: /47ACB~1.MOD/TEST/TEST-D~1.GCO
2018-11-13 01:29:21,011 - Recv: TEST-D~1.GCO
2018-11-13 01:29:21,012 - Recv: CE3_3D~1.GCO
2018-11-13 01:29:21,014 - Recv: End file list
2018-11-13 01:29:21,017 - Recv: ok
2018-11-13 01:29:24,717 - Send: M105
2018-11-13 01:29:24,735 - Recv: ok T:14.8 /0.0 B:14.9 /0.0 T0:14.8 /0.0 @:0 B@:0
2018-11-13 01:29:29,719 - Send: M105
2018-11-13 01:29:29,738 - Recv: ok T:14.8 /0.0 B:15.0 /0.0 T0:14.8 /0.0 @:0 B@:0
2018-11-13 01:29:34,720 - Send: M105
2018-11-13 01:29:34,742 - Recv: ok T:14.8 /0.0 B:15.0 /0.0 T0:14.8 /0.0 @:0 B@:0
2018-11-13 01:29:39,722 - Send: M105
2018-11-13 01:29:39,745 - Recv: ok T:14.8 /0.0 B:14.9 /0.0 T0:14.8 /0.0 @:0 B@:0

By the way, I've been talking to Creality and apparently since April they've been putting thermal runaway on by default in their newly shipped printers. Guess there must still be some in the market, or older ones, running firmware without it so probably still a good idea to warn about it

Interesting... might be possible to detect those via the firmware compilation date they put in. Maybe someone with a safe firmware version directly from creality will be able to provide some feedback on that.

I'm actively talking to them about it so I'll try and find out some more information

@shawaj any luck?

It would be helpful if they more detailed firmware versioning and could just tell us which version it was enabled on ... I'm coming here 5 months later and my firmware string is identical ...

FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:http://www.mendel-parts.com PROTOCOL_VERSION:1.0 MACHINE_TYPE:www.creality3d.cn EXTRUDER_COUNT:1 UUID:00000000-0000-0000-0000-000000000000

Love the empty uuid! Not had any luck so far. They are either dodging or not understanding the question.

It's kind of hard when the person who is translating isn't technical and the technical people don't speak English.

Hoping we can get somewhere soon though

Just got a reply from Creality...

This is the version our printers are using now.

Marlin1.1.6 and Marlin1.1.0RC3 have thermal runaway, Marlin-add_chinese_font don't have.

I'll need the terminal/serial output on initial connect to the safe versions of the firmware in order to be able to add an exception.

Last but not least, apparently all printers produced by them since beginning of 2018 have had this firmware....

Am I reading this right that the safety warning is actually incorrect as the Ender 3 has the thermal protection if it was made in 2018?

Supposedly, yes. But not 100% sure as their answers were not that reassuring to be honest. Might have just been the language barrier though to be fair.

FWIW even the Prusa gives an empty uuid.

Fair enough - I think the Prusa have a serial number on each printer though.

Only on a sticker. It doesn't exist in the firmware or etched somewhere or anything.

True - but better than nothing

Someone who has one of those machines should be able to easily check by simply disconnecting heater or thermistor during heatup and see how the machine reacts (keep your hand on the power plug though just in case). If it is confirmed fixed then:

:wink:

Obviously not all 2018 printers have the upgraded firmware.

Changing monitoring state from "Detecting baudrate" to "Operational"
Recv: echo: External Reset
Recv: Marlin 1.0.0
Recv: echo: Last Updated: Sep  3 2018 15:45:59 | Author: (Ender3)
Recv: Compiled: Sep  3 2018
Send: N0 M110 N0*125
Recv: echo: Free Memory: 9679  PlannerBufferBytes: 1232
Recv: echo:Hardcoded Default Settings Loaded
Recv: echo:SD card ok
Recv: Init power off infomation.
Recv: size:
Recv: 591
Recv: init valid:
Recv: 0
Recv: 0
Recv: ok
Recv: ok
Send: N1 M115*39
Send: N2 M21*18
Recv: FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:http://www.mendel-parts.com PROTOCOL_VERSION:1.0 MACHINE_TYPE:www.creality3d.cn EXTRUDER_COUNT:1 UUID:00000000-0000-0000-0000-000000000000

Apparently Creality has updated the source code for some printers, Ender 3 included, which seems to be based off Marlin v1.1.6.

EDIT: I've downloaded Marlin v1.1.6, initialized a git repository, pasted the source code from Creality and generated a diff file. Thermal protection is enabled by default on Marlin and Creality kept it. There are some functionality changes, such as motor acceleration and feedrate. They also enabled babystepping and are in favor of using pin 27 for the BLTouch sensor, rendering the buzzer useless. Here's the diff.