Auto Squaring, My axis is hella square...

This was done with 1.1.5 I believe but I am done chasing those updates for a while. They were supposed to have done a feature freeze while marlin was switched over to a new framework (2.0 HAL) of some sort but, there are now there are two very active branches of marlin. Every time we do an update some sort of weird issues arise. I haven’t seen any big updates worth the hassle. Have I missed something?

OMG !!!

I was just about to sit down and try to tackle this myself, but first decided to take a look at the website to see if there was a later update to Marlin before I started hacking. Wow, Ryan, fortunately for me, you beat me to it.

I will download the firmware immediately and try this out - AFTER Irma - I am in FL, and Irma has promised to cause us a lot of trouble here this weekend. Who knows how long we will be without power. Amazing how dependent we are on electricity in the modern world. When the power goes out we will have No AC - no water - No PC ! no 3D printer and No MPCNC !!! OMG OMG OMG - what in the world am i going to do? So, will test this out later.

I have been using XYZ limit switches since I built this - like 1 - 1/2 years ago. I know you kept saying it wasn’t needed, but, I couldn’t think straight without using them. To me it had to have a Home position. I had been, and still am, Homing Z to the max, so it moves entirely up off the work area when i send G28.

For squaring it, i had put blocks on the opposite sides of the limit switches, so i could skew the axis off by hand - do home and the side would hit the block first, grind the motor until the other side hit the limit sw. That has been working, BUT, I use 84 oz steppers, and ever since wiring them in series where they get the max power, I really don’t like the idea of the motors Ramming the block on the legs - it is bound to eventually throw things out of wack. But, it had been working. It will square when it homes - IF the axis are skewed in the direction that it will hit the block first. If the carriage skews the other way, and it hits the limit sw first, then it will be Out of Sq, which was a bugger that has been a pain for a while, as i would change bits and forget to skew it in the right direction first, and wind up losing a complex cut.

I am currently cutting 16 pieces both top and bottom making a Core master for a mold, so i need perfect alignment each time - and i have 2 bit changes on the top side (3 bits altogether, a rough cut, final ball nose, and then run another end mill to square up some of the rounded areas the ball nose leaves) And, i wasted 3 pieces because I forgot to align.

I was so fed up with my forgetfullness I decided to tackle the auto align with separate stepper control and switches, and Thank God, you already did it for me. Thank you Ryan.

But, i do mine just a bit differently. I have Z set to Home to Max, so it moves it all the way up off the table and hits the max end stop. Just last month I finally added the Zero Plate. The way I do this, is I use the Z Min as a Z Probe. I lay down the metal Zero plate, then by hand move the carriage over the piece, then send G30 to the CNC from Repetier Host. G30 does a 1-time Z-Probe and it reports the Z value on the Marlin LCD screen. So, I subtract the thickness of the Zero plate and put that number into the gcode that gets sent.

On the X and Y sides of my spoiler boards I have a small raised edges that are squared to the X Y axis, I have cut a board in the shape of an L that is 30mm wide on both the X and Y sides of the L and i place it in the corner so the outside edges are up against the outer raised edges on the spoiler, and then I place my work piece to square up with the inside of the L - and use my hold downs to hold the piece and remove the L alignment template. That way, the Zero location of my work piece is always at the X Y location of 40, 40 (mm).

Here is my gcode header:

G28 ; homes all axis to the limit sw’s

G0 X40 Y40 F6000

G0 Znnn F2000 ; where nnn is the number i read off the Marlin screen after doing a G30 - minus the Zero plate thickness

G92 X0 Y0 Z0 ; this now sets up the new Zero for all axis, the new 0 location is actually x40 y40 znnn (the top of my work piece)

With this set up I get very precise repeatable cuts, as long as i have square-aligned by X Y axis before i start -

And, at the end of the cut I send G28 and the Z axis moves to the Max height before the X and Y zoom -

Now, once i add the Auto Align, this will be a real working system.

BTW, yes, those are my rapid move settings. Remember, my build uses 2 pipes screwed on top of one another for the X and Y gantry - so it is a lot more stable, and i use 84 oz steppers, so it has ok power. The Z uses an 8mm lead screw and I build a counter weight on it with a pulley, to counter the weight of the spindle, so the Z stepper can run faster, and the spindle doesn’t go crashing down into my work or table if the stepper power turns off. This added 5 lbs to my Z axis gantry, but, the X Y axis moves very well with the extra weight. I am contemplating putting on a larger Dewalt 611 (1.25 hsp) OR, when i can afford it, go with a 1.5k water cooled spindle. When I run a 3mm ball nose, currently i am running it at 2500 mm pm but, cutting red oak or cherry and have ran it even up to 35oo, but, I feel that is pushing it too much. I was cutting with the 3mm ballnose on cherry and poplar without doing a rough cut first, and it works, but, if i use a 3mm straight bit, they tend to break if the wood cut is too deep, and the tappered bits - i don’t want to ruin them, so i have gone back to rough cutting first.

BUT, as soon as i get to it, i will put a closed loop speed control on the DW660 - I have all the parts, the circuit, and already have an infrared RPM sensor mounted on the DW660 - I read on a different CNC site that someone put a closed loop speed control on their DW660 and they said they can now cut with 1/4 bits with ease, that it really makes the DW660 a lot more powerful at slower RPMs, so i will try that first.

I’m sure there are still some kinks but it seems to work well enough for now. I am trying to put more time into it in the next day or two but I have to figure out Git first.

Holy crap batten down the hatches. I hope it all goes okay for you down there, that thing looks nasty. Have the cnc start carving you some helmets just in case.

That is how the mini-rambo guys will need to do it (for now) with one axis and the other should square up nicely.

Too much to remember, just z home min,and set the probe thickness as your z offset.

You can rapid up to 120mm/s before you get board issues. But you run the risk of skipping steps.

Adding all that would be better used slower with larger bits. A large heavy machine is for hogging stuff out, being light and nimble is for the smaller bits. I get amazing results at 8-15mm/s If it was more rigid I would generally just go deeper per pass or a large roughing bit.

 

Intelligent speed control would be nice. A few have attempted some cheaper ones but I am guessing nothing has worked out yet. I have done some serious research a few times but there are too many unknowns for me that I’m sure an electrical engineer would know the proper way not to burn down a house. There are a tone of lower amperage ones super cheap zero point crossing opto’s and everything but just not enough amps for a router. I have just wanted to try modifying one of those. Pretty sure there are a bunch on tindie.

 

 

 

 

Jeffeb3 has put in some serious time helping me to get this thing perfected. As best as I can test all functions work. My most sincere thanks Heffe!!! Jeffeb3 has gotten it so polished it has been submitted to Marlin to hopefully get integrated into the firmware, fingers crossed.

DualDual_1_1_5 I have dropped the new fully functional firmware on the site for now, but the GitHub might be the place to get them from now on.

Look forward to testing this out once I dig out some more endstops.

I wouldn’t hold my breath on it merging anytime too soon though - I’ve been following Marlin development for a few months (since just before the V1 release) and it’s and bit disorganized. They’re really bad about freezing things and then adding new features into release candidates which makes it really hard to get a release out the door. Right now with the 2.0 restructure things are even messier than normal.

Even without the 2.0 restructure it can be hard to tell which branch is the current development branch because they seem to change it arbitrarily without really communicating it well. I saw they asked this be rebased onto bugfix-1.1.x but that branch is missing commits from 1.1.5…so they’ve “released” 1.1.5 but it has things that aren’t in the current bugfix development branch - which…that just seems crazy to me.

It’s nice that they’re getting releases out finally…but…man do I get a headache trying to follow the logic behind their branching and release process!

 

Yeah, kinda of a bummer. We have the 1.1.5, the 1.1.X bugfix and also a 2.0 version ready to go. I modeled the 2.0 version on the one thinkyhead was working on a few days ago but it is missing things from before 1.1.4…

Either way, Jeffeb3 very patiently taught me all kinds of stuff over the last week or so. I understand git a bit more and finally understand merge conflict resolution, my previous biggest hurdle. Even if they never want it, we have it and it works, I will do my best to try and keep it up to date.

2 Likes

I think it will make it eventually. It might be one of those “squeaky wheel gets oil” things. 2.0 doesn’t have all the features 1.1.5 has either, so it’s just bad timing. The changes are good, easy to understand, and detailed.

Hi guys thats me again. I don’t know if that was tested or not but for my that is a problem when I cut part and I have one more to cut and I don’t won to move plate or change gcode I just one to move gentry on place click set up offset and start cutting I get error that I’m to far. Or baby I set up something wrong is some nesasary steps on this firmware that I need to make like many set up bed size?

That should work if you home it first. I think. I just sold my last ramps stack so I can’t test it for a day or two. I know it doesn’t work with the “?”'s flashing

If i home X and Y then i move gentry with LCD Where i won to start i lower z with controller without touch plate and im hitting offset it says on LCD “to far”

Can you just do it the way we do it now and reset the board or have your first command be g92 x0 y0 z0?

Yeap i make joystic and i have G92 on it just wondering If this is bug and i shudl look at it.

I wouldn’t worry about it yet. I think this has been messed up in marlin for a while at least since the “?'s” first became a thing in marlin (99% of marlin used G28 first). At this point I don’t think we can get a fix pulled into marlin just yet anyway.

Ryan thanks for all of your hard work on this! Jeff thank you for your time and effort to get it into production!! You guys rock! I can not wait to give this a try on my current build (finally building a smaller machine to do nothing but print from).

 

Neil

1 Like

I’m excited about it. I need to write up some instructions and order some new wires for a different harness set.

1 Like

I need to thank Ryan again. When i was wiring up the motors for separate control i made other changes and completed my PID tach controlled speed controller for the DW660 spindle. And i need to report that the AUTO Squaring worked 100% flawlessly. THANK YOU. It is saving me time and saving material from getting waisted.

About my speed controller: That is also working super well. I can set speed manually with lnob or from gcode through the ramps board from 4000 to 22000 rpm and it holds that speed perfectly steady. I now can set speed according to bit i use and feed rate. 2 or even 3 or 4 flutes. So far the motor seems to have no over heating issues. I limited high rpm to 22000 (motor will go to 30000) to allow room in power out to maintain the 22000 under load. I am currently designing printed circuit board and plan to offer this in unsoldered kit form or as a soldered board. I have included a number of bells and whistles that i will reveal once kit is ready to market.

SWEET!!! I am waiting impatiently.

I’ve printed 4 endstops and am waiting on the actual endstops from china. This has stopped me from completing my build cause I didn’t want to wire the steppers twice. Anyway will try and grab the latest marlin with it in and give it a go.

This is really a awesome awesome improvement for the machine, and after upgrading the Z and middle assembly to the V2 of the machine im even more hyped about this news, and that would definitely vastly improve the usability of the machine. But me being me i have some questions on how this works :slight_smile:

firstly im wondering where i can get the Z axis calibration plate, and where dose it plug in into the RAMPS 1.4.

second if i cant get the Z axis calibration will the X an Y homeing still work? As i can still set the Z by my self just having the X and Y home would be a blessing.

 

thanks

You can use anything conductive for your Z touch plate…one wire from the plate to one pin of the min z on the board another wire from mill bit to other pin of the min z on the board. You need to compensate for the thickness of the touch plate in your g code. I have wrote about this in a bit more detail here . I have since abandoned the touch plate because I was having terrible interference issues. It would trigger before it was supposed to…

I am now running the dual endstop firmware. Yes you can just home X and Y and do the Z like normal, that’s what I am doing. I am now setting my spindle over my work piece, jogging it down with the lcd to the surface. Start the program. The start code zero’s Z out first thing, raises to a clearence, then home’s x and y and goes to work.

2 Likes