From Lancaster And Morecambe Makers
Jump to: navigation, search

These are some instructions on how to use Tom's 3D printer (called 'ditto'). They are based on notes I took while Tom was showing me how to use the printer. I'm still in the process of writing this page at the moment. Feel free to correct any mistakes when I've finished. --Highfellow (talk) 03:14, 15 February 2016 (UTC)

Please note that these instructions are not meant to replace an induction session by the owner of the printer (Tom). They are just there to save you making your own notes, and to give some additional information. In other words, please ask Tom to show you how to use the printer before you use it yourself.


To print a model, you'll need to go through the following steps:

  • Create the model in a 3D design program such as FreeCAD, Blender, or OpenSCAD. Alternatively, download a model from somewhere online, like Thingiverse. You can also print from 2D bitmaps such as JPEGS, BMPs, or PNGs. This part of the process is up to you - you should be able to find help elsewhere online.
  • Export it to a file format recognised by Cura, which is the program which renders the model file into a form the printer can understand, known as G-Code.
  • Import the file to Cura and render it into a G-Code file.
  • Start up the printer and change filament if necessary.
  • Upload the G-Code file to the printer through the web interface.
  • Start the print and wait for it to finish.
  • Remove the print from the print bed and clean the bed.

These steps are described below. First though, you'll probably also need to install and configure Cura.

Setting up Cura

Cura is the program which renders your 3D model file into a series of detailed instructions to send to the printer, written in a language called G-Code.

To set up Cura on your laptop, you'll first need to install it from their website. If you have a debian based system like Debian, Ubuntu, or Linux Mint, you'll get a .deb package which you can install as follows (assuming you've downloaded the Cura package to <cura-package>.deb):

sudo dpkg -i <cura-package>.deb
sudo apt-get -f install

Next, you need to configure Cura to work with Tom's printer.

First, start up Cura. If you're running it for the first time, the 'Add new machine' dialog should open automatically; otherwise you'll need to go to the menu item [ Machine > Add new machine... ]. Click 'Next' to start the wizard, then select 'Other...' and click 'Next' and then select 'Custom...' and click 'Next'. If the 'Other' or 'Custom' radio buttons go off the end of your screen (which happened on my laptop), you can select them by clicking the button at the top of the list and pressing the up arrow key once.

Now you should be at a dialog entitled 'Custom RepRap information'. The values you need to enter are set out in the table below.

Field name Value Notes
Machine Name Ditto A name to refer to this machine by.
Machine Width X (mm) 200 Width of the printing bed (side to side).
Machine Depth Y (mm) 200 Depth of the printing bed (front to back).
Machine Height Z (mm) 160 Height of the printing bed (top to bottom).
Nozzle size (mm) 0.4 Diameter of the extruder nozzle on the printer.
Heated Bed Yes Whether the printing bed is heated
Bed center is at 0,0,0 (Rostock) No How the centre of the bed is defined in the printers internal coordinates.

Now click 'Finish'. You should now have a new entry 'Ditto' in the machine menu. Select this to use this printer.

Using Cura

Slicing settings

The next thing you need to set up are the settings which govern how the model file is rendered ('sliced'). These are settings which you might want to change from model to model, as compared with the ones above which are always the same for a given printer. You can set them using the tabs on the left hand side of the main Cura window. The only tabs we need to change for now are the Basic tab and the Start/End G-Code.

First, make sure the Basic tab is selected and fill in the fields based on the values in the following table:

Field Name Recommended Value Notes
Layer Height (mm) 0.2 The height of each layer in the print. From 0.2 - 0.1 mm
Shell Thickness (mm) 0.8 The thickness of the solid outer shell of the print. Must be a multiple of nozzle size.
Enable Retraction Yes Retract the filament when not printing.
Bottom/Top thickness (mm) 0.6 The thickness of the solid upper and lower layers. Must be a multiple of the layer height.
Fill Density (%) 20 The percentage density of the honeycombed infill inside the print. Anywhere from 5 to 40 percent is OK, but 10 to 20 is best for most models.
Print Speed (mm/s) 30 The speed at which the print head travels. This affects the quality of the print. 50 is the maximum, but reduce down towards 20 for a fine print.
Printing Temperature (C) 195 195 Degrees is right for PLA filament, which is the only filament suitable for this printer.
Bed Temperature (C) 70 70 Degrees for PLA filament.
Support Type - You can choose to create supports for overhanging parts of the model when rendering.
Platform adhesion type - You can choose to use some extra material to help the model stick to the bed.
Filament Diameter (mm) 2.85 You should really measure this on the filament you're using in a few places using calipers and average the results.
Flow (%) 100 You can change this to alter the amount of material extruded.
Nozzle Size (mm) 0.4 This is the size of the extruder nozzle.

Next, go to the 'Start/End G-Code' tab and select 'start.gcode'. Delete what is in the box at the bottom and replace it with the following:

;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
;M109 S{print_temperature} ;Uncomment to add your own temperature line
G21        ;metric values
G90        ;absolute positioning
M82        ;set extruder to absolute mode
M107       ;start with the fan off
G28 X0 Y0  ;move X/Y to min endstops
G28 Z0     ;move Z to min endstops
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
G92 E0                  ;zero the extruded length
G1 F50 E20              ;extrude 3mm of feed stock
G92 E0                  ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
M117 Printing...

Then, replace 'end.gcode' with this:

M104 S0
M140 S0                     ;heated bed heater off (if you have it)
G91                                    ;relative positioning
G1 E-1 F300                            ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
G28 X0 Y0                              ;move X/Y to min endstops, so the head is out of the way
M84                         ;steppers off
G90                         ;absolute positioning

Finally, save your new slicing profile somewhere safe, by choosing the menu item [ File > Save Profile... ]. Next time you start Cura, you'll be able to load these settings again using [ File > Open Profile... ].

File Formats

This section is just to help you understand the difference between the different file formats used in 3D printing.

The process of designing and printing a 3D model goes something like this:

  • Create the model in a 3D design package. As you go along you'll be saving the model in the program's native format.
  • Save it to a 'mesh format' for export.
  • Open the mesh file in Cura and slice it.
  • Export from Cura to a G-Code file.
  • Import the G-Code into the printer control program (Octoprint).
  • Print the object.

There are 3 different file formats here, with different purposes, which are explained in this table.

Format type Examples Notes
Native .blend (Blender), .fcstd (FreeCAD), .123d (Autodesk 123D) Native files contain all the information a program needs to recreate the working state of the the project you are working on. This can include a lot of information not needed for printing, such as textures. Also, the information is stored in a form which reflects the way the model was built up inside the program. For example a dumbbell object might be stored as the coordinates of a cylinder with spheres on either end.
Mesh .stl, .obj, .amf Mesh files contain only the detailed geometry of the surfaces that make up the shapes in the model, stored as the coordinates of a set of polygons (usually triangles). The format is simpler to interpret by another program, because all it has to do is place triangles into a mesh, but most of the information on how to work with the object in the original program is lost. For example it would be difficult to make the weights of the dumbbell smaller while keeping the bar the same length.
Numerical control G-Code In a numerical control language file (G-Code is the most common), the original model is broken down still further into a (long) series of instructions telling the printer exactly what to do at the level of 'Set the head travel speed to 50mm/sec. Move 7mm along the X axis and 3mm along the Y axis while feeding filament at 6mm/sec. Stop feeding filament. Now move 0.2mm along the Z axis.' and so on. This keeps the printer control software as simple as possible - it just has to know how to follow a series of very primitive instructions in this form.

Slicing a model

Slicing is the process of converting a mesh file imported into Cura into a series of G-Code instructions to send to the printer.

To slice your model, you'll first need to export it from the original program into a mesh format which Cura can read. Or else find a model somewhere online, like Thingiverse, in a suitable format. The mesh formats which Cura can import are STL, OBJ, DAE, and AMF. STL seems to be the one most commonly used. If you're using STL, make sure you specify millimetres as the unit system for the output file - STL just contains the geometry with no information on the unit system used. Alternatively, AMF may be useful if you're working with non-standard units (e.g. inches), as information on the unit system is embedded in the file.

Next, either drag and drop the exported mesh file onto Cura's right hand panel (with the blue background), or use the [ File > Load model file... ] menu item to select a file to import. Your model should appear on the picture of a printer bed in the right hand panel. If you wait a short while, the information in the top left of the panel will update to show how long the model will take to print and the length and weight of filament used.

From here, you have a few options:

  • Move the model round on the print bed with the mouse. Left button to move the model, middle button to scale the view, or right button to rotate the view.
  • Alter the slicing parameters in the left hand panel. E.g. by increasing the fill density or lowering the print speed. Each time you change something, the information in the top left will be re-calculated.
  • Use the tools in the bottom left to do simple transformations on the model geometry - scaling, rotation and mirroring.
  • Click the view mode icon in the top right - this lets you look at the model in different ways, so you can check the slicing will be okay before printing it.

Finally, once you're happy with the slicing, you can export the model to G-Code using the Save icon in the right hand panel (middle of the icons in the top left), or by choosing [ File > Save GCode...].

Setting up the printer

The rest of this will be written up next time I'm in the Space.

Printing a model