Monday, October 14, 2013

3DR “Simple” Delta Printer Firmware Settings

I’m going to take a brief pause from describing the design and construction of my new Delta printer. I have more I need to write up about my printer. Today, however, I’d like to focus on what values you’ll need to change in Configurtion.h for the Marlin firmware designed for a Delta printer.

It started yesterday when I managed to download the delta version of Marlin into my Printrboard, so I was able to test moving of the effector (the platform in the center). I don’t have a hotend of extruder installed yet, but I really wanted to see it moving. At first things didn’t go well. As it turned out, all my problems were lack of knowledge, and once I figured out what I’ve described below, it worked perfectly.

Setting up Repetier

My first step was to setup Repetier. This is actually very simple once you know what to set, but I stumbled across the right settings through trial-and-error:

Printer Settings

Here are the important settings:

  • Printer Type: Repetier uses Rostock as the printer type. This will turn your preview area into a cylinder
  • Home X and Y: Set both to 0, since the hot end will be above the center of the bed when homed (I had them set to Max at first, and only got motion in one direction)
  • Home Z: Set to Max, as the end stops are at the top of the printer
  • Printable Radius: The 3DR is designed for a 170mm diameter print bed, so I set the radius to half that, or 85mm. This may be a little optimistic, and I’ll reduce this once I find out the useable radius

Using Microswitch Endstops

RichRap modified the Marlin software for his 3DR, which uses Hall-effect sensors as end stops. I had to make two changes from his settings in order to get them to work correctly with the microswitches from the Printrbot Simple donor:

const bool X_ENDSTOPS_INVERTING = false;
const bool Y_ENDSTOPS_INVERTING = false;
const bool Z_ENDSTOPS_INVERTING = false;

These need to be false, so the end stops are triggered when you push on the switch. That was pretty clear. However, the next change wasn’t clear to me at first:

#define ENDSTOPPULLUPS

RichRap had this line commented out (which means he had // at the start of the line). So here’s what happened before I removed the // from the start of the line. When I clicked the home button X (so it would only move one stepper motor), the carriage moved up and hit the stop, and then the motor would keep pushing it for a few seconds before it would finally back off. Once I set this value, everything worked perfectly. It appears the end stop would work after several seconds without the pull-ups.

Delta Measurements

There are a set of values you’ll need to enter in order for your effector to move correctly. These values are all based on the geometry of your printer. The only documentation I could find were comments in the Marlin source code. This blog post is to document what I figured out so others won’t have to do it the hard way.

Diagonal Rod

The first is the length of one diagonal rod, measured from the screw hole to screw hole. I made this 200mm on my printer:

#define DELTA_DIAGONAL_ROD 200.0

Effector Offset

This is the distance from the center of the effector (which holds the hot end) to a line that goes through the two holes on one side. In the picture below, my first effector design has a value of 22.87mm (marked as dY), represented by the green almost horizontal line.

#define DELTA_EFFECTOR_OFFSET 22.87 // mm

Effector Offset 2

Smooth Rod Offset

This is the offset from the smooth rods to a plane that intersects the center (which needs to be parallel to the two smooth rods on either side of a tower). This plane is shown in the picture below with a green outline, and the distance is labeled Center Dist, and has a value of 133.54.

#define DELTA_SMOOTH_ROD_OFFSET 133.54 // mm

Smooth Rod Offset 2

Carriage Offset

This is the distance from the outside of the printer towards the center between the smooth rods and the rod ends. In the picture below, it’s the almost horizontal green line (labeled dY) that extends from the center of the smooth rod (not shown) to the center of the screw hole used to attach the diagonal rod to the carriage.

#define DELTA_CARRIAGE_OFFSET 16.5 // mm

Carriage Offset 2

And the Results

Most printers are not perfectly tuned, so either print the parts a little larger or a little smaller. That means you’ll need to adjust the DELTA_SMOOTH_ROD_OFFSET value up or down a little in order to compensate. When this value is not quite correct, you’ll find that the nozzle moves either up or down between the outside of the print bed and the center.

First adjust the nozzle to be the just above the print surface at the towers. Then if you find the nozzle has moved higher (farther from the print bed) when it’s at the center, increase DELTA_SMOOTH_ROD_OFFSET a little and try again. Likewise, if it pushes into the print bed, decrease the value a little and try again. I found I had to increase my number by about 1 mm to keep the nozzle the same distance between the outside and the center.

Here is a nice blog post: Calibrating a Delta 3D Printer.

6 comments:

  1. Very nice john, now all you need is to print out a few test pieces, a circle, a square maybe a yoda...lol

    ~ProfessorBean

    ReplyDelete
  2. Thank you John.Now is everything quite clear.

    ReplyDelete
  3. Great work John and I'm thinking your 3DR 'Simple' Delta is going to be my first build. But as with everything I do, and it would seem you too, I see changes as I examine things. One thing which struck me was ~$150 cost for the 6 rods and bearing for the carriages and the fact that half the 500mm distance isn't even used. With that, have you or anyone considered attaching a Dovetail rail guide to the extrusions and a single dovetail linear bearing slide to mount the carriages to instead of using the 6 rods? Something along the lines of http://turnomat.com/quality-products/dovetail-housing-assembly/

    because they could be attached to the extrusions directly their lengths would only need to be around 200mm given the ~170mm max vertical print height. I have sent them email asking for pricing and design insights for such use.

    Do you have any thoughts on this?

    ReplyDelete
    Replies
    1. Have you looked at the Kosel Mini http://reprap.org/wiki/Kossel. It uses linear rails bolted to the extrusions instead of smooth rods. I have no idea what they would cost. To be honest, I started out with the intention of building a 3DR, and one thing lead to another, but I chose to stay with the smooth rods. Why, you ask? Well, mainly so I could use the LM8UU bearings from the Printrbot Simple, to keep this in the theme of turning the Printrbot Simple into a delta.

      Delete
  4. This comment has been removed by the author.

    ReplyDelete
  5. im building my own delta, one thing is still not clear to me, how should i determine the length of the delta arms???

    ReplyDelete