Pretty untimely I know -- but I've been running a benchtop mill with closed-loop servo control + cheap chinese (igaging) slides, but took a (very) different approach which works well for me :). Haven't updated this repo for the past couple of years but for what it's worth -- see below... ---------------------------------------------------------------------------- linuxcnc / machinekit configuration + miscellaneous setup scripts for "Ludd" - a homebrew machinekit + beaglebone-based CNC controller for a converted Sieg (aka Grizzly/Harbor Freight, etc mini-mill)
Although there are many CNC conversions to be found on the interwebs, this one is unusual in that it's set up for closed-loop/hybrid servo motor control + position feedback, using a pragmatic combination of cheap/surplus/hobbyist hardware and improvised, soldering-iron friendly electronics. The design employs high quality, analog input / analog feedback AMC motor amplifiers (to be found new on ebay for ~ $30 each) driving a set of Parker/Parvex PM servo-motors (rescued from the Twin Cities' iconic emporium of everything liquidated, imperfect or obsolete - Ax-Man surplus) LinuxCNC position feedback is provided via a USB/serial stream of absolute position values, obtained from a set of arduino-monitored 21-bit capacitive scales. The scales (originally added to provide low-cost DRO) had been thrown in for free with the mill when it was obtained for $300 through Craigslist. They were adapted to serve for this project by replacing the DRO readouts with an Arduino set-up to decode the scale positions (aided by some nifty reverse engineering by Yuriy Krushelnytskiy. Viz: http://www.yuriystoys.com/2012/01/reading-gtizzly-igaging-scales-with.html ) The position data is supplemented by direct tachometer-driven/analog velocity control loops between the motors and amplifiers. Amplifier input position control is also continuous/analog (+/-10v), synthesized from micro-transformer isolated 20khz PWM signals, using a salvaged RS232/423 driver chip coupled with a simple low-pass filter. The position control PWM is generated within the Beaglebone PRU, using the (unaltered!) machinekit stepper control driver originally written by Charles Steinkuehler. Code + circuits (again, for what little they are worth), at https://github.com/christophermdickson/ludd Cheers! Chris On Friday, January 29, 2021 at 10:06:56 PM UTC-6 god...@gmail.com wrote: > Hello All: > > First of all, I hope that I am making myself clear to everyone. (NOOB > here!) > > I have a mill setup that is working with LinuxCNC on the mesa 7i43 with > both X and y Drives currently. My goal is to implement a DRO readout > feedback loop into the FPGA DE0-Nano-Soc with machinekit. I would like to > make a type of DRO feedback servo loop with the FPGA in realtime using the > FPGA as the counter decoder/resolver functions. After still trying to > understand machinekit I am looking for advice to see if this would be the > best way to approach this problem. > > I have magnetic slide digital readout with no usable output digital > signals. But after probing inside the unit (Sony unit with magnetic slides) > I can tap off a digital logic chip that creates a square wave in > retaliation to another pin on the circuit card. Both signals would move in > either direction of the magnetic slide. (basically covering which direction > it is moving). The signals would be independent of the DRO itself. (for > example, resetting the DRO to zero would not affect the signals into > machinekit). > > I guess in essence this would be a replacement of the resolver function > without all the math of signal processing? If I am correct? Also, having > "limited" experience with Verilog HDL, I would be creating a HDL block that > would either run separately or be included into the HostMot2 function block > in the mkscofpga github Project. > > I understand the risks associated with a servo feed back loops such as > this. > Hence, why I am seeking advice. > > Your thoughts?? > > Thanks! > Mike Kennedy > > > -- website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit --- You received this message because you are subscribed to the Google Groups "Machinekit" group. To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/f1141099-1f3a-44ff-a534-47d93cfbbf87n%40googlegroups.com.