Projects:3D Printer

From 57North Hacklab

3D Printer
Description Kossel Mini 3D Printer
People User:Nordin
Theme Infrastructure
Website http://octopi.local or
Status Finished

About the Space 3D Printer

For the raw specs, see the original Ebay Item (webpage snapshot). It is a RepRap kit Kossel Mini.

It can print items up to 110mm in depth, 160mm in width and 200mm in height. The bed is marked with the unprintable zones indicated in gold checkered markings.

OctoPi and the OctoPrint Interface

The space 3D printer is connected via USB serial to a Raspberry Pi V3 running the Octoprint print service, hosted on a custom Raspian build called Octopi. Using this, no PC is needed to run the printer as all features can be accessed via a webpage user interface.

Kossel Mini, June 2019

How to 3D print an STL

The Octoprint UI requires a user login. The shared account to access the printer is username:printeruser, password: printeruser.

STLs can be uploaded to the device and stored for reprinting. Users should upload their files to their own user folder if printing for their own projects.

Once uploaded, users will need to convert their STL files into g-coded (*.gco) files. This conversion is called 'slicing' and a slicing engine has been added to the web interface using a generalised slicer profile (57N_Default).

Preliminary Checks

  1. Check the arms are tight and not loose,
  2. ensure there is hairspray on the bed to aid the initial layer to stick to it otherwise
    1. clean the bed with a degreaser like isopropyl alcohol, ensure to wipe it clean afterwards
    2. spray 3 coats of hold hairspray onto the bed to help the print stick.

Making Your Model

We advise OpenSCAD for the model design, ensure you have enough faces on any circular elements, and export as an stl.

Loading to OctoPrint

Using OctoPrint

  1. look at the files section on the left, If you Don't have a user Directory create one and put your models in there
    1. Upload your stl into the directory
  2. You should see the model on the right that means you are in the slicer
    1. Turn the model to the orientation you would want it to print using the 3d View.
    2. If the model is not flat on the bed you should Select Advanced->Adhesion->"Raft" at the bottom, otherwise select "Brim" for best bed adhesion.
    3. Now click "Slice it!" button at the bottom to create the gco file.
  3. In the files section you should see a new gco file
    1. click on the Folder icon beside it to load the slice.
    2. in the GCode Viewer on the right, check through the slices.
      1. consider whether the think looks reasonable
      2. or the the shell of the model is thick enough for what you want.
  4. If you are happy Click the print button and see how it goes.

If you have problems look to troubleshooting below, and add any issues you have.

Replacing the 3D Filament

To swap-out the current 3D Filament:

  1. Using the webgui, heat up the hot-head only to the standard temperature setting
  2. Measure the current Bowden tube length and set the extrude/retract distance to approx the same length
  3. Using the webgui, Click 'Retract'
  4. Reduce the extrude/retract distance back to a short length (e.g. 5mm) and continue retracting until the filament falls out the entry-side of the extruder
  5. Replace reel and line up new filament
  6. Run the new filament through the extruder manually or via small stepper increments
  7. Set the extrude/retract distance to the tube length and click 'Extrude'
  8. Reduce the extrude/retract distance and extract the filament until melted plastic can be seen exiting from the hot-end
  9. Continue extracting until the exiting material 100% matches the new material type.
  10. Turn off the hot-head.

Things to note

The hot-head should be on through-out the entire process to reduce the chances of a clogged head. If the new filament does not emerge out of the head, pause to assess - the filament may have 'rucked-up' and cooled early just before the heatbreak (the area where the internal Bowden tube meets the neck of the lower heat block). A temporary heat increase of 10-15 deg may provide enough excess heat to remelt and clear the clogged part, however care must be taken to not leave the heat high for too long nor to over-apply extrusion pressure, which will cause the Bowden tube to slip it's fixings. Should the head remain clogged, contact the project owner for assistance.

Manual bed levelling

For manual levelling to be possible, the max Z travel distance as set in the firmware must allow for a level 5-8mm depth below the actual bed. This allows the user to adjust inside wide margins without recompiling firmware. The z-offset and boundry-matching features will ensure the head will never go too deep towards the bed (outside of manual levelling o/c). Swapping-out or refitting the hot-head may shrink the effective Max Z, so if the head refuses to touch the bed even with offset set high and boundary matching off, the Max Z setting probably needs increasing in the firmware.

Note: towerX, towerY, towerZ refer to towers as labelled on the printer. worldX, worldY and worldZ (or just X, Y, Z) refer to cartesian world coordinates.

To Manually level (

  1. Home the printer and turn off boundry matching (G1 s1)
  2. Type M503 to view settings. Note: When called, M501 will also view settings, and also load settings from EEPROM and overwrite any recently unsaved changes in volatile memory
  3. Note the current Z offset (e.g. -4.00)
  4. Offset Zmax (MANUAL_Z_HOME_POS in the firmware)
    1. Home the printer
    2. Move the head to the bed using the 'Centre (Z5)', set the step increments to 1, then 0.1 with careful Z-down movements. Aim to reach a height that traps a sheet of paper then raise 0.1. The paper can still move, just not freely (i.e. it leaves an indent in the paper).
    3. M114 #to get Z (e.g. -0.30)
    4. M501 #to get current offset Z, from line starting M206
    5. M206 Z[the current value less/more the offset change from above)) #to set new Z offset
    6. M114 to check Z is now 0.00
    7. M500 #to save
  5. Set Rod length and delta radius (skip if unchanged)
    1. M665 R111.5 L226.0
    2. M500 #to save
  6. Find the towerX offset
    1. click 'TowerX, Z5' and move Z down to paper-pinch height eg. +0.70 Note: we now add/subtract this as a tower offset
    2. m114 #to get z
    3. m666 X[value from last step inc sign] #e.g. M666 X+0.70
    4. Home the head
  7. Find the y tower offset
    1. click 'towerY, Z5' and move Z down to paper-pinch height. Note: we now add/subtract this as an offset on top of the last
    2. M666 X+0.70 y+0.20
    3. Home the head
  8. Repeat the recalibration the X adn then y towers (since a new towerY will have changed towerY)
  9. Finally, find the z tower offset
    1. click 'TowerZ, Z5' and move Z down to paper-pinch height. Note: we now add/subtract this as an offset
    2. m666 x[last x offset] y[last y offset] z+0.50
    3. home and repeat the towerY calibration (it will have changed)
  10. Recheck all towers.
  11. M500 #to save to eeprom

By this stage, all 3 tower Z's should be set, however the center z is now unset as a result of the adjustments. To make the center z match the edge Z of the X, Y and Z towers, we need to adjust the concave/convex shape of the bed geometry modelled by the firmware.

  1. Adjust bed geometry:
    1. M501 #to get current value (look for M665 R[value]) e.g. M665 R110.0
    2. M665 R105.0 #decrease value to push the center down towards the bed (i.e. make bed geometry more relatively convex)
    3. M665 R115.0 #increase value to raise the center away from the bed (i.e. make bed geometry more relatively concave)
  2. Repeat center Z offset recalibration
  3. M500 #to save to eeprom
  4. Turn on boundry matching (G1 s0)

Top tips

When printing small items

For prints with quick layer times (from small areas or thin walls), a slower print time allows your extruded filament to cool and set more before the head returns, preventing the hot head from 'dragging' over weak areas of the print, marking or detaching them. You are recommended to either:

  1. Print a second part away from the first print to increase travel time; or
  2. Slow down the print speed as detailed below

When printing any item that detaches from the buildplate

For a good print, a firm wide-contact footprint on the build plate is needed. To better achieve this for parts that have a light contact area (such as a raft), it is recommended to slow down the feed rate and flow rate using either the setting in the slicer engine or the live controls tab on the Octopi UI. For the latter, drop both the sliders to their lowest level and click the buttons below the sliders to set the new values. You will immediately notice a slowdown in printing. Speed this up again after the first few layers.

Common Problems

State: Offline (Error: MINTEMP triggered, system stopped! Heater_ID: bed - Printer halted. kill() called!)

Cause: Due to a local temperature change, an element (bed in this case) has not increased in temperature by the expected minimum degrees for a given amount of heating. The safety's assume there is a thermal sensing failure and shuts down heating to prevent thermal runaway.

Solution: Warm up the bed with the heatgun then press the connect button on the web interface and it should go away