Quote

**tobben**

How long will it take before the PTFE sleevings need replacement? From what you have observed so far, do you think it will be closer to 100 or 1000 or 10 000 print hours?

It's a neat and cheap solution, I've been considering it for the Hangprinter =)

How long will it take before the PTFE sleevings need replacement? From what you have observed so far, do you think it will be closer to 100 or 1000 or 10 000 print hours?

It's a neat and cheap solution, I've been considering it for the Hangprinter =)

That's a good question. It doesn't seem like the PTFE is showing significant wear, but to be honest, I've probably printed less than 50 hours on this printer. Note, however, that only a tiny spot on the PTFE sees any wear, and you can easily shift the sleeve to a new spot without having to do any disassembly. You could probably shift and rotate the sleeve a dozen or so times before needing to replace it.]]>

It's a neat and cheap solution, I've been considering it for the Hangprinter =)]]>

Quote

**besenyeim**

This forum thread ispired me to build something similar. I probably will settle with the same design, but yet I'm just experimenting with materials and other kinematics. I bought some dyneema line, which is similar to spectra, and tried different materials to guide it. The best so far is enamel wire (originally for coil windings). This hard, slippery coating is better than just polished copper you seemingly used. Closest to ceramics.

However I have another bold idea for this: the guide rings for fishing rods usually have ceramic inserts. They worth a try, and are more accessible than sewing machine parts (I think).

This forum thread ispired me to build something similar. I probably will settle with the same design, but yet I'm just experimenting with materials and other kinematics. I bought some dyneema line, which is similar to spectra, and tried different materials to guide it. The best so far is enamel wire (originally for coil windings). This hard, slippery coating is better than just polished copper you seemingly used. Closest to ceramics.

However I have another bold idea for this: the guide rings for fishing rods usually have ceramic inserts. They worth a try, and are more accessible than sewing machine parts (I think).

I ended up settling on running the Spectra line through PTFE sleeving (see the photo at the top of page 3 of this thread). No sign of wear on the Spectra line. In fact I suspect the line ends up picking up a thin coating of PTFE which makes everything more slippery as it gets worn in.]]>

Quote

**chris33**

did you use line or braid????

did you use line or braid????

I used 30# test braided Spectra line that is about 0.010" dia.]]>

Quote

**RichardMenasco**

I too am now working on a fairly similar delta design, and while I have an old Rambo board using Marlin (from a Mendelmax 2.0), I want this setup to run on my new smoothieboard 5x (it is wired to it now). In the versions of Marlin that I have, I can find the section that you changed, but the versions I have use different variable names, and as I'm translating (replacing) the variable names from your version of Marlin to my version of Marlin I can then see how to change the Smoothieboard firmware. The updated Smoothieboard firmware compiles and runs, and will still control my robot for "Home" and will make the first movement (-Z) for "Probe", but I can no longer make independent X, Y or Z movements.

Hopefully this is still just an easy question.... I can easily see (translate) all variable names but one, that (after tons of searching), I just made a wild guess on..... I can not find variable "delta_z0" anywhere in any copy of Marlin that I can lay my hands on! Can any one tell me about, or help me find, "delta_z0" in any Marlin version?

Thanks in advance, I will post more info later today if needed.

QuoteLoboCNC

Quoteekaggrat

super cool... What firmware are you using?

I am using Marlin set up for a Delta printer, but I had to modify the calculate_delta() function in Marlin_main.cpp as shown below. In Configuration.h, the parameter DELTA_DIAGONAL_ROD is normally the fixed length of the pivoting arms. In my implementation DELTA_DIAGONAL_ROD should be set to the initial length of the diagonal strings when the carriage is at the zero position.

void calculate_delta(float cartesian[3])

{

float z_squared;

z_squared = sq(delta_z0 - cartesian[Z_AXIS]);

delta[X_AXIS] = sqrt( z_squared +

sq(-cartesian[X_AXIS]-delta_tower1_x) +

sq(-cartesian[Y_AXIS]-delta_tower1_y)

) - delta_diagonal_rod;

delta[Y_AXIS] = sqrt( z_squared +

sq(-cartesian[X_AXIS]-delta_tower2_x) +

sq(-cartesian[Y_AXIS]-delta_tower2_y)

) - delta_diagonal_rod;

delta[Z_AXIS] = sqrt( z_squared +

sq(-cartesian[X_AXIS]-delta_tower3_x) +

sq(-cartesian[Y_AXIS]-delta_tower3_y)

) - delta_diagonal_rod;

}

I too am now working on a fairly similar delta design, and while I have an old Rambo board using Marlin (from a Mendelmax 2.0), I want this setup to run on my new smoothieboard 5x (it is wired to it now). In the versions of Marlin that I have, I can find the section that you changed, but the versions I have use different variable names, and as I'm translating (replacing) the variable names from your version of Marlin to my version of Marlin I can then see how to change the Smoothieboard firmware. The updated Smoothieboard firmware compiles and runs, and will still control my robot for "Home" and will make the first movement (-Z) for "Probe", but I can no longer make independent X, Y or Z movements.

Hopefully this is still just an easy question.... I can easily see (translate) all variable names but one, that (after tons of searching), I just made a wild guess on..... I can not find variable "delta_z0" anywhere in any copy of Marlin that I can lay my hands on! Can any one tell me about, or help me find, "delta_z0" in any Marlin version?

Thanks in advance, I will post more info later today if needed.

The variable delta_z0 may have been something I added - it's all a bit hazy now. In my code, I have a section where it looks like I edited out the variable delta_diagonal_rod_2 and maybe added in the variable delta_z0:

:

#ifdef DELTA

float delta[3] = {0.0, 0.0, 0.0};

#define SIN_60 0.8660254037844386

#define COS_60 0.5

// these are the default values, can be overriden with M665

float delta_radius= DELTA_RADIUS;

float delta_tower1_x= SIN_60*delta_radius; // front left tower

float delta_tower1_y= COS_60*delta_radius;

float delta_tower2_x= -SIN_60*delta_radius; // front right tower

float delta_tower2_y= COS_60*delta_radius;

float delta_tower3_x= 0.0; // back middle tower

float delta_tower3_y= -delta_radius;

float delta_diagonal_rod= DELTA_DIAGONAL_ROD;

//float delta_diagonal_rod_2= sq(delta_diagonal_rod);

float delta_z0 = sqrt( sq(delta_diagonal_rod) - sq(delta_radius) );

float delta_segments_per_second= DELTA_SEGMENTS_PER_SECOND;

#endif]]>

Quote

**LoboCNC**

I am using Marlin set up for a Delta printer, but I had to modify the calculate_delta() function in Marlin_main.cpp as shown below. In Configuration.h, the parameter DELTA_DIAGONAL_ROD is normally the fixed length of the pivoting arms. In my implementation DELTA_DIAGONAL_ROD should be set to the initial length of the diagonal strings when the carriage is at the zero position.

void calculate_delta(float cartesian[3])

{

float z_squared;

z_squared = sq(delta_z0 - cartesian[Z_AXIS]);

delta[X_AXIS] = sqrt( z_squared +

sq(-cartesian[X_AXIS]-delta_tower1_x) +

sq(-cartesian[Y_AXIS]-delta_tower1_y)

) - delta_diagonal_rod;

delta[Y_AXIS] = sqrt( z_squared +

sq(-cartesian[X_AXIS]-delta_tower2_x) +

sq(-cartesian[Y_AXIS]-delta_tower2_y)

) - delta_diagonal_rod;

delta[Z_AXIS] = sqrt( z_squared +

sq(-cartesian[X_AXIS]-delta_tower3_x) +

sq(-cartesian[Y_AXIS]-delta_tower3_y)

) - delta_diagonal_rod;

}

Quoteekaggrat

super cool... What firmware are you using?

I am using Marlin set up for a Delta printer, but I had to modify the calculate_delta() function in Marlin_main.cpp as shown below. In Configuration.h, the parameter DELTA_DIAGONAL_ROD is normally the fixed length of the pivoting arms. In my implementation DELTA_DIAGONAL_ROD should be set to the initial length of the diagonal strings when the carriage is at the zero position.

void calculate_delta(float cartesian[3])

{

float z_squared;

z_squared = sq(delta_z0 - cartesian[Z_AXIS]);

delta[X_AXIS] = sqrt( z_squared +

sq(-cartesian[X_AXIS]-delta_tower1_x) +

sq(-cartesian[Y_AXIS]-delta_tower1_y)

) - delta_diagonal_rod;

delta[Y_AXIS] = sqrt( z_squared +

sq(-cartesian[X_AXIS]-delta_tower2_x) +

sq(-cartesian[Y_AXIS]-delta_tower2_y)

) - delta_diagonal_rod;

delta[Z_AXIS] = sqrt( z_squared +

sq(-cartesian[X_AXIS]-delta_tower3_x) +

sq(-cartesian[Y_AXIS]-delta_tower3_y)

) - delta_diagonal_rod;

}

I too am now working on a fairly similar delta design, and while I have an old Rambo board using Marlin (from a Mendelmax 2.0), I want this setup to run on my new smoothieboard 5x (it is wired to it now). In the versions of Marlin that I have, I can find the section that you changed, but the versions I have use different variable names, and as I'm translating (replacing) the variable names from your version of Marlin to my version of Marlin I can then see how to change the Smoothieboard firmware. The updated Smoothieboard firmware compiles and runs, and will still control my robot for "Home" and will make the first movement (-Z) for "Probe", but I can no longer make independent X, Y or Z movements.

Hopefully this is still just an easy question.... I can easily see (translate) all variable names but one, that (after tons of searching), I just made a wild guess on..... I can not find variable "delta_z0" anywhere in any copy of Marlin that I can lay my hands on! Can any one tell me about, or help me find, "delta_z0" in any Marlin version?

Thanks in advance, I will post more info later today if needed.]]>

Quote

**NEATman**

I just saw this crazy motion simulator:

[www.youtube.com]

I know it is much more complexity with 8 winches, but I thought it may inspire more ideas.

Keith

I just saw this crazy motion simulator:

[www.youtube.com]

I know it is much more complexity with 8 winches, but I thought it may inspire more ideas.

Keith

6 motors is enough. The "Spike" printer from a few years ago is a 6 line masted winchbot. Meet Spike.

Anatoly Makarevich proposed a parallelgram based version that lowers the motor count further, and these inspired the Sky delta.]]>

Quote

**Linkreincarnate**

Ok, thanks a lot for all the advice! I am going to redesign the cable routing and body tonight. I'll just keep posting my progress to this discussion if you dont mind. (if you do I can make a new thread)

Ok, thanks a lot for all the advice! I am going to redesign the cable routing and body tonight. I'll just keep posting my progress to this discussion if you dont mind. (if you do I can make a new thread)

No objections on my part either, but I agree with simspeed - you'd be better served with a thread of your own.]]>

Quote

**Linkreincarnate**

Ok Thanks I kinda knew that but I've been putting off a redesign until I get it running as expected. Are there any rules about how they are constrained? I really want to keep the spools on the top and anchored to the bottom so I can put this in different sized frames.

Ok Thanks I kinda knew that but I've been putting off a redesign until I get it running as expected. Are there any rules about how they are constrained? I really want to keep the spools on the top and anchored to the bottom so I can put this in different sized frames.

Yes, there are very specific rules for fully constraining objects in space. In this case, the print head in space has 6 degrees of freedom (DOF), and each string provides a 1 DOF constraint. Therefore, you need 6 strings to to fully constrain the print head. Things get more complicated when you get near singularities which are configurations where 2 strings end up close to lying along the same line.

The clever thing about the delta printer style configuration is that you really want to just control the XYZ motion and you want the orientations fixed, and the 3 parallel rails with the 3 sets of parallel arms do just that. You really want to do the same thing with a string printer - operate pairs of strings together and make sure that the pairs of strings are always exactly parallel. There are all sorts of other ways to configure the strings, but the math can get really complicated for these more general approaches.]]>

Quote

**Linkreincarnate**

So I am working on a sort of inverted version of this. It shortens in the downward direction instead of upwards and has rubber bands pulling it upwards instead of pushing down.

It's still in the rough draft form so ignore some of the obvious problems in this design for now. I am going to work those out once I get the kinematics problem resolved.

Would these inverse kinematics work for my design if I multiplied the motion of the steppers by -1? What would I need to change here to adapt this modification of inverse kinematics in marlin to work with my machine? Any chance of getting someone to break this math down to me?

So I am working on a sort of inverted version of this. It shortens in the downward direction instead of upwards and has rubber bands pulling it upwards instead of pushing down.

It's still in the rough draft form so ignore some of the obvious problems in this design for now. I am going to work those out once I get the kinematics problem resolved.

Would these inverse kinematics work for my design if I multiplied the motion of the steppers by -1? What would I need to change here to adapt this modification of inverse kinematics in marlin to work with my machine? Any chance of getting someone to break this math down to me?

It looks like you've only got 3 strings pulling the carriage downward against the rubber bands. This type of configuration does not constrain the orientation of the carriage. It will eventually settle into a minimum energy orientation against the rubber bands, but any motion will cause it to wobble all over. To kinematically constrain the carriage properly, you need 6 strings of known length pulling on the carriage - very similar to the 6 arms on a standard delta-style printer.]]>

Would these inverse kinematics work for my design if I multiplied the motion of the steppers by -1? What would I need to change here to adapt this modification of inverse kinematics in marlin to work with my machine? Any chance of getting someone to break this math down to me?

]]>

Quote

**NEATman**

I just saw this crazy motion simulator:

[www.youtube.com]

I know it is much more complexity with 8 winches, but I thought it may inspire more ideas.

Keith

I just saw this crazy motion simulator:

[www.youtube.com]

I know it is much more complexity with 8 winches, but I thought it may inspire more ideas.

Keith

To hell with 3D printing - I want one of those!]]>

I know it is much more complexity with 8 winches, but I thought it may inspire more ideas.

Keith]]>

Thank you.]]>

There are quite a few issues worth discussing... Here's a start.

Line Choice

Various forms of Spectra line seem to be a much better choice than fishing line for their resistance to stretching.

Calibration

Jeffrey mentioned he really did not setup an exacting calibration technique. I have developed a technique using multi-variable minimization from z-probing. This allows for some really interesting possibilities including resetting the zero point of your bed to most any position on your bed. Alas, it's not bulletproof yet and I think I know why.

Super Gravity Pole

Standard springs work great for holding the tension of the super gravity pole. In our design, we used a dual motor with aluminum spools on each side for winding the string from the effector, and a single line with a spring going to the top of the super gravity pole. It works great!

Eyelets

So it turns out there can be a small radius error that is introduced in simple versions of these printers when using a rounded anchor point. It turns out that this error can cancelling the effect by using another anchor point.

Daniel - [www.TriDPrinting.com]]]>

and some videos posted: [youtu.be]

and a pretty active discussion going on google groups: [groups.google.com]

Note that his SkyDelta printer is different from Brandon Heller's SkyDelta, although both are cable driven.

Daniel's SkyDelta looks to me somewhat more industrial than my printer, and may be of more interest to those following this thread who are interested in making really big printers.]]>

taobao link]]>

Quote

**ekaggrat**

this motor would be perfect for your extruder... weighs only 70 gms.. has a pull in torque of 3.5-4 kgcm with a ratio of 1:45 which is good enough for 1.75mm filament.. only downside is the shaft is 4mm

this motor would be perfect for your extruder... weighs only 70 gms.. has a pull in torque of 3.5-4 kgcm with a ratio of 1:45 which is good enough for 1.75mm filament.. only downside is the shaft is 4mm

Looks good - do you have a vendor/part number for this motor?]]>

There are all kinds of low cost guides for thread and sewing machines. Perhaps a ceramic thread guide similar to this would work:

It would create a large radius for the line, is very wear resistant, is cheap, and could be popped into a hole in the plate, perhaps one top and bottom of the plate. Concept image attached.

Even better may be putting a notch (1/2 a hole) in the side of the plate and installing one of these:

The line would be easy to run, and the plate still easy to make. The motors could be mounted from the bottom of the plate, and the spool on the motor shaft could stick up above the plate.

Perhaps some eyelet style ceramic loops could be used at the print head platform. Envision some slots in the hexagonal plate, and in each slot could be one of these:

inserted so only the loop stuck up through the hexagonal plate so the tension in the line would keep it in place. Some adhesive or a clamp from the bottom would also be a good idea.

I suppose this same trick could be used with some steel wire as well, or even a single wrap torsion spring.

Keith

]]>

1.) Could you make a "virtual ball joint" by making a U-Joint with a large yoke - I guess you could call it a gimbal - that fits over and around the extruder head? Where the axes cross would be your center of rotation, and it should be able to be made quite low.

Perhaps using the top half of the blue frame, along with the full green ring, and mount the extruder head in the center of the inner gray ring.

2.) Going to a bowden style extruder, could you send the filament down through the single preload tube, right through the ball socket? Perhaps the preload tube could be a pushrod tube and the socket could be the mating socket from a lifter?

Alternately, I wonder if anyone has used 6 pushrods to make a more traditional delta machine. Could be a fun use for old pushrods, as they should be consistent in length, and are magnetic so they would work with magnetic sockets.

Just a couple more crazy ideas.

Keith

]]>

thanks.... definitely next on my list !!!]]>