Archive of Posts on using an Ender 3 for 3D printing. The posts will cover use of Freecad for 3D design, Pronterface for interfacing to the Ender 3 and slic3r for preparing the 3D design for printing. All code running on Ubuntu 18.04
I love my Ender 3 but one thing I found quite sub-optimal was the lack of an appropriately sized spindle bobbin for the supplied spool holder. The result is the filament hangs off centre. The larger the diameter of the internal hole of the filament reel, the worse the problem is.
To me it looked like what was needed was a spindle adapter (or bobbin) which would make the spindle sit (more or less) at the centre of the reel. This would mean the filament tension would only have to cope with a radial load. Without the spindle adapter the feed motor has to in effect “lift” the reel to spool off more. Which leads to extra tension and potentially filament tangles as the filament “digs” into the pile on the reel instead of unreeling.
I’ve found that printing bigger on an Ender 3 than the maximum advertised print area of 220x220mm. It is fiddly but straight-forward. But there are a couple of gotcha’s that need addressing. The on-line how-to’s I have read on maximising the print area on an Ender 3 don’t seem to address them.
First of all, my Ender 3 is an old 8 bit machine running 18.104.22.168 release software. This is what it came with. I have found that with my machine there is no need to change the code in order to get the printer to print out-side the 220×220 envelope. This may not be true for everyone (see here) but it’s worth giving this a go first to save the hassle of a code change. I have used nothing exotic except a standard Creality glass bed and don’t use spring clips to hold it on. Instead I use cut down book binders as described in this post
A simple outsize Print Test
To test out printing bigger on an Ender 3 I threw together a simple circular target in Freecad. I have managed to print a circular target with a diameter of 233mm. Why not 235mm? The Creality glass bed I use has slightly rounded edges. If you try with less that about 1.0mm the print lips off the edge.
The biggest Gotcha is the fact that the “home” position of the print head (on my machine anyway) is actually off the bed by about 1,5,0.
If you were to print at 0,0,0 (without adjusting the home offset position) then you would print into thin air.
Of course the usual remedy for this is to move the print head to the corner of bed and then set that as the home offset position. This is easy to do and is explained in this post Here.
Normally this is a perfectly acceptable solution for almost all print jobs. But not if you want to use the maximum area of the bed.
The main problem is the 5mm offset in the y direction. By zero adjusting to the bed corner as you normally you lose 5mm of the maximum bed travel (you also lose the 1mm in the x direction too) so you are straight-away limited to 230mm y direction travel (or 227mm if you account for the rounded edges and a smidgeon of tolerance)
The only simple solution that I have is move the glass bed. So instead of moving the print head to the corner of the glass bed you move the corner of the glass bed to the printhead. (don’t forget to change the zero position to equal the home position of the parked extruder head!)
Not a pretty solution I know.
You end up with the glass bed overhanging the front edge of the steel base plate by ~5mm in the y direction and ~1mm in the x direction. However I would argue that this level of overhang is not going to screw up the bed heating. For a glass bed anyway – it has a relatively large thermal capacity and so takes longer to cool.
Outsize Printing: Gcode Skirts and Brims
The other gotcha’s relate to building the Gcode. First of all, my favourite slicer – Prusa-Slic3r with it’s in-built profile for the Ender 3 won’t allow you to slice anything bigger than 220x220mm if you are using the Ender 3 profile. I would image that this can be changed but rather than risk mucking up my prized Prusa-Slic3r, I simply used Slic3r.
Obviously (or maybe not obviously) you have to turn off the brim and skirt settings. If you don’t then they are the items that dictate the maximum area in which you can print. They have to be accommodated on the print bed and they are larger than the enclosed model.
This has a couple of ramifications. The extruder does not get to extrude until it literally starts printing the job, which is not a good idea. So it would be wise to figure out adding some gcode to slic3r to get a little test extrusion done in a spare area before starting the print. I didn’t bother. But then, I was only printing targets to see what size I could print.
So that’s a simple way to get printing bigger on an Ender 3. I hope that helps.
Creality updated the stock motherboard in their Ender 3 3d printer towards the end of 2020. So how do you tell if it’s an 8 bit or 32 Bit Motherboard? There is nothing external to the 3D printer that allows the user to figure out whether they have an older 8 bit Atmel board or a new 32 bit Arm board with the exception of of one thing. Creality took the opportunity to change the USB connector from a mini USB socket to a Micro USB socket on their stock board. I blogged about this HERE I think that this is still the easiest way to find out. But here’s some more information on identifying the boards.
My Ender 3 came with a glass bed and spring clips as well as the more usual composite bed. I like the glass bed and generally get (what I regard as) good results from it. I’ve hardly ever used the composite bed. But the thing I really hate with the Ender 3 is attaching the glass bed with spring clips to hold the bed in place.
The library of applications for Ubuntu 18.04 is getting old. It is after-all over 3 years since 18.04 was released. But you can install the latest Cura and Slic3r versions on Ubuntu 18.04. As well as the latest Prusa Slic3r if you prefer. Here’s how.
Like most things in Freecad you can build Wedges and Pyramids in any number of ways. But the most readily available and direct are the ones under “Creation of parameterised geometric primitives” in the “Part” workbench.
Auto home on a Creality Ender 3 (and presumably all other 3D printers) moves the bed and the extrusion nozzle into a default “zero” position. In essence the bed and the extrusion nozzle are moved so they hit the end stop microswitches which signal to the controller board where the bed and nozzle are.
Mostly people assume that this is 0,0,0. In fact that is what it is set to in the factory defaults for the Ender 3. But if you look at the bed of an Ender 3 after it has been auto homed you will find that the nozzle is actually off the bed by about 5mm. It is not in the bottom left hand corner of the plate as you would expect.
This is just a simple little Freecad project to design and build a keyfob with angled text like the one below. In this previous post I detailed how to cut text into a flat object. This does the reverse. It raises text out of an object. Just to make it a little more interesting this is done on a sloping face. I skim over some parts in this. If you get stuck try this post series that describes these skimmed topics in more detail.
Open FreeCad and change the Start screen to the Part Design Screen by selecting from the dialog box in the middle of the top bar. Then click on start body and finally click on start sketch.
When you add a text string to a 3D project (like this simple one) you have to fully specify the path to the font you are using. Which is a pain and is error prone. But there is a Freecad font path set-up in “preferences”. You can specify the base directory of all the fonts. This considerably simplifies the selection. Or you can even just set one font in “preferences” and just use that with no further selection needed. But there’s a small gotcha that tripped me up for a while.
This is the last part of a small series (starts here) tracking the design and processing of an ultra simple 3D project using Freecad and Prusa Slicer. Together they produced a Gcode file. This can be printed as usual using a SD Ram card. But this post is mainly about printing on a Creality Ender 3 using Pronterface (also called Printrun) on a USB connection.
This is the third post in a series plotting the development of an ultra-simple plate from design in Freecad, processing the STL file using Prusa Slicer through to printing on a Creality Ender 3 3D printer. The first post in the series is HERE. In the previous post (Here) we produced a project of our 3D plate with two holes. Now we need to export it from Freecad as an STL file we can process it using Slic3r-PU
This is the second part of producing a simple 3D printed object using Freecad, Slic3r, Pronterface and an Ender 3 3D Printer. Here we turn our plate sketch into a 3D object and add the holes. The first part covering using Freecad Sketcher is HERE.
Many people intermittently use Freecad and the other associated software tools. So when they need to get a 3D design printing they have to go back up the learning curve each time. I expect that like me they go through a phase (each time!) of re-learning what should already be known. But my/your brain has “filed” it away. Hence I thought I’d produce an ultra-simple example with Freecad to remind me of the basics. If like me you are forgetful or maybe just starting to build your own 3D prints then I hope this helps.
I had an irritating problem when I tried to connect Pronterface on my Ubuntu 18.04 LTS system via USB to my Ender 3 3D printer. Whenever I tried to establish a connection I got permission denied displayed in the right hand side of the Proterface GUI.