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
This is one of those problems for me that comes and goes for no apparent reason. But sometimes I get really bad issues getting the 3D extrusion to stick to the bed. When it goes wrong the result is usually catastrophe.
Now (I think) I have a super-cheap and reliable method to get bed adherence. I (mostly) use a glass bed.
In the past I have used (with varying success) these methods:
Standard Pritt-stick type glues sticks. I applied it to the bed then levelled the lumps and bumps off with a warm damp cloth.
Hairspray. I have only used this occasionally with limited success. Usually when I was having bad problem getting adherence with Pritt stick style glues.
Thinned UhU type (cellulose) glue. This type of glue is now actually quite hard to come by. It does seem to work. But it is an absolute **** to clean off the plate. Arguably it is too good at adherence. You can damage the finished item just getting it off the plate.
So here is how I get a 3D Extrusion to stick to the bed now.
Just yesterday I was having a catastrophe. I was printing some name-tags for children of family & friends for the Xmas tree. These are, by their nature small size quite dainty. Dainty designs and getting the resultant 3D extrusion to stick to the bed really do appear to be mutually exclusive!
I’d reached to point where the only apparent way forward was to try something else. I thought about painting the glass plate I use. But with what? And for each print?
I thought about going down the road and buying some painters masking tape (I’d read somewhere that that worked).
Then (in mad inventor mode) I thought:
“If painters tape works – why not just plain paper?”
After-all plain A4 printer paper gets plastic (aka Lazer printer toner) to stick to it, so why not PLA?
I simply sellotaped a single (cut-down) piece of copier paper over the bed.
It worked first time, and every time after that. So far I have had no bad prints using it! ( except for one where I hadn’t levelled the bed properly – i.e. my cock-up).
Here’s my trusty Ender-3 Paper’d up printing (this time) a large name label. I’ve taken another photo below showing the size name labels that were causing me such grief.
The prints, especially the bigger ones do stick really well to the paper, to the point you have to cute away the paper from the print, but if you want to get rid of the paper “base” left on the print then soak it off!
Hope it helps.
The rest of my posts on 3D printing can be found on This Link
I recently went over to using Ubuntu 20.04 from 18.04 and my new FreeCAD installation is now a snap package rather than an installation built using the traditional apt-get install route. I’ve done this for no particular reason other than that is the way thing seem to be going and frankly I just went with the flow. I wanted to get the thing working rather than fuss over how it was installed. But I ran into some Snap package font problems.
I’d used the FreeCAD snap package for a couple of small test projects and all seemed well. Then I decided I needed to make some Christmas lettering on my Trusty Creality Ender 3. To do this all I needed to do was use the ShapeString tool to get the letters from a font on my system. I’ve done this before on Ubuntu 18.04 with a traditionally installed FreeCAD package (See this post). But on Ubuntu 20.04 I hit a road block associated with the FreeCAD snap package.
One of the purposes of the snap packaging format is to limit access to system files. I assume it’s for security reasons and also so the package is not dependent upon a particular system file. This means (as well as enhanced security) that a snap package for Ubuntu should work without issue on any other flavour of Linux as well. That’s the theory anyway.
One problem with this is that Ubuntu/Linux font files are usually in either /usr/share/fonts or /usr/local/share/fonts.
So neither of these system directories are available to the FreeCAD snap package.
Consequently when you try and set up the path to the font of your choice in the ShapeSting tool you will find that the only directories that are available (the rest are greyed out) are those under your home directory. So, in essence you cannot set up the path to the font! While you can actually manually type in the path into the ShapeString tool, when you hit enter you get this:
So, how do you access fonts for the ShapeString tool? Well, this below works for me, but I’d be quite happy for anyone to show me a better way.
Basically you have to make the fonts you want to use available from within the bits of the file system that the snap package can see, i.e. anywhere under the user home directory. I’d suggest that it’s best not to copy them directly into the snap package location as you will probably be updating the package sometime and the fonts will be lost if you do that. Instead create (if you don’t have one already) a dot fonts directory (i.e. /home/<user-name>/.fonts) and then copy them in there.
cd ~ cp -r /usr/share/fonts/msttcorefonts/ ~/.fonts/
So far so good.
Now, go to the FreeCAD snap setup and go to directory:
In here make soft link to the new fonts directory
ln -s ~/.fonts fonts
Then when you come to setting up the path to the font of your choice in the ShapeString tool you can now select from anything you have copied into /home/<user-name>/.fonts via the link you have in the freecad setup.
Both of these (actually the same thing!) can be selected using the dialog box associated with setting the font which is triggered by clicking on the three dots next to the font path text box.
After doing the setup you can actually set a default font for the ShapeString tool too. So if you only ever (or mostly) use one font you can set it to that. Otherwise the font path in the ShapeString tool will be blank and need setting up everytime you use it.
Do this by first selecting Draft mode first. If you don’t do this first you won’t be able to set the path for the ShapeString default font.
Now go edit->preferences. You should see a dialog box with “Draft” as the last entry on the left. Click it.
Then select the “Text and Dimensions” tab
Then in the displayed window at the bottom set the Shapestring path to your default font using the three dot navigation tool at the end of the line.
That’s it. Now when you start the ShapeString tool it will load the default font, but you can still replace with another if you want.
I have to say I’m not entirely happy with this as a solution, but it works for me. I hope (failing finding a better solution) it works for you too. If you know a better way to deal with these snap package font problems, I’d love to know what they are.
NOTE: Evidently there is/was a similar problem with the LibreOffice snap, so these Snap package font problems are not just confined to FreeCAD. A suggestion (relating to the LibreOffice problems) was that before copying the fonts to the ~/.fonts directory you run:
sudo fc-cache -fv
This refreshes the cached fonts.
I don’t think that is necessary. Although I doubt if it will do any harm.
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 188.8.131.52 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.
Half way through 2020 Creality changed the processor board on their popular Ender 3 3D Printer. So you may not know if your Ender 3 is 32 bit or 8 bit. Here’s an ad link to the latest Ender 3 3D printer on Amazon today
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.