John,
Very interesting thread. I read it some months ago before I purchased my knee mill and was intrigued by the transition from stepper to dc servo to ac servo.
Fast forward and I realize that some of my decision making for my still underway CNC knee mill conversion were influenced by this thread.
For my project I'm using ballscrews, ac servos and scales. Plan is to use LinuxCNC and I have a MESA board. I have a few questions that will help me with the next few steps:
1) Did you measure the torque required to lift the knee?
Yes. I used a flex handle with socket and hung weight on it at 12" to determine ft-lb. Then started with a 500 oz-in stepper with a surplus pair of 3:1 pulley and belt setup. It worked but was way too slow for anything but a crawl upwards. I doubled the size of the motor still using a Gecko stepper motor driver and achieved 25 ipm which was usable even if it still felt slow.
At the back of the cross drive to the knee screw was a thrust bearing and (maybe?) bushing.
I replaced that with a bearing.
I have more pictures of all the parts if you want.
Anyway. When the Gecko drive died I had a choice to just replace that or go for servo. I looked at the 25 ipm speed and the stepper motor torque curve and the torque at that speed and decided I'd replace it with an AC Servo that had that torque over the full RPM range. I can now run 150 ipm which is scary fast for the knee.
2) LinuxCNC is all new to me, all I have done so far is load it on a PC and execute the latency test. If I understand things correctly during the install you can select from a multitude of variations of the GUI and then can or possibly be required to tweak your chosen flavour to your specific mill. What variation are you using? And now that your using it and understand its benefits and possibly limitations would you use a different variation knowing what you know now?
I use AXIS. I've played around with other user interfaces on the Pi4 with a smaller touch screen and those user interfaces but I haven't changed the main system. I have a USB wired MPG that I use a lot so the touch screen idea hasn't made it into the shop. In many ways the mill is a hobby project in process so I may not be as fussy as some. I have been considering changing to the Tormach user interface but haven't tried to install that yet. Not even sure what's involved but it's closer to MACH than any of the others.
I converted my old RC mill to CNC using steppers and Mach3, with Mach I find I only use a few pages; the gcode execution page, the MDI page (for general moving around and simply say 3-4 line sequences by using the up key to recall one of the 3-4 sequences entered), and the page with the scale driven DROs. I'm not sure what LinuxCNC variation would best offer those features?
I use 3 screens now in AXIS. The Main screen where I can jog and run etc. The MDI screen which I type in commands. The scroll back buffer is really large and visible so it's easy to type something and then select something 20 lines back with the mouse. I now also have the touch screen for my probe. For that I need to write up (for myself) better directions as I have trouble remembering things.
For example: Probing the inside of a hole to find the center. It was easy to do, although a bit tedious with the wired probe and Shumatech DRO. Now there's a distance to enter for high speed motion so you set that to a bit under the radius of the hole. Position the probe close to the middle and it moves quickly to the edge and then slowly till it touches. It then backs off and goes really slowly to find the position. Then fast back to the opposite etc. for 4 times to find and set the origin to the center of the hole. Remember which parameters to set is where I have issues. But it works well and automatic.
One thing I think is possible with LinuxCNC (not sure) is the ability to close the servo loop with the scale data?
Yes. If you get the correct MESA boards with enough inputs LinuxCNC can do that and apparently it does it really well. My scales are so cheap that I decided it wasn't worth it. And yet, it was the Shumatech DRO that pointed out one of the DC Servo motors I originally installed was losing position. After a few cuts didn't line up correctly.
Short and long of that story is I changed to the Bergerda AC Servo's and have never looked back.
The picture in my head is: let's say we're at 0,0,0 and I execute G0 1.000 and for whatever reason (backlash, ballscrew error, whatever) the servo moves 1.000" but the actual table (according to the scales) is actually now at 0.9990. I think LinuxCNC can use the scale data to correct the 0.001" error and add required additional steps to the servo to get to actual 1.000" according to the scales. Do you know if this is possible?
3) Last question is how did you go about tuning your ac servo PID loop and was it difficult?
The Bergerda's pretty well worked perfectly right out of the box. I did have trouble with one axis. I contacted Bergerda with the settings I had and one of their engineers figured out what I needed to change. Don't remember exactly what happened but apparently one of the default parameters on the drive was incorrect. I found the controllers easy to work with.
About the only mistake I think I've really made is being in love with 150 ipm for Y and 180 ipm for X. It's cost me one probe so far because I had an incorrect parameter while mucking around with custom probe software.
I have found the Enhanced Machine Controller (EMC) <
[email protected]> email list invaluable and the people on that list have been very helpful.
For example I asked about other user screens and Andy Pugh posted the reply.
> Suggestions are welcome. If Touchy is simpler than AXIS perhaps that's a starting point?
Touchy is Python and a Glade UI, axis is Python and a UI defined by Tcl.
Touchy is probably simpler.
You could just start with Gscreen. It a UI framework, intended for customisation, but already all working.
Andy Pugh just posted this to the list:
LinuxCNC 2.9.2 has been released. This is a bugfix release, with the most obvious change being that run-from-line in the Axis interface should now be working again.
Packages have been prepared for:
Buster - uspace - amd64 (PC) armhf (Pi) arm64 (Pi with 64-bit kernels) Buster - RTAI - amd64 Bullseye - uspace - ams64 (only) Bookworm - uspace - amd64, arm64 Bookworm - RTAI - amd64
For existing users of 2.9.1 on the above platforms this should be offered as an automatic update.
If anyone badly needs Bullseye debs for RTAI or arm64 / armhf then let me know. (all but the amd64 uspace builds have to be manually created)
Contributors to this release are:
Alec Ari
andypugh
c-morley
dps.lwk
Greg Carl
Hans Unzner
H vard F. Aasen
Moses McKnight
Norbert Schechner
Peter Wallace
Petter Reinholdtsen
Phillip Carter
Rene Hopf
Sebastian Kuzminsky
Sigma1912
Steffen Moeller
Peter Wallace is the MESA board designer and supplier. Sebastian Kuzminsky does BeagleBone stuff etc. Rene Hopf designed the STMBL servo drive I use for the 4th axis and bought to repalce the UHU drivers for my DC servos before I discovered the motor issue on X axis.
Everyone has been very helpfull. Some of the online LinuxCNC forums have the usual evil trolls trying to up their support message count by replying and then if the reply is questioned they reply again with "You aren't listening". So I tend not to visit those forums.
Hope that helps.