Ender 3 (Pro & V2 & Neo & S1) Not Reading STL Files

If you have recently picked up an Ender 3 as your very first 3D printer and tried to print a 3D model of your choice by directly using an STL file, you’ll find that the file does not show up on the screen of your Ender 3 at all, practically making it impossible to start a print.

In this guide, we will explain why your Ender 3 won’t read the STL files you have transferred to the SD card and take you through the process of converting an STL file to a G-code file, which is the format that your Ender 3 will be able to read without any problems.

Why Does the Ender 3 (Pro & V2 & Neo & S1) Not Read STL Files?

While an STL file does contain the data for a digital 3D model, it doesn’t have much of the required information for the 3D printing process, and because of this, STL is not a file format that the Ender 3 or any other 3D printer supports, which makes it perfectly normal for your Ender 3 not to be able to read such a file and start a print by using it.

As the information that’s specific to a particular instance of a print, whether it’s the paths your 3D printer will take during the 3D printing process, the amount of infill it will use, the temperature the nozzle will heat up to, the thickness of the layers it will put down, and many more, is not a part of an STL file, using an STL file to 3D print, even if your Ender 3 could read it, wouldn’t be possible.

Instead, the file format you will need for your Ender 3 to be able to read the file and print from it is known as the G-code file format, which consists of instructions (known as G-code commands) that your Ender 3 can understand, with all the data required for the 3D printing process to take place contained within, whether it’s the positions that the nozzle will need to move, the amount of plastic the 3D printer will extrude, or the printing temperature.

gcode file example

The standard way of creating a G-code file for the purposes of 3D printing is to use a software known as a
slicer, where you can configure print-specific parameters on a print-by-print basis, such as the printing temperature that your 3D printer will use or the amount of infill that will go into the print and import the 3D model of your choice, with the slicer practically combining the 3D model and the print settings to create a G-code file that your Ender 3 will be able to understand, together with all the information necessary.

This way, STL files serve the purpose of containing the shape of the 3D model alone, with no print-specific configuration that would vary across different 3D printers and scenarios, which makes it possible for anyone, regardless of the 3D printer or the type of filament they’re using, to share and obtain STL files on / from the internet, and create their own custom G-code file compatible with their hardware.

How to Convert an STL File to G-Code to Get Your Ender 3 (Pro & V2 & Neo & S1) To Read It?

To convert an STL file to a G-code file, which your Ender 3 will be able to read and print from, the first thing you need to do is to install a slicer software on your computer, with our recommendation being Ultimaker Cura due to it being free-to-use and feature-packed at the same time, while also having a large community.

Once you install and open Cura for the first time, you will need to go through the initial setup process, where you will need to choose the Ender 3 model you’re using from the Add a non-networked printer list, which will get Cura to automatically adjust some of the printed-related parameters, such as the build volume & start G-code, and also create some pre-made print profiles that you can use.

cura adding ender 3 during initial setup

Next, you will need to import the STL file you want to print into Cura by clicking the Folder icon (alternatively, you can drag the STL file onto the window or use the File -> Open File menu) on the top-left corner and choosing the STL file from the file explorer, which will show a preview of the 3D model on the workspace.

cura imported stl file example

Once you can see the 3D model on the workspace, the next step is to ensure it’s centered on the build plate by clicking the Move tab on the left menu and confirming that the X, Y, Z values are all set to 0, as the 3D model floating above the build plate, or some parts of it being below the build plate will cause your print to fail.

cura centering 3d model in move menu

Next up, you need to select the filament you’re using and the nozzle size of your Ender 3 (0.4 mm by default) from the tab in the top-middle corner of the Cura window, which will get Cura to adjust its default print profiles accordingly to accommodate the filament type and the nozzle you’re using.

cura choosing filament and nozzle size

With that done, the next step you will need to take is to click on the tab in the top-right corner and switch to the Custom view by clicking the Custom button on the bottom-right corner of the pop-up, which will allow you to see the entirety print settings section, along with the pre-made profiles that Cura offers.

cura print settings in recommended view

cura print settings in custom view

While there are countless topics to talk about when it comes to adjusting print settings to be as optimal as possible, our recommendation would be to go ahead and choose the Standard Quality profile from the Profile dropdown list for the purposes of this guide, which will be sufficient to create a G-code file that your Ender 3 will be able to read and print from.

cura standard quality profile

With the configuration ready to go, you can now click the Slice button on the bottom-right corner, which will get Cura to perform the action known as slicing in 3D printing, which practically means processing the STL file you have imported and the print settings you have configured together to create a G-code file that contains all the information necessary for your Ender 3 to 3D print the model you’re seeing on your screen.

cura slice button

Once your G-code file is ready, click the Save to Disk button on the bottom-right corner, and save the G-code file to the SD card that came with your Ender 3, which should already be formatted with the correct filesystem and partition table,

cura saving gcode to sd card

Finally, insert the SD card that now contains the G-code file into your Ender 3, and once you do, the G-code file should appear in the list of files without any problems (unlike the STL file, which isn’t a supported format as we have mentioned earlier), meaning that you can print it now.

ender 3 gcode visible in sd card


While it may seem odd that your Ender 3 is not reading STL files when you’re starting with 3D printing for the very first time, as this is the format that almost any 3D model you can find on the internet uses, an STL file is designed for the purpose viewing and manipulating a 3D model on the computer, and not to carry the instructions that your Ender 3 needs for printing.

Fortunately, converting an STL file to a file format that has the necessary instructions for 3D printing and one that your Ender 3 can read from is a pretty straightforward task, as slicer software, such as Cura, can get this done for you with the click of a few buttons at most.