Separate names with a comma.
Some features disabled for guests. Register Today.
Discussion in 'CNC Mills/Routers' started by Rob Taylor, Oct 25, 2018.
Discussion in 'CNC Mills/Routers' started by Rob Taylor, Oct 25, 2018.
A proper CNC mill conversion. But quite small, with my trademark idiosyncracies.
Rob Taylor published a new build:
Read more about this build...
Current thoughts and considerations:
Geared NEMA 23s would likely be higher acceleration, but I'm somewhat dubious on their relevance here given the dovetail ways. If it were a linear rail conversion as well, inertial matching would be more relevant. As it is, I have the gibs snugged up a bit and it's relatively stiff to move, but runs a boring head quite nicely. Any motor is going to have a time starting and stopping, and I suspect that overall, the higher momentum and higher intrinsic torque (ie. the diameter of the rotor coils) are a slightly better option. Time will tell.
Originally I was going to go with DMM 400W servos running off of DYN4 (200v class! I hate power supplies!) controllers. This may prove to be a necessary (read: highly desirable) future upgrade, but of course there isn't exactly a shortage of what I can do with three NEMA 34 closed-loop steppers on another project. It was cancelled to basically halve the budget. $1500 on motors alone is no joke. $700 isn't particularly light as it is. But I didn't want to not have servo feedback, even if it was limited to the motor-controller loop. The difference in smoothness and power handling is apparently rather significant.
This was originally going to be LinuxCNC running through a Mesa 6I25 & 7I76 FPGA parallel IO card and breakout. In the interests of time, budget and convenience, I'm revising that to (at least initially) Grbl being fed from bCNC. I've already played with bCNC and like it a lot, it's what will be running the laser to begin with (I may end up moving to a more portable RasPi based solution on that one eventually). LinuxCNC is more like a real CNC controller environment with more I/O and macro support, which is nice, but this mill is a working machine, and I need it down for as little time as possible while I figure out LinuxCNC dual-booting, the setup of the Mesa boards and then the setup of the environment itself. Later I'll have the luxury of having time to build a dedicated machine and plug it in when it's ready, if it becomes worthwhile.
Grbl (if you actually bother reading the Wiki) is fast and easy to work with, and all I need to buy is a $20 Arduino (if I don't already have something suitable lying around!). It's plenty powerful enough for any low-speed 3-axis project, which is all this is. It'll run a variable-speed spindle. It WON'T run a toolchange cycle, but bCNC can, so it still works. Initially toolchanges will be manual anyway, facilitated by a foot-operated power drawbar (mmm, two-hands!). So all I'll need is an optional stop, realistically.
I'll be rigidifying and adding mass to the body with steel plates and gussets all over the place (whilst still allowing for head/column tramming), to which I'll weld square steel tubing in a couple of spots where distortion is allowable, off of which I can create a full enclosure with chip capture and coolant filtration. This, of course, isn't planned for early in the process. Making chips is the order of the day; I need a minimum viable product.
I'll almost certainly convert this thing to belt drive at some point, if for no other reason than because plastic gears are terrible and noisy, but also because the spindle bearings should be rated to somewhere in the vicinity of 5000 rpm (maybe...). I'd like to at least squeeze 4000 rpm out of the existing motor (no idea of its base RPM as yet) with appropriate gearing if I can, to make 1-2mm/~1/16" end mills a little more viable.
Upgrading spindle bearings can spectacularly backfire depending on the quality of the spindle to begin with, which of course with Chinese drop-shipped products is highly variable. Frequently they rely on the slop in low-grade bearings to mask the eccentricities in grinding. I'd love to upgrade to ABEC 5 oil-drip bearings and get 12k out of the spindle, but there's a non-zero chance that simply won't work.
Currently it's limited to 2000 rpm, which is mostly fine at the minute, but smaller ball nose end mills tend to be used heavily in modern CNC production for 3D contouring (barrel cutters notwithstanding) and I have a distinct suspicion I may end up doing a fair bit of that. Slotting down to 0.028" has also been on the cards for this mill. Of course, the runout could potentially preclude going that small, but I don't want to rule anything out until I've tested it.
There is the option of going to a servo drive spindle which I've looked into a fair bit. Originally I was looking at the 750W DMMs with gearing to get up from 3000 rpm (depending on how continuous that 5000 max rpm rating is), but realised a normal brushless 8k spindle motor replacement made much more sense at a similar pricepoint. I could always add an encoder to the spindle shaft if I had to have something like rigid tapping, but I doubt this machine will ever see anything like a BT30 spindle, which would be a major advantage of a servo drive.
The cylinder should do up to around 1800lbf, and I'll be doing a 3/4" R8 TTS-style system, keeping it simple. I haven't settled on what my drawbar force is going to be yet. I saw a lot of 2000-4500lb discussion, which is a fair range, and then recently saw some talk of 700lb, which seems quite low. In any case, appropriate leverage and travel isn't going to be an issue for the cylinder I have, it's mostly just a case of figuring out which Belleville washers to buy and how to arrange them.
The G0758 has a threaded spindle end which fits the drawbar retainer (gotta be able to unscrew against something if/when the collet sticks), which I should fairly easily be able to turn some kind of inverted-top-hat collar for (or even just reshape the part itself, come to think of it), against which the cylinder can actuate. Of course, you can't just mount the cylinder directly to the body and press down on the drawbar, unless you really hate your spindle bearings! It has to be more like a pair of scissors, keeping the force only on the rotating element of the spindle.
Once I figure out how many tools I typically use for a project, building some kind of carousel toolchanger should be fairly straightforward as long as either bCNC or GRBL could send it simple one-byte commands. The point is to maximize hands-off and maximize production capacity within the limits of the base machine.
So what next?
Mainly motor mounts, screw/nut mounts and other stuff to get the CNC portion of the whole thing working. The power drawbar really needs a powered z-axis to work, since I couldn't feasibly use it with the spline-driven quill moving up and down into the head. In a week or so I should be shipping in a pile of 1/2" and 3/8" steel plate to start the body upgrade, though I may make the motor mounts aluminum since it's easier to machine more precisely and reduces the supported/cantilevered weight where the motors attach. I lose negligible strength and gain a little vibration, but it's unlikely to be a problem. And I can always CNC-machine new plates after the fact!
That'll do it for now, feel free to discuss iron vs extrusion and all that good stuff, this isn't really intended to be purely a build log if there's actually something to talk about.
Fixed the images! I think the server ate them, but should be good now.
I have a g0758 and have considered converting it, so I'm interested to see this project.
Like I described on the build page, it's a great machine for what it is, it's seen some pretty heavy use for me and just keeps on trucking. Definitely looking forward to having it run itself!
I am also very interested in this build. I am almost finished with my Plate maker and I could then jump right in making the motor mounts for it.
Can't wait for updates.
I had originally hoped to have it finished by the end of the year. With all the other projects I have on the go and trying to finish up, I suspect I'm gonna be starting it in January!
The steel plates are here, however. So is the genuine Arduino Uno. Only remaining items on the list (until I add more things, like toolsetters!) are aluminum plate for the motor mounts, Belleville washers for the drawbar, and grease nipples for the ball nuts, of which only the aluminum plate is super vitally pressing to getting the build started.
Minor update for some notes to get them out of my head: I was doing some research yesterday and it looks like the target drawbar force is 2500lbf; perfectly adequate for a machine this small. I saw a calculation that approximated the leverage and friction of the R8 collet, and essentially pullout force is just over half of the drawbar force; 2500lbf would give somewhere in the vicinity of 1300lbf of pullout resistance, good up to around 3/8". Apparently Tormach set their machines somewhat lower than this from factory; probably more in the 1500-2000lbf range, though my rough estimate for their three-stage drawbar cylinder force is around 3000lbf.
Actuation distance on the drawbar/washer stack itself needs to be in the vicinity of 0.060"/1.5mm. Since my cylinder is good up to around 1800lbf (I believe at 150psi), I can comfortably operate it at around 800-1000lbf (closer to a more comfortable 90psi shop air standard) and make up the difference with a relatively minor leverage advantage. My cylinder has a full inch/25mm of travel, so if necessary an adjustable stop screw can be used to limit its travel and avoid over-compressing the spring stack.
Belleville washers are intended to be used within a narrow range of motion where their force/travel distance (Hooke's law; manufacturers provide the spring constant data) is amenable to the surrounding system. So I need to design a stack that travels a minimum of 1.5mm, provides 2500lbf of tension when torqued down with a preset nut and remains capable of compressing under my cyclinder's lever advantage up to the 1.5mm point. This is where it gets a little tricky, but I'll play with some ideas and see what I like the look of. I don't want an enormous stack; the height of it has to be bridged by the framework holding the cylinder bracket to the "spindle-grabbing fork" (technical term) that lives under the spindle cap. The longer the distance, the more this connection has to be beefed up to avoid it excessively bending under working load. So the shorter the stack is whilst still providing the required specifications, the better.
Also, since it looks like the laser is going to need the Arduino Uno (because I kept blowing pins, as non-optocoupled systems tend to do), I'll pick up an Arduino Mega for this project. It seems that @Sonny Jeon has done all he can to squeeze every last drop of performance and capability out of the Uno's storage capacity, and future updates will be primarily to the Mega line (and possibly some ARM forks?). It'll be nice to add more functionality to the mill over time if this is indeed the case.
Another relatively minor update, squeezing a little bit of mill conversion work in between other jobs and projects. Soon this is gonna be the main get-it-done-at-all-costs project, though!
Got the motors working with a copy of grbl, everything was nice and straightforward, no programming or setting adjustments required:
That's x and y running at 48V, z daisy-chaining off the 120VAC mains input on the MeanWell supply. The LCD readout behind the smoked cover on the AC driver shows the lead/lag on the encoder as the spindle moves, which is kinda fun to watch.
I might have changed my mind on the controller though?
Haven't committed to it 100% either way yet, since bCNC is capable of toolchanging, though the lack of additional or passthrough I/O in grbl is a little problematic. With only coolant and airblast really to speak of, adding additional macro functions is basically impossible if I needed to. And I may yet decide to add a 4th axis, so grbl would be right out then.
Of course, like I originally said, having a minimum viable product to actually start making things could be an overriding factor. It only takes an hour or two to get grbl happily running, whereas I suspect the learning curve on LinuxCNC is going to be a fair bit more substantial.
Either way, I have a Mesa 5i25 PCI parallel card on the way (I want to leave the single PCIe slot open for a GPU if necessary for system performance, which the LinuxCNC requirements page suggests) and a SainSmart 5 axis C10-like breakout board (I'm still aiming for inexpensive, at least initially) on the way. Even if I end up sticking with grbl, these will be pressed into service in future on a different machine, so they're worth having.
In only-tangentially-related news, I made this toolpost holder for the lathe the other day to get rid of the compound slide because it was introducing too much chatter:
How straightforward and successful that was makes me feel pretty confident about building a 4th axis myself, and of course solidifying the lathe takes it one step closer to CNC conversion itself... We'll see!
Looks like you've got several projects going at once!...But, unlike me, it sounds like you're getting them done! Looking good!
Ha! Let's not get too carried away, I'm between two months and two years behind schedule depending on which project you're looking at!
But recently I'm finding that slow and steady really does get stuff done... Just do a little bit on something while you're thinking about it, and you end up feeling much happier about overall progress. The smaller bites are frustrating, or can be, but in the end it's worth it.
I know what you mean...I made some new cabinets in both bathrooms and added a set in the kitchen....that is I built the boxes in place and installed the face frames. We proceeded to load them up and use them, no worries, I'll get the doors made next week...1 -1/2 years later the doors are finally on! I hope my WorkBee build doesn't suffer the same fate!
That describes my kitchen remodel precisely.
we won't talk about how many cans of paint I have here waiting to go on a wall. So @Rob Taylor, is that tig welded?
Sounds like my wife's house projects!
Yep! TIG. The round was turned top and bottom, and then the plate was bored and turned on the front side to accept the OD of the round. The bore was so it could also be welded up on the inside:
Then the base of the plate was turned down by chucking the round back up to ensure that the top and bottom would be flat and parallel with each other. The bolt pattern was done with the DRO on the mill. The internal bore was countersunk and tapped so it would take the M8 machine screw that matches the original Grizzly top slide stud, which I welded in place on top (because I couldn't reach the bottom). The result is what you saw above!
I've been meaning to do a quick write-up on the welding lathe/positioner I made that I did these welds with (hence why they look well beyond anything I can normally do ) in the Other Builds section. I'll get to it at some point soon. Simple project, but a fun little Arduino build that's actually useful.
Things got a little carried away here. I was only intending to take a poke around at the saddle and take some measurements...
1204 screw should go in the X pretty nicely, though the nut is a little tall for the setup. I may make use of that little pocket on the right, we'll see. I don't want to perforate the saddle and overly weaken it, but something's definitely gonna have to change. Unless I just go nuts and buy linear rails, of course...
1605 just squeaks in, which I wasn't absolutely expecting. And the nut should fit in the setup quite nicely once I get rid of some of those slot walls.
Well, things certainly escalated there. The nice thing about a big ol' chunk of mild steel on the top of the head casting is... I can actually weld (at least in part; since it's heavily in shear, proper fasteners would also be sensible) the air cylinder assembly on top of the drawbar there.
Check out that heckin' chonker of a bearing! I don't recall that being mentioned in the manual...
The big question overall here, of course, is "how do I mill a mill without a mill?" The answer, I suspect, is to get the milling attachment back out for the lathe...
Got the head off, interesting two-part lead nut assembly, which I'm going to replicate for the ball screw assembly because it's the only way to make the whole thing removable!
That's the two chunks of iron on the right there. One is the lead nut with a stud, and the other is a block with a bore to fit the stud and two M8 tapped holes that can fit onto the nut-stud after the nut has already been inserted into the column. It's a little tricky, but seems to work ok.
Got the new (narrower, lower, heavier) stand put together and the concrete block set on top:
That used to be the surface plate bench, but I cut about 16 inches out of the main joists each side of the bridging/cross-bracing and now the whole thing's only about 3ft wide, which is nice. Trying to avoid adding too much horizontal space, so I may not even deck all of it either, and have some spots available for hoses and cables to drop down. The hollow at the front should let me get almost right up to the table (or put the y-axis stepper at a very uncomfortable height, time will tell!).
Started the ball screw multi-part connector assembly...
There's a section of M8 stainless screw in there, plug welded top and bottom to the mild with ER309, then zipped around with regular ER70S2. Recently I through-bored it and tapped it M6, so hopefully there's still some of that screw holding up in there! I'm considering all of this to be replaceable if required, though. Right now I just want the machine working, and then it can make its own parts as necessary, even if it's at a slower pace.
There's 3-5 thou of wobble here and there, but it's really hard to tell if it's the screw or the setup. I'll have to try again later, but since the screw is floating anyway, it may not even end up making a difference.
Then lots of things went wrong...
Made notes and counts in case of disaster...
But then I made a tool and everything was good! 13.7mm outside, 10.1mm inside, give or take, for 1605 screw. Much easier to repack and adjust a couple balls here and there with that thing. It went back on nice and smoothly, and back to it!
Lots of layout for this, without a DRO!
Bearing flange mount and motor mount ready to duplicate. Then just gotta add some standoffs. All the boring is being done on the lathe in the 4-jaw. I'll probably remake a thicker one of these in 1/4" or 5/16" steel once the mill is working.
The other side of the nut assembly tacked up! The big radius/chamfer is for the welds. This is about 0.001" bigger than the stud above (0.7386" vs 0.7374", ish), which is great for fitting but I don't like the slop, hence why I added the core M6 thread. So this will get screwed on... Somehow. Through the head, probably, I'll have to make a reduced-head M6 screw... Or just drill a little extra out of the screw slot in the head. Gonna build these welds up as much as possible since there's a little room in the dovetail gap and it would help hold the M8 screw threads that will actually hold this on to the head.
The head connection is a little confusing, I imagine, I'll get better pictures later. But that's all for now. Progress is happening!
Lots of progress made! Gonna try and show what ended up being a fairly complex, non-linear process as quickly and simply as possible. Obviously if something isn't clear, just bring it up!
Using a tap as a transfer punch, haha. Not the most accurate method, but didn't end up being a problem.
I found the magic screw to remove the head! So this is the actual "carriage", I suppose. The slot and pocket is where it attaches to the lead nut...
This is the reverse side, inside the dovetail, and the connection block which is bored the other side. That allowed for a floating connection (in and out, so the exact screw angle isn't super important) with the head. Obviously for a manual mill, that's fine; you're typically setting and locking the head, then using the quill for fine feed and height setting. For a CNC mill, that can't work, because the head must be accurately positionable in real time. So I have to try and create a similar type of fastening, but with a more precise depth and greater adjustability.
Note the grubscrews, which allow you a fine downfeed to set your nut height and tension your screws against. I hadn't originally seen them and wasn't sure how I was going to perfectly set the height- by feeding shims into the slot, maybe?- but they're really the heart of the connection!
I decided against using the bore, so I'm adding material back in so that I can add more screw holes!
Enough material to do the job!
Wasn't critical on this face skim, but how I was dialling in the bores for exact positioning. Having a lathe and a drill press really saved the day here!
The finished partial nut bracket. Head coupling? That might work.
QCing the motor mount standoffs on the surface plate. Even though I wasn't using a rigid coupler, I wanted the whole thing to be really consistent.
This thing really saved me, even though I haven't used it in well over a year, maybe two.
Trying to figure out the exact order everything had to fit together to actually be accessible, tightenable, and clearanced!
Love this finished assembly! Threaded holes on the bearing plate, tightened up, and M6 clearance holes on the motor plate with counterbores. Worked through the eventualities in my head and realised this was the way to go.
Relieving the mounting plate screw heads holding the standoffs on.
These originally screwed together directly, but they're all gonna take one M6 screw through the core, then two additional M6s holding the coupling directly to the head. This keeps things accessible later on. This has to be set fairly perpendicularly to the column, because the head carriage has to lift over it (without the gib) and then set down over it. It's a little awkward, but a very solid fit.
Note in the background the screws I tapped into the column. These, and another one on the back of the column, pinch the floating nut plate inside the column in a specific location. Part of setting it up was to get a consistent drag on the head carriage once the gib was reinstalled by adjusting the angle of the screw. Could it just be left floating? Probably. Seems a little not-quite-best-practice to me though.
Hard to screw on the ballscrew lock nut with all those in the way. These went back on, then the motor plate, and it was good. And done!
Tested with bCNC over grbl (will have to remember to reset the values when I use it for the laser again!) and it moves incredibly smoothly with plenty of power. Very authoritative. Will be interesting to see how much lash it ends up delivering under z load in a material. Fortunately, it's pretty rare, even in 3D contouring thanks to roughing/finishing passes, to see any significant z loading except during drilling, when backlash is somewhat irrelevant (at least, at these levels) anyway. Depending on how well I repacked the balls, it should be comfortably under a thou of lash regardless of load levels, even if it does become apparent. But that's what tumblers are for!
Looks like a lot of fun problem solving and creative solutions! The assembly with the stand-offs is a cool looking piece! Keep it up!