Niggle Build

Re: Niggle Build

Postby Niggle » Sun May 18, 2014 5:07 am

Clearly I wasn't paying attention.

segmentize thinks Cartesian [0,0,0] is the center of the bed.
I had slic3r thinking that Cartesian [0,0,0] was the point on the bed closest to the X arm. It then placed the object in what it thought was the center of the bed. so segmentize translated it to what it believed to be the right place.

From the position over the bed, I'm thinking that my x-motor is misbehaving. Moving it about and then sending it to X0 tends to leave it noticeably shy of full extension. I'll tighten the string and turn up the power a bit to see if the helps.

Slowly getting closer to a first print :-)
Posts: 84
Joined: Tue Feb 11, 2014 7:27 pm

Re: Niggle Build

Postby Niggle » Wed May 21, 2014 5:54 pm

The next attempt had the hot end waving about in mid air, about 10mm above the bed.

The calibration numbers might be off by a little but not that much, so I started to take a close look at the segementize script. I added a print statement to show the output from equations. Somehow, my shoulder heights range from 74 to 90mm and my arm lengths from 294 to 311.

I can believe 74mm and 294mm but not 90 or 311. The trouble is, I don't understand how or why equations is coming up with these values.

So, I'm going to run through the calibration process again
- tighten the strings, balance the tension, repeat ....
- reset the endstops so the arms have the same liming length (+/- < 1mm)
- recalculate steps per mm (based on moving 250mm)
- check actual distance moved for nominal 25, 50, 75, 100, 125, 150, 175, 200 mm, i.e. check for cyclic error.
- reassemble and collect a set of z-probe values to plug into segmentize.

This may take me a day or two so I'll report back when I'm done.
Posts: 84
Joined: Tue Feb 11, 2014 7:27 pm

Re: Niggle Build

Postby Nicholas Seward » Wed May 21, 2014 6:47 pm

What are your steps/mm for each of your arms? Where are your touch points? How many touch points do you have?
Nicholas Seward
Posts: 738
Joined: Mon Nov 25, 2013 10:41 pm

Re: Niggle Build

Postby Niggle » Thu May 22, 2014 4:56 am

Note that I am using a Ramps1.4 with 16x microstepping so my step count is reasonably close to yours.

Steps/mm 62.69, 63.15, 62.18, 92.1

POINTS=[( 132.7, 132.7, 132.7),
( 120, 120, 155.9),
( 110, 167.1, 110),
( 182.0, 100, 100),
( 139.8, 120, 140),
( 110, 150, 134.7),
( 160, 127.8, 100),
( 215.6, 56, 56),
( 30, 144, 144),

My printout from segmentize reads
('Shoulders ', 72.072947721373993, 79.955492442864923, 94.550689647434666)
('Arm lengths ', 293.03561156974467, 291.22602904418051, 312.59671391451758)
{'Y': 156.45910027454471, 'X': 94.420433343044238, 'Z': 133.74407170469809, 'F': 153.73742840147568}
{'Y': 177.26496073574418, 'X': 54.764780325078931, 'Z': 117.49861647265706, 'F': 138.8422595863312}

I'm not sure what to measure for shoulder height, but the shoulder hinge is close to 28mm above the bed while the wrist hinge is 92 mm when the extruder is touching the center of the bed. Without precision instruments, I can't see differences between the arms for either of these.

Regardless, please don't waste time analyzing the numbers as I will be updating them.
Posts: 84
Joined: Tue Feb 11, 2014 7:27 pm

Re: Niggle Build

Postby Niggle » Fri May 23, 2014 9:35 pm

In, what happens in getxyz(r1,r2,r3) if (r1*r1 - x*x - y*y) < 0 ?
I'll do some tests tonight to find out.

Naturally, it should not be possible, but poor calibration combined with probing a point close to a shoulder might cause this this happen.

Recalibration is going slowly.
Posts: 84
Joined: Tue Feb 11, 2014 7:27 pm

Re: Niggle Build

Postby Niggle » Sat May 24, 2014 4:25 am

That wasn't my problem, although it remains an interesting question.
Posts: 84
Joined: Tue Feb 11, 2014 7:27 pm

Re: Niggle Build

Postby Niggle » Sat May 24, 2014 3:11 pm

I think the answer is that python reports

Value Error: math domain error

And I need to recalibrate :-(
Posts: 84
Joined: Tue Feb 11, 2014 7:27 pm

Re: Niggle Build

Postby imrahil » Sat May 24, 2014 6:45 pm

Niggle wrote:Value Error: math domain error

had same error when I changed MAX_ARM_LENGTH.
with default 300 it calculates fine
Posts: 68
Joined: Thu Dec 12, 2013 10:19 am

Re: Niggle Build

Postby Niggle » Tue Jul 01, 2014 7:23 pm

WP_20140607_001[1].jpg (1.29 MiB) Viewed 83568 times

I took the spring off one arm and fitted new string. This is the result. At full extension the slave arm has side to side movement, enough that, as it extends, the eccentric stop misses the microswitch.

Since taking this photo, I've added rubber bands between the tuner handle and the bolt on the slave arm. I've also checked (and increased) the string tension, and worked the arm from min to max to balance the tension. The rubber bands may be redundant now, but I'm leaving them in place.

I've invested in a 12" digital caliper and run through the calibration process again.
This gives me bolt to bolt distances in the 290 to 295mm range. (Distance between the insides of the bolts plus the thickness of a bolt.)
The first touch point on the bed is always equal extension of all arms. It seems that each day I measure this it gets longer, Last night, it was 137.1mm.
I added nine more points in rings around this and then ran segmentize (modified to save arm lengths and shoulder heights to file.

The calculated arm lengths are 295 to 308mm. The calculated shoulder heights 80 to 90 mm.

I have created a calibration square (10mm x 10mm x 1mm). The machine tries to print this slightly above the bed, although each of the four layers ends up closer to the bed. I am guessing that this means that jerks to extend an arm (any arm) are getting lost as the move to [0,0,0] at the end of the job doesn't get all of the arms back to the endstops.

I will check the string tension all round tonight and turn up the power to the affected arms. I will also go through the Slic3r settings to reduce travel speed and acceleration.

NOTE: The arm without the spring seems to be the least affected by jerk errors.
Posts: 84
Joined: Tue Feb 11, 2014 7:27 pm

Re: Niggle Build

Postby machinofacture » Tue Jul 01, 2014 11:15 pm

Why would the shoulder heights change over time? I actually don't use a shoulder height in my calcs now and it seems to keep the arm on a plane just fine. I haven't tried to print anything yet.

As a secondary check on the calibration you can measure the arm extension by hand, here is how I did it:

Disconnect the arms from the hub, then home everything. Now, move the arms individually (in cartesian mode) until the tips of the arms touch. If you have the steps/mm calibrated for each arm, this should give you a proper distance from maximum extension to minimum. For the calculation, you also need to add the distance between the centers of the bolts at minimum extension, which you can measure with a caliper when the arms are at minimum extension. Then you can set the correct value for the arm distance at the homing position.

I've attached my version of configuration.h and marlin_main.cpp in case you want to try my variation of your firmware variation. :)

What kind of string are you using?
(32.21 KiB) Downloaded 3743 times
(130.04 KiB) Downloaded 3812 times
Posts: 20
Joined: Tue Jun 17, 2014 12:02 am


Return to GUS Simpson

Who is online

Users browsing this forum: No registered users and 1 guest