Skip to content

3D Printing

Introduction

This page is work in progress. It’s focused on my equipment and use cases, but might provide pointers for other setups.

Contents

Printer Types

3D printing from a hobby perspective is split up in two different technologies, intentionally not extensively described here as there’s so much information on the Web about them:

Fused Filament Fabrication (FDM) or simply Filament

Printing using melted filament that is “written” path by path and layer by layer. Overall a very slow process, but is easy to handle at least when using a filament type called PLA (Polylactic Acid), and that way suits a home or office environment without extensive measures in terms of ventilation and free zone. Can print in multiple colors more or less effectively. There are lots of different colored filament. The hotend gets very hot though so you still need to be careful.

Stereolithography (SLA) or Resin

Uses liquid resin to print layer by layer by exposing each layer with light that makes the resin harden. Due to need for cleaning and curing and dangerous chemicals this is less suited for a home or office, but on the other hand gives much more details and more even surface. Can only print in one color at a time.

Setup

I have a Creality Ender-3 V3 SE purchased early 2024. FDM was chosen to simplify use and placement, and because I’m very sensitive to chemical fumes. I’ve used it primarily for printing scale models in 1:160 (model railway N gauge) for a rural diorama that I’m working on when there’s nothing else to do, as well as tools for the printer and for my balcony garden. Of course I’ve also printed a lot of doo-dads with arguable practical purpose (e.g. movie and game figurines) except showing off 3D printing, and then mostly to myself, as others have already grown tired of it.

I chose 1:160 for the diorama as it’s small, so a lot of things fit in a tiny space, and there are also lots of ready buildings and figurines in that scale considering it’s used for model railways, so it will be a combination.

For 1:160 an FDM printer with a 0.4 mm nozzle and (usually) 0.1 layer height is on the threshold of being too coarse, but I’ve still achieved great results provided I go for bigger things like buildings. Printing people or animals at that scale simply doesn’t work or would require resin.

The SE is based on the same mechanics as the KE, where the KE shines with Klipper, higher temperatures etc. The SE and KE are in my opinion the first “just print” printers that Creality has made, and overall the SE has been easy to work with.

Clearly the future is in designing 3D printers as appliances and not as something you need to spend a lot of time on or that require a lot of knowledge. Bambu Lab is clearly leading in this area, and others need to follow. A benefit with Creality is that if I want to I can upgrade with better hotend etc and there are many printable upgrades as well.

To be able to print and monitor via the network I use a Raspberry Pi 4, that I happened to have already, running OctoPrint. OctoPrint is accessed as a web application, and I have one PC monitor dedicated to OctoPrint while printing. I tend to be by the printer when it prints the first layer anyhow to remove stray filament and check for adhesion issues.

The only upgrades I’ve made so far:

  • A PEI plate with a smooth and a textured side. I almost always use the smooth side. It works amazingly well. No more glue.
  • Installed a new hotend because I overheated the hotend by using Auto PID and Retract/Extrude (the latter fixed to 240 C) while printing with a filament that essentially burned up and destroyed the hotend PTFE tube that caused clogs as filament couldn’t pass through. The new hotend (the same type) fixed that. Don’t use Retract/Extrude when changing filament (see what to use instead below). Don’t Auto PID above the temperature you will use.
  • A SUNLU S1 Plus filament dryer, that doesn’t seem to do much of anything or takes a very long time. It has no or a very weak fan so there’s no noticeable flow of air. It also works as a spool holder as it has two rolls and a PTFE tube for the filament, so I use it that way and have an empty spool in the holder to redirect the filament to the extruder. That takes off weight from the Z gantry, and I can dry the filament while printing.
  • A pair of high speed nozzles and an extra extruder (just in case and they were inexpensive) that I haven’t used yet.

The printer still runs Marlin, so I haven’t taken the leap to Klipper, and might never do with this printer.

I get the impression I’ve had way less issues with the SE than what many others have encountered based on the many Reddit and Facebook posts, so it seems QA did their job on mine.

I do maintain and adjust the printer over time, including lubricating Y and Z on a regular basis, as well as checking that X is rolling across smoothly (or I adjust the eccentric nut).

I rarely auto-level. Due to somewhat of a design flaw Z offset needs to be set (or at least adjusted) manually, as auto-leveling can’t be trusted for that, yet it’s rather easy via the control panel of the printer, and the old paper trick.

The max speeds and accelerations have been lowered on the printer (see below), to decrease the shaking of the printer and to yield higher quality prints.

Designs

I use primarily Autodesk TinkerCAD, but also Autodesk Fusion, for making so far very basic designs, mainly tools.

My printable designs are published at Thingiverse.

Prints

I’ve printed lots of stuff, generally rather small, and sometimes silly small, like dustbins, windows, furniture etc in 1:160 (N) or 1:87 (H0), so I don’t use up that much filament, and the 6 kg of different colored SUNLU PLA+ I have now will last a long time.

Glueing and painting scale models work great. I tend to use glue intended for plastic models, unless parts are so flimsy that I need something that sticks immediately like super glue. I paint using Revell or Humbrol Enamel that covers well, but I don’t paint everything. Especially very small details like windows and doors are better off printed in the right color to avoid issues when fitting them to other parts of the scale model.

Procedures

Assuming Creality Ender-3 V3 SE running Marlin 1.0.6.

Level the bed

This is performed first time you run the printer but should be done again for every change of the physical configuration (switching hotend, nozzle, plate etc), as well as at other times when you suspect misalignment. You don’t need to do it before each print. That can actually worsen the situation due to the somewhat flaky Z offset detection.

After leveling has been performed, adjust Z offset by using the classical paper method. Z offset is set via the control panel.

Procedure:

  • Make a note of the current Z offset to check afterwards whether it was already right.
  • Increase Z offset (don’t make it more negative!) by ~2 mm. This is to warrant that the nozzle won’t hit the plate in the next step.
  • Enter Move and set Move Z to 0. It won’t go below 0 even if you try. See to that it doesn’t collide with the bed.
  • Place a sheet of paper on the bed under the nozzle.
  • Adjust Z offset down until you get some resistance when moving the paper.
  • Perform Store configuration.

Upgrade the firmware

Upgrade to 1.0.6 at Ender-3 V3 SE Software & Firmware Download – Creality 3D.

Follow the included instructions to the letter, and upgrade both the display and control board firmware.

Improve adhesion

Get a magnetic PEI (or better) plate with a smooth and non-patterned/textured surface on at least one side. Don’t fall for the novelty of a fancy pattern.

Don’t use glue or other home remedies after that, unless the filament requires it. PLA won’t.

After a print job

Let the bed cool down to at least 30 °C before you take anything off, as prints loosen easier and are not deformed, and also minimizes risk of damaging the plate.

Avoid overheating

Follow the temperature levels recommended for your filament and the stated limits of the printer.

Don’t set a temperature for Auto PID higher than you’ll use when printing. The same applies when printing a temperature tower.

Don’t use Retract/Extrude, as the temperatures are set too high (240C) and can’t be changed.

You’ll burn the PTFE tube in the hotend if you go too high. 260 is said to be the limit, but simply never go that high.

Switch filament between prints

Don’t use Retract/Extrude for switching filament (see above). Except for the risk of overheating, they also increase time due to two heating cycles.

Instead use Preheat PLA/TPU.

  • Prepare the new filament: unpack and cut at 45 degrees.
  • Wait for the nozzle to reach target temperature.
  • Hold the extruder lever.
  • Pull out the old filament.
  • Hold the extruder lever and the extruder.
  • Push the new filament all the way to the nozzle and hold the pressure until the previous filament has been fully emptied out on the plate.
  • Issue Cooldown unless you have a print that’s ready to go.
  • Stow the previous filament away with a clip and desiccant, and seal the bag.

Switch filament during print

This describes switching filament (and usually color) on a layer basis, not what you get with a Bambu Lab AMS or similar, in part because I don’t have multi-spool equipment.

G-code has a command for this called Filament Change with the code M600. The SE and most other printers support this command. You either set it by editing the generated G-code (traditional but not recommended), or in the slicer Preview select the layer where the new color should be applied by scrolling down in the layer stack and right-clicking on the scroll bar. After that it differs between slicers, so read the specific documentation for this. This can be repeated several times for other layers.

  • When the printer encounters Filament Change it will move the extruder to the front of the bed and retract the current filament so you can then easily take it out and insert a new one (don’t forget to push the extruder lever).
  • Then push the new filament down to get the remaining bit of previous filament out. What makes this a bit hard is that heating will be shut off during this phase, so be quick.
  • After this you click the knob on the display to tell the printer to continue printing a new layer with the new filament.

Printer Settings

To avoid too much shaking I’ve lowered the max speed and acceleration settings in the printer. These can also be set in the slicer, but this guarantees that whatever slicer I use there will be a set roof.

This is based on “Fine tune your Ender 3 V3 SE – eliminate stringing!”, with some changes. The default settings in firmware version 1.0.6 are in parentheses.

E stands for Extruder. 1000 for E acceleration seems too high, but at least it’s not 4000.

The reason I set bed temperature to 0 for preheat is that I use it for changing filament and there’s no point heating the bed for that.

Max Speeds

  • X: 300 (500)
  • Y: 300 (500)
  • Z: 10 (5)
  • E: 50 (30)

Max Accelerations

  • X: 1000 (4000)
  • Y: 1000 (4000)
  • Z: 100 (4000)
  • E: 1000 (4000)

Steps

  • X: 80
  • Y: 80
  • Z: 400
  • E: 416.6 (424.9) (this is highly printer-specific, so you need to make your own Estep calibration to find out suitable setting)

Preheat PLA Settings

  • Nozzle: 200 (180)
  • Bed: 0 (60)
  • Fan: 0

Preheat TPU Settings

  • Nozzle: 230 (230)
  • Bed: 0 (70)
  • Fan: 0

Slicer Settings

PrusaSlicer is my go-to slicer, as it’s feature-rich, reliable and has a no-nonsense UI.

There’s a third-party profile for the Ender-3 V3 SE that I use.

Creality Print has been improved a lot now being on OrcaSlicer and has a profile for the SE (possibly better optimized), so I intend to compare.

Some of the settings I tend to change in PrusaSlicer (Expert mode):

General changes

  • Print Settings / Infill / Infill / Fill density: 15%
  • Printer / Extruder 1 / Minimum travel after retraction: 0.5
  • Printers / Custom G-code / Start G-code:
    • M413 S0 ;Power loss resume off
    • M420 S1 ;Use saved bed leveling data (supposedly this is not needed for the SE, but I send it anyway)

Optional changes

Depending on specific needs.

Skirt

I prefer these settings for scale models to minimize risk of stray filament covering any part of the actual print area.

  • Print Settings / Skirt and brim / Skirt / Loops (minimum): 3
  • Print Settings / Skirt and brim / Skirt / Distance from brim/object: 10
  • Print Settings / Skirt and brim / Skirt / Skirt height: 1

Smooth surfaces

  • Print Settings / Infill / Ironing / Enable ironing: on

Supports

Optimally try to place the object so that no or less supports are needed. E.g. can some objects be angled 45 degrees to avoid most supports. In that case a brim and/or support enforcers might be needed so the print doesn’t keel over. Some objects are better printed with Grid supports, especially when the underside is at different levels. I never use a Raft.

  • Print Settings / Support material / Support material / Generate support material: on
  • Print Settings / Support material / Options for support material and raft / Style: Organic (usually)
  • Print Settings / Support material / Options for support material and raft / Support on build plate only: on
  • Print Settings / Support material / Organic supports / Tip Diameter: 0.4

Separate prints

This is a great way to print multiple objects at the same time while ensuring that as few objects as possible are affected by failures.

Note that objects need to be spaced out more to avoid the extruder hitting them while printing other objects.

Even when objects are spaced out enough I’ve found that the X gantry can still collide with objects that are higher than ~5 cm, so be careful.

  • Print Settings / Output options / Complete individual objects: on

Perimeters

This tends to result in the best detailing, so I’m considering it as the default. The recommendation most give is to have it off though.

  • Print Settings / Layers and perimeters / Advanced / External perimeters first: on

Seam

This setting is practical for round objects without clear corners that have an obvious forward (and detailed) face that must not be affected. If needed orient the object appropriately. Otherwise I use Aligned.

  • Print Settings / Layers and perimeters / Advanced / Seam position: Rear

Stringing

Based on “What Is Combing – Within Infill Equivalent of Cura in PrusaSlicer?”. This is still being investigated, and results don’t seem to be better.

  • Print Settings / Layers and perimeters / Quality (slower slicing) / Avoid crossing perimeters: on
  • Print Settings / Infill / Advanced / Only retract when crossing perimeters: on

Code Changes

I still use Marlin, but a variant based on CrealityOfficial – Ender-3V3-SE that has host action commands and linear advance enabled. I used Visual Studio Code and PlatformIO to make the changes and then installed it by powering on with the generated .bin file on the SD Card.

These are the changes I’ve made so far:

  • Version.h:
    Changed SHORT_BUILD_VERSION so I could check my code was being used
  • Configuration_adv.h (uncomment):
    #define LIN_ADVANCE
    #define HOST_ACTION_COMMANDS