Kossel Build Manuals

Top Frame:

IMG_0628 IMG_0629 IMG_0630 IMG_0631 IMG_0632 IMG_0635

Bottom Frame:

IMG_0641 IMG_0643 IMG_0645 IMG_0644 IMG_0646IMG_064920140129012553 20140129012537

Carriages

IMG_0617 IMG_0618 IMG_0616 IMG_0652 IMG_0651 IMG_0653 IMG_0654 IMG_065520140129012707 20140129012731

Update Carriages:

IMG_0724 IMG_0725 IMG_0726 IMG_0727 IMG_0729 IMG_0730 IMG_0742 IMG_0743 IMG_0738 IMG_0739

Make sure the carbon tubes are in the same length after you insert the rod ends

IMG_0662

Extruder

20140129012109IMG_0680IMG_0681IMG_0676  IMG_0679IMG_0678IMG_0677 IMG_0682IMG_0684IMG_0683IMG_0685

 

Print Bed

20140129012334201401290124022014012901275720140129012647 

3 Top Endstops

20140129014031

 

Electronics

First here are the schematics so when you route the cables you can can see where you need to go. If you need a bigger version for more detail, you can get it here.
You can plug in the motors, the hotend temperature sensor and connect the heater and fan wires. Orientation for the motors and fan is important, not for the rest.

Wiring_3Dprinter_000

The micro switches all have 3 connections. They are labelled COM, NO and NC. Solder 2 wires to the COM and NO connections (the 2 outer ones) of the endstops. Route the cables through the sides of the OpenBeam plug them into the correct position. It doesn’t matter which way you plug them in as long as they are in the right spot.

Wiring_3Dprinter_001

Do the same with the probe switch but now use COM and NC.

Overall

20140129013831

 

Here a list of the most common variables that you may need to edit in configuration.h

#define BAUDRATE 250000
Sets the communication speed to the Arduino. 250000 is good but if you have troubles lower it to115200.

#define DELTA
Tells the firmware we’re dealing with a Delta and not a Cartesian model.

#define DELTA_SEGMENTS_PER_SECOND
You can’t make a true circle, all circles are actually segments of small straight lines. This sets how many of these segments can be calculted. Higher is better but an Arduino doesn’t have the processing power to calculate it all so 200 is a good balance.

#define DELTA_DIAGONAL_ROD
Indicates how long the arms are from hole to hole . In my case, 214 mm.

 

#define DELTA_RADIUS
Displays the curvature correction of the print head. Too large leads to cupping, too small makes the printer think that the printing surface is a mountain peak. This value is made up of DELTA_SMOOTH_ROD_OFFSET , DELTA_EFFECTOR_OFFSET and DELTA_CARRIAGE_OFFSET.
If you want adjust the DELTA_RADIUS then alter DELTA_SMOOTH_ROD_OFFSET. The autoleveler calculates this more accurately.

#define TEMP_SENSOR_1
Sets what type of sensor is in the hot-end. Choose the one that comes with your hotend . Most thermistors will work with option 1. The rest can be set to 0 since we have only one sensor.

#define TEMP_HYSTERESIS
Sets how much the measured temperature value may deviate from the reference value. Default is 3.

#define HEATER_MAXTEMP
Sets the maximum temperature for the hot end. Be careful going over  245 degrees Celsius because
above this the Teflon liner will smoke and it emits toxic fumes.

#define EXTRUDE_MINTEMP
Sets the minimum hotend temperature before the extruder may start supplying plastic. The extruder will not work below this temperature as a safety funtion. You can disable this for testing but be careful.

#define ENDSTOPPULLUPS
Sets the internal pull-up resistor so the firmware can read the switch.

Const bool X_MIN_ENDSTOP_INVERTING
Sets the normal state of a switch. So if it should be reported as triggered if it’s pressed or when it’s not pressed.

#define X_HOME_DIR 1
Sets the location of the endstop. 1 is at the top, -1 at the bottom

#define X_MAX_POS 90
Sets the range of your buildplatform, in this case from 90 to -90 which is 180mm of movement. The printbed is off course 170 mm but this little overhead is needed to be able to print ‘over the edge’ and to reach the probe retract position if this is not a separate raised point.

#define Z_MIN_POS
This tells the printer it can go 30mm under the printbed. This is also for the retract position if this is not a separate raised point.

#define MANUAL_X_HOME_POS
Sets the total height of the printer. Just measure it from the tip of the hotend to the printbed surface. The autolevel feature will adjust this setting somewhat to make the surface flat for the firmware. Be aware, it will not move to a value higher than this so if the autolevel needs to be lower than this it will not work. Better to measure from the tip of the retracted probepoint to the surface and add an extra cm.

#define AUTOLEVEL_GRID
Sets the distance between the measuring points during autoleveling.

#define HOMING_FEEDRATE
Sets how fast the printer returns to the home position , in mm / min.

#define Z_PROBE_OFFSET
This is the setting that you will change the most. This sets how far the tip of the probe is below the tip of the hotend when in it’s extended position.

#define DEFAULT_AXIS_STEPS_PER_UNIT
Sets how many steps the stepper motor must make to move the platform 1 mm. On http://calculator.josefprusa.cz/ # MotorStuffSPMB you can calculate how much it must be for your printer . The suggested motors with 1.8 degrees per step , control with 1/16 microstepping , 16 teeth on the pulley and GT2 belt will give you 100 steps. If you have 20 teeth, then it’s 80 steps etc. You may need to adjust this value so your printer will print the correct size . The extruder is more difficult to calculate but it’s easy to test. In PrintRun give the command to extrude. For example 10mm. Then just measure how much comes out . Be very precise!

#define DEFAULT_MAX_FEEDRATE
Sets the maximum speed at which the plastic can be extruded.

#define DEFAULT_MAX_ACCELERATION
Sets how fast movements may be performed in mm/sec.

#define DEFAULT_RETRACT_ACCELERATION
Sets how fast the filament may be retracted to prevent stringing.

 

Calibration

Open Repetier- Host and connect to the printer.

First you have to select the right shape of printing area.

Go to Config – Printer settings – Printer Shape – Printer Type: Select Rostock Printer (circular printer shape)

Set Home X: Max Home Y: Max Home Z: Max

Printable Radius: 80-85mm

Printable Height: 230- 250mm

 

*******Be ready to power off or press Reset button on the electronic              board when anything goes wrong*****

 Test “MAX” (All the carriages should go up to the Max points)

First home the printer using the G28 command or go to manual control and click Home All.

Problem: If the motors didn’t home properly such as the motors keep running even through the carriages hit the top Endstops.

Solution: why this’s happening? because x-motor should be corresponded to x-endstop not y-endstop or z-endstop. So make sure you have a right relationship between each motor and corresponded endstop: x-motor to x-endstop, y-motor to y-endstop and z-motor to z-endstop. How do I do that?? TEST IT MAN!

Test “MIN”

Now make it go down by giving the G1 X0 Y0 Z10 command.

Problem: WHY My Z-AXIS is moving so slow???

Solution: You probably don’t know where to set the Z-Axis Feed Rate to make the Z-AXIS moves faster. Go to Congfi – Printer Settings – Printer – Z-Axis Feed Rate change to 2000 mm/min

G1 X0 Y0 Z10 should position the tip of the hotend about 1cm from the bed. Gently move the head further down by decreasing the Z value. So give go to Z5 (5mm from bed) to Z1 (1mm). Now be careful. Your hanging very close to the bed. Put a piece of normal paper under the tip of the hotend. Gently bring it down until in just touches the paper. You should be able to still move the paper and lightly feel some resistance from the hotend. If you can’t move the paper you’ve gone to far. Increase the number and try again.
If you’ve gone to Z0 and the tip is still to far from the paper then you need to increase the #define MANUAL_Z_HOME_POS value in configuration.h, re-upload the firmware and try again.

You can not use Repetier-Host and the Arduino program at the same time. So if your connected to your printer with Repetier-Host and want to make an adjustment then first disconnect before you start an upload. After the upload is done, reconnect in Repetier-Host.

So now you’re barely above the surface at Z0 in the center. Great! But when you would go to another location you wil probably float way above the surface or try to bury through it. Here’s where the auto-level comes in.

First give the G28 command to home the printer. The command to do an auto-level is G29. There is one initial catch. When you issue a G29, it will first go to a position near the back leg and then moves sideways. This action is to deploy the probe (the Allen key on the platform) by gently pushing the angled part of the Allen key against the belt until it clicks into place. See a video of this process here:

http://www.youtube.com/watch?feature=player_embedded&v=1eNz1l56H5E

 

You’re Allen key is probably to short to reach that so you need to lengthen it. I used a piece of heatshrink to make it longer. If you do a G29 and your probe is not correctly deployed it will keep going down and slam into the bed. So if it doesn’t click into the position and the head starts to go down, cut the power immediately. Make it so that it will click into position every time you run it.
If this process is going well then let it go down and probe the surface. It will go to various positions and each time lower the tip until it touches the surface and triggers the switch. At the end of that it will move up and go to a position in the far left corner and lower itself again. This is the point where it tries to retract the tip again. You will want to place a screw there or print something like this to make it retract automatically.
If for some reason this position is not OK for you then you can change it in the marlin_main.cpp file. Find void retract_z_probe() and just below that line there are these lines:

destination[X_AXIS] = -55;
destination[Y_AXIS] = 63;
destination[Z_AXIS] = 30;

These are the coordinates where it should go to for retracting the probe. If you need it to go lower or higher than change destination[Z_AXIS] = current_position[Z_AXIS] – 20 to a higher or lower number. After your done, re-upload the firmware and test it until you’re happy.

Now the last part. As you can see, there is a distance between the tip of the hotend and the tip of the deployed probe. This distance should be as accurate as possible.
A simple way to determine it is doing the following. First start with an actual measurement. Open Configuration.h in the Arduino program and locate the line: #define Z_PROBE_OFFSET {0, 16, -2.45, 0}
There are 4 sets of numers in there. The first (0 in the example) is the X offset, the second is the Y offset, the third is the Z offset and the last is for the extruder and should always be 0. What does this mean. You need to tell the firmware how far the tip of the deployed probe is removed from the tip of the hotend. In most cases the X offset will be 0 meaning that the probe is directly behind the hotend. The Y value will probably be OK but check it anyway. This should be how far behind the tip is from the hotend center. Off course it’s important but not crucial to know this to 1/10th of a mm. The third however is very important. This is the height difference (Z offset) between the probe and the hotend.

To easiest way to get this accurate is to do the following procedure:

  • G28 to home the printer
  • G29 to auto-level
  • G1 X0 Y0 Z5 to go to center and 5mm above the bed
  • Place a piece of paper under the hotend
  • Gently lower the hotend by decreasing the Z value in steps to 0 (G1 X0 Y0 Z0)

If the hotend hits the bed before it reaches 0 then increase the value in the firmware by the height you have left and try again.
If the hotend isn’t low enough at Z0 then decrease the number. Repeat this until you can just move the paper and feel a slight drag from the hotend.

When you’re done with this than the hard part is over! This may sound like a lot of work but it’s really quite easy and way less then traditional calibrating.

Now your ready to actually print something!

 

You may also like...

  • Tyler Duke

    Pretty good guide. Could you go into some detail about how the hot end and the effector are combined?