New & Reviewed

Built & Tested: Creality Ender 5 Pro

DIYODE Magazine

Issue 33, April 2020

3D printers, like many technologies, are becoming cheaper, and the capabilities available for a given price are increasing. Recently, a sample of Creality’s Ender 5 Pro arrived at the office, and we were very interested to see how it performed.

The Ender is a semi-assembled, flat-packed printer, a hybrid between the enclosed, fully assembled models like the Ultimaker and Flashforge, and the completely unbuilt kits such as the Core i3 we reviewed last year. It has a reasonable build volume, very good considering its price. It operates with the x- and y-axes running in v-grooves with rubber-tyred ball bearings, instead of guide rods and linear bearings. It has a familiar interface and some handy features according to the advertising, so we decided to see for ourselves.

Additionally, the unit features an all-metal frame, fully enclosed mainboard, clearly labelled wiring loom pre-attached at the mainboard with connectors at the other ends, internal Switch-Mode Power Supply (SMPS) leaving only an IEC connector visible for power connection, a magnetic, removable build surface, PTFE-lined filament feed tube, and a filament feed motor separate from the extruder. Unfortunately, nowhere on Creality’s website or in the product manual could we find a definitive list of the filament types supported. The firmware has pre-heat settings for PLA and ABS, but no mention is made of PETG or any exotic filaments. Sadly, the printer does not feature filament detection if the filament breaks or runs out.


On opening the box, first impressions were good. The contents were well packed in custom-cut closed-cell foam. The first layer revealed little, but the second layer shed a surprise: The flat-pack is not a complete build! The sub-assemblies are already assembled, removing the challenges inherent in fitting belts, spacing pulleys, aligning lead screws, and seating bearings. There is an assembly for the control interface, one for the base and motherboard (which includes the power supply), one for the z-axis, one for both x- and y- axes, and one for the build plate, which attaches to a bracket on the z-axis assembly. The filament feed motor is a separate item.

Also in the package is a box of small parts. The screws used in assembly are bagged into sizes rather than assembly steps, and clearly labelled. There is a small bag with a spare nozzle, filament feed tube clamp (a pneumatic fitting), a nozzle cleaner, USB SD card reader with SD card, and a scraper with a well-formed edge. A pair of side cutters is included, as are five hex keys, a flat-blade screwdriver, and two spanners. A couple of loose remaining parts will assemble into a filament holder.


The instruction manual has clear diagrams, with red outlined boxes used to call out important points. However, the text is badly translated. For example, one warning box reads “Place the profile hole of the side upon, install the profile, but not mess with the direction”. What this means in reality, is that there is a hole drilled and tapped in each side of one end of each of the aluminium profile pieces used in this step. It must be aligned correctly. Thankfully, the diagrams are fairly clear about this, and careful examination of the whole sequence of steps before beginning will ensure they can be interpreted correctly.

Most of the screws on the sample went straight in, but some needed coaxing with the hex key. This prompted a check of the parts, to make sure they were both chosen and aligned correctly. In each case, they were. As always, tighten all screws in a step finger tight until the alignment of all parts is checked and all screws are in place. Then, tighten progressively, each one a bit at a time. Be careful not to overtighten, as the screws are steel and the frame is aluminium - the thread will strip inside the frame well before the screw will be damaged.

With hardware assembly complete, it is time to connect the wiring. The loom that comes from the base of the Ender 5 Pro is very clearly labelled, and the diagram in the instructions is just as good. Follow it to route the cables safely and connect them to their end points. The only catch is that some strands of the loom carry the same letter as a label on two different wires. These go to the same area of the assembly, but have different sized connectors. With care, there should be no problems. The same goes for the next step, which is another set of wires with different connectors. These are labelled on the motherboard side only, but are colour coded. The only ones that can be mixed up easily are the two thermistors. One is in the hot end, the other in the bed. They come from different looms and are quite obvious if attention is paid.

In just seven steps, assembly is complete. Unfortunately, the wiring does not look anywhere near as neat on the build as it does in the manufacturer’s photos. The advertising photography suggests the cabling is hidden inside the channels of the frame, but there is not enough length for this to be possible while still allowing each axis to reach its full travel. In one case, hiding the cable would have halved the axis travel. In some cases, the cables can be anchored inside the channels, and cable ties are supplied. Use some to attach cables to channels, and others to neaten and bundle those cables which must remain suspended in mid air.

Creality recommends using a piece of regular, 80 gsm printing paper to level the bed and calibrate the z-axis. The instructions show this as the second preparation step, after loading the filament. This risks having cooled filament protruding from the nozzle, as the calibration process takes place with the nozzle cold. The sample was calibrated before any filament was loaded, ensuring a clean nozzle, and this is the DIYODE recommendation.


Now it’s time for a tense change. So far, we’ve described what your experience should be like, and what cautions to take, should you acquire an Ender 5 Pro for yourself. Now, it’s time to describe what happened as we proceeded to test our sample. Anything we describe here relates to our sample. Most of the time, it will relate to one you might buy as well. However, anything regarding firmware is subject to change at any time.

The interface is familiar. It is the same menu as that on our Lulzbot, the Core i3 we tested last year, and indeed a great many printers, originating with the popular Prusa. The difference on the Creality Ender 5 is that the control knob seems to be more precise. Sometimes, on our office Lulzbot Taz6, several detent movements are needed to make the cursor move on the menu, and button pushes are not always responsive. On the Ender 5 Pro, response is very smooth and usually, only one detent movement is needed per cursor movement. The display layout will be familiar to anyone who has used any of these printers before. Some of the menu items may be different, however.

At first, when we powered up our Ender 5 Pro and accessed the menus, all seemed well. We found the ‘Auto Home’ function and selected it. Immediately, the x-axis and y-axis did as they should, moving the extruder to one corner of the frame. However, there was no life from the z-axis motor. After verifying all connections were secure, we selected ‘Disable Steppers’ from the menu, and manually turned the lead screw until the z-axis assembly was in contact with its limit switch. Using the ‘Disable Steppers’ function allows turning by hand without circuit damage, but care is still needed. After this, we tried ‘Auto Home’ again, and this time, it was successful.

After again disabling steppers, we followed the instructions and manually moved the extruder head so the nozzle was over one of the bed levelling screws. The paper was placed between nozzle and bed, and the screws adjusted so that it applied just enough pressure to feel resistance when pulling the piece of paper side to side. Then, the head was moved to the next levelling screw, and the process repeated. We started with all four screws at maximum retraction so that there was no risk of colliding the bed and the nozzle.

Having four bed levelling screws is unusual, and problematic. It is one of the few downsides we had discovered to this point. It does mean that adjusting one corner will effect the spring loaded position of the remaining three screws; so at least a second pass is required to make sure that the other screws are still set correctly. The four screws create two diagonal axes, and adjusting one screw pivots the whole bed on the adjacent two, so that the opposite side of the bed moves opposite to the side being adjusted. This meant that we had to make five laps of the adjustment screws to get things really even.

After running the nozzle up to temperature, we fed the filament through the tube until some was visible at the tip of the nozzle. Surprisingly, this came out yellow, even though the filament we had fed in was white. We take it as a sign of quality control that these units appear to have each had an extruder tested before shipping. One downside of the printer is that, with the bed in the home position by default, we had to access a different menu and manually move the bed so there was clearance under the nozzle. This allowed us to clear away the excess filament. There is another method shown in the instructions besides this manual heating method: ‘Preheat PLA’ is available. We decided to try that later to find out if this function moves the bed or not. The function is intended for helping in removal of the filament.


We had to install the software before going any further. Creality has its own version of Cura, as do some other manufacturers. It is supplied on the microSD card with the package, sitting in a small USB card reader. The same card can be used to load gcode files into the printer. Installation was straightforward on our Windows 10 machine, although someone did click ‘no’ five times in a row instead of ‘yes’ to the security prompt for allowing installation of non-Windows software.

With the Creality Slicer open, we imported a file we downloaded from Thingiverse. We chose “pgreenland’s” parametric version of “bsutton’s” bed levelling test print, which is simply nine squares in a grid. We adjusted the dimensions so that the print neared the edges of the build plate, scaled it to have a thickness of 0.3mm. The initial print layer thickness is 0.3mm by default, so we left it at that. All other parameters and settings were left default. The slicer has a few quirks, as do all slicers. We found that parameters are hard to change or even find, even in expert mode. In particular, regular Cura has a function for printing with a thin wall in situations like fine sunken detail or embossed text. We couldn’t find this in Creality Slicer.

Within seventeen minutes, the print was ready. The magnetic build plate surface made getting the print off easy, however, the z-axis stayed very close to the nozzle. Again, the control menu was accessed to manually set the Z-feed to move the build plate down by around 50mm, so that the build plate could be easily removed without coming into contact with the nozzle. This is not a habit for us yet, as the Lulzbot and Flashforge printers we are used to, move their print beds well away from the extruder after the print is finished. The Ender 5 Pro’s magnetic build plate can be removed in the default position with care, as the extruder moves to the back right corner after printing and only sits about 10mm into the build plate area. With the build plate off and sitting on the well-lit workbench, we took to it with a magnifier to check the performance.

For a print with default settings, we were pretty impressed. Bed levelling looked to have worked: There was no visible inconsistency in the print thickness, and there was no glaring demonstration that the nozzle was too far away from or too close to the print bed. The print looked solid and well-filled, but some overrun was noticeable.

This can be fixed with the ‘Retraction’ setting in the menu, but will slow print time slightly. This function retracts the filament by a small amount when the nozzle moves anywhere that it isn’t printing. It is supposed to reduce or eliminate overrun and stringing, but how much it does so varies between printers. We’ll test that later.

We removed the skirts from the prints and measured the squares with digital calipers. They were consistently around 0.4mm, not the 0.3mm expected. On closer inspection, this was because the print bed was slightly too close to the nozzle, and was causing ribbing where the nozzle was too far into both the currently extruded material, and that of the previous pass. We also discovered at this point that the removable magnetic print surface is very, very grippy. We had trouble removing such thin prints from it. This will not normally be a problem, because 0.3mm thick prints are unusual. It does, however, mean that great care is needed when you are trying to remove the pre-print extrusions from the surface. The scraper can easily gouge this soft surface.

Another pleasant surprise turned up when we went back to the bed levelling screws to adjust the bed height. As supplied, the screws were at maximum retraction, and so only moved one way when we initially levelled the bed. Now that the bed had moved and we had to think about which way was up and which was down, we noticed that the dials are engraved with arrows and the words ‘up’ and ‘down’. This is an uncommon touch and we like it a lot! With the bed adjusted evenly, we set another calibration print going. At this point, the challenge of a four-screw system again reared its ugly head. After twelve laps of the set of screws while the print was running, we were happy with the level. No more ridges in the print, total bed adhesion, no evidence of the gap being too small or too large. With the print bed height correctly aligned, the prints were easier to remove. Onwards!


The next item on the list was another test print, this one also from Thingiverse by 'majda107’. It features a series of items that test different aspects of the printer. There is an overhang test, hole test, tube test, span test, column test, and several other features that are harder to name but easy to see in the images. We left the print going overnight, and came back to it the next day. Comparing the print to the rendered images of the model was impressive. There was some stringing on the columns and one side of the overhang test, but the rest of the model was mostly clean. The overhang test revealed that the printer had performed solidly until 60°, and still printed well at 70°. The 80° section, which is the maximum in the test, still printed properly on the upper surface, but the underside showed some issues with the first two layers. This isn’t surprising at all for such an unsupported overhang. Most good printers can print a sphere unsupported, but many rely on a high wall thickness and careful control of the layer overlap settings to achieve this.

Our test settings:

  • Unbranded PLA
  • 0.1mm layer
  • 80mm/s speed
  • Retraction on
  • 200°C hot end
  • 60°C bed temp

In other areas of the print, the span test showed some anomalies. There are spans of 2mm, 5mm, 10mm, 15mm, 20mm, and 25mm. The 2mm span printed well, but the 5mm span showed some sagging of the initial layers. The 10mm and 15mm spans printed soundly, while the 20mm and 25mm spans showed increasing, and expected, sagging of the first layers. The upper surfaces of each were well formed. The 8mm hole measured 7.92mm, the 6mm measured at 5.95, and the 4mm at 3.85. There are also slots at 2mm, 3mm, and 4mm wide, and these printed at 4.02mm, 2.97mm, and 2.07mm respectively.

There are four tubes on the print, designed to print with a 1mm wall and at external diameters of 4mm, 6mm, 8mm, and 10mm. Wall thickness varied between 0.95mm and 1.1mm, and the tubes had external diameters of 3.93mm, 6.14mm, 7.9mm and 9.8mm. There were also no perfectly cylindrical, but close. The same variation in tolerances was noted in the other test items: Close, but not quite. The performance is certainly on par with the Flashforge Finder and Guider II, and Lulzbot Taz6 Pro, that we use here in the office. One thing that was initially disappointing is that the engraved text was difficult to read and the embossed text missing altogether. A note from the model designer on the download page notes that Cura has to be set to ‘Use thin wall’. Creality’s slicer is Cura-based, but we couldn’t find this setting anywhere, nor any other mention of all thickness besides in ‘Basic’ mode, where shell thickness can be set to multiples of the nozzle diameter.

Now, there was one last test print we wanted to demonstrate: The famous and ubiquitous Benchy by ‘CreativeTools’. This print was designed for testing and comparing 3D printers, so we felt it was essential to include it. We found the original from CreativeTools, however, there are hundreds of them now. You can find a shipwrecked one, aircraft carrier, U-boat, Disney-themed ones, almost anything. We set the original going with a 0.3mm layer thickness, 0.8mm shell, and 60mm/s print speed after the slicer prompted us to lower this figure from the default 80mm/s. All other settings were left default. We followed this up with prints of the same model at 0.2mm and 0.1mm layer thickness.


The Benchy prints worked rather well, although there are some imperfections, as expected. On the 0.1mm model, some of the surface on the deck of the boat is gappy and even appears to have missed a few extrusions here and there like missing deck planks. The printer has struggled a bit at the top of the arches and spans: The arches for the cabin doors and the top of the circular rear window have uneven extrusion, and the span in the square front window has sagged a little. The hull is finely formed with few errors, as is the rest of the detail.

The 0.2mm model is much the same story, except that with thicker strands, the arch and span issues are less pronounced. The missing deck surface is more obvious, and both the smokestack and rear flagstaff socket have extra knobbly bits.

The 0.3mm model had the most errors, with an uneven hull surface, some visible loping in the door arches, quite a messy flagstaff socket, and gaps in the deck surface.


We mentioned earlier that we would test the retraction function, and whether it is effective in preventing ‘stringing’. From Thingiverse, we downloaded a test print by ‘Glyn’, called ‘String test (minimal)’. It is just two posts connected at the base, and the idea is that this is the scenario where most printers will create some form of stringing as they cross from one post to the next. We eventually printed eight different units. One each at default settings in both 0.25mm and 0.1mm layer heights, and another in both 0.1mm and 0.25mm with layer retraction turned off (it’s on by default). Comparing the two, the 0.25mm print with retraction was almost faultless, save for a few wobbles in the layers. The 0.25mm print without retraction looks denser than a Red Back Spider’s web. The story is much the same for the 0.1mm prints.

Left to right: 0.1mm, retraction enabled; 0.1mm, no retraction; 0.25mm, retraction enabled; 0.25mm, no retraction.


Thermal runaway has been reported as an issue on some Ender series printers, and the issue is not limited to this series or to Creality as a brand. There is some confusion in online discussions about the difference between thermal runaway protection and minimum temperature errors. Thermal runaway is when power is continuously supplied to the heater cartridge, causing it to heat beyond design. In a worst case scenario, this can cause, and has caused, a fire. This is more likely if some other error, such as loss of bed adhesion, causes a print or some filament to stay in contact with the hot end. Minimum temperature error occurs when the printer can no longer sense data from the thermistor in the hot end, or if that data indicates a temperature lower than a set minimum. At this point, the printer should sense the data and shut down the printer.

However, thermal runaway is when the heater cartridge is continuously powered. It occurs when, through damage to the thermistor or for some other reason, the temperature data fed into the system is within the limits, but is actually wrong. The power is maintained to the heater cartridge, which is actually already at temperature, and it continues to heat, unknown to the software. This will overheat the hot end and can lead to significant damage very quickly.

It is worth noting that the documentation makes no mention of it, and the firmware update from Creality that mentions thermal runaway has a different version format to either the current download or the supplied firmware. We suspect a decimal point is just missing but we cannot be certain. The specific product advertising page does say that the printer comes with Thermal Runaway Protection, but it also states that the printer comes with Marlin version 1.1.8 firmware, which is not what is displayed on the sample’s information display.

Testing minimum temperature error is easy. Disconnecting the plug from the hot end thermistor to the mainboard should yield an error. We heated our hot end manually to 170°C, disconnected the thermistor, and got the desired error. Thermal runaway is a little harder to test. We did some research and decided to disconnect the heater cartridge and instead connect a multimeter to the output from the mainboard. The idea is this: If thermal runaway protection is present and enabled, hot end temperature increase should be monitored against the power being applied. If no change in temperature, or an inadequate change, is detected for more than a minute (forty-five seconds on some models and brands), the system shuts off power to the heater cartridge.

Accordingly, we connected our meter, set the temperature to reach 200°C, and started the stopwatch. The Thermistor reading was showing the ambient room temperature, and the multimeter displayed 24V, albeit with reverse polarity because the terminals on the mainboard are not marked and the heater isn’t polarised. A grand total of forty seconds later, the screen displayed an error message to say that heating had failed, and that printing had been stopped. A full power on/off cycle is required to reset from either a thermal protection fault or a minimum temperature fault. This makes us confident that the printer is equipped with thermal runaway protection, and that it is enabled by default.


Any 3D printer costing less than a new car will have some caveats and imperfections. Whether or not a printer is considered ‘good’ depends on the realism of the expectations. Overall, we were impressed by the performance and usability of the Creality Ender 5 Pro, especially considering its price. It is easy to assemble and, besides bed levelling, takes a minimum of calibration and fiddling. The magnetic build plate makes part removal nearly painless and prevents the kind of calibration damage that forcing stuck prints off a fixed build plate can cause. The interface is familiar and the control knob is responsive. While the interface may not be as user-friendly as a graphical one, the common interface is easy to find support and guidance for. The attention to detail in the physical design of the machine was surprising.

Printing performance is impressive when considering the price of the unit. Quality of prints is good, with minor errors and anomalies here and there. While there are more of them than on our main office printer, this one is a fifth of the price. We would like to see a little more control in the slicer, particularly the lack of option to print a thin wall where it counts, such as with the embossed lettering on the test print. These are minor points at face value, but may have an impact on print quality with very fine detail.

The Creality Ender 5 Pro is available at Altronics:
  • Ender-5 Pro Desktop 3D Printer K8602 $819 (June, 2020)