No announcement yet.

Kinematic control in Mach3

  • Filter
  • Time
  • Show
Clear All
new posts

  • Kinematic control in Mach3

    I would like to build a small, lightweight CNC machine for 3D printing, light milling/drilling, engraving, etc. I'm considering using the type of X-Y drive used in old Hi-plot plotters and also in some differential gantries: both motors are mounted on the stationary frame. This reduces inertia and simplifies wiring, but there's a drawback: because of the unusual drive configuration, if you control the motors in the usual fashion, the work turns out rotated 45 degrees with respect to the linear rails. If you want to move parallel to the X rails, you have to move both motors one step in the same direction; to move along the Y axis, you have to move both motors one step, but in opposite directions. Question: How can this be accomplished, and can it be done in Mach3?

  • #2
    Don't quite understand you? are you using dual motors? and how is your X and Y axis defined?
    If running parallel motors for one axis then you simply invert the dir pulse for one axis, but it also depends if you are paralleling the signals or are separate for each axis?


    • #3
      Max, It's hard to describe the drive without a diagram, which I don't have, but if you get Digital Machinist, there is a diagram on page 11 of the Winter 2014 issue (which is what reminded me of it). Unlike a conventional X-Y drive, where the X and Y motors control X and Y motion, respectively, this is a differential drive where you have to turn both motors in the same direction to produce X motion and both motors in opposite directions to produce Y motion. If you run this drive from a conventional system, your work turns out rotated 45 degrees. So, to straighten things out isn't as simple as inverting the signals to the motors.

      On the other hand, now that I think of it, maybe the answer is just to rotate the original CAD model 45 degrees, and generate the G-code from that. It would also probably require scaling the model by the square root of 2.


      • #4
        Mach has something called 'formula' or something like that. It was meant to fix slight out of square machines. Sounds like it was not implemented well.

        More searching has similar results.

        Linuxcnc will do this. In the most complicated form it can translate normal gcode to 6 axis robot arm. I think what you might be describing is similar to corexy


        • #5
          You've got it! It's Corexy, with slight modifications so that they belts don't cross. You say that LinuxCNC will do the translation for Corexy? Would it be within my humble capacities to get it running? I haven't done any serious programming for decades.


          • #6
            Doing a little Google searching it looks like someone already created the kins file

            Bonjour à tous ! Je suis nouveau dans la communauté Linuxcnc et j'aurai voulut avoir un renseignement. :) Je voudrait fabriquer une machine CNC et la...

            It is French but seems to translate well. Other than that the other issue seems to be homing. Takes a bit of thought because one joint effects the other. Again some google searching seems to have a few solutions.

            Definitely a more advanced config.


            • #7
              Check out Machinekit on LinuxCNC. This thread may help: