Custom Drive System

At the moment I am experimenting with ways on how to overcome the drawbacks of H-Belt (racking of the gantry, uneven belt tension) and Core XY (long belt, belt crossing or belt in two planes)

My design is actually just a modified version of the Drive System used in de MarkForged Machines. It consists of a nornal H-Gantry that is driven in the Y-direction by two closesed belts on each side of the maschine (blue). The belts are connected via a motor driven shaft to keep both sides syncronised an prevent any racking of the gantry. The X-Axis is driven by the red belt.

In order to move the X-Axis the X-Motor rotates clockwise or anticklockwise to move the carriage right or left. Nothing fancy here...
But to move only the Y-Axis up and down, both Motors have to works together.

imageimage



So I am trying to figure out how to setup a custom drive system for this in Repetier. 

Any help would be much apreciated !

Cheers Max

Comments

  • Sry for the tiny pictures ! Here are the links to the full versions.


    Cheers !
    Max




  • Easiest way would be using the nonlinear core xy solution. Here you just modify the transformation in motion.cpp and that is all needed.
  • edited March 2017
    I did some fiddling with the motion.ccp but I can't figure out which line I have to modify to make it work. I have also had a look at some case where someone edited the motion.ccp for a SCARA style printer but this seems a lot more complicated then what I am trying to achive. Can you provide me with some more details on what to edit in the motion.ccp? It would be much apreciated.
  • You only need to change transformation routine in motion.cpp for core xy drive system. It transforms from cartesian coordinates to motor coordinates so you only need to afjust the coordinate transfirmation. Requres fast corexy to be active.
  • "Fast corexy" that was the keyword for me.

    I have added "#define FAST_COREXYZ 1" in the configuration.h and also set the drive system to 1.

    I also changed the motion.cpp like this:

    #if DRIVE_SYSTEM == XY_GANTRY
    //1 = z axis + xy H-gantry (x_motor = x+y, y_motor = x-y)
    corePosSteps[A_TOWER] = cartesianPosSteps[X_AXIS] + cartesianPosSteps[Y_AXIS];
    corePosSteps[B_TOWER] = cartesianPosSteps[Y_AXIS];
    corePosSteps[C_TOWER] = cartesianPosSteps[Z_AXIS];

    Now the Motors/Axis move as they should. For Y-Moves the X and Y-Motor both turn in the same direction. For X-Moves only the X-Motor is moving.

     Thank you very much for your support !
  • MaxGyver said:
    "Fast corexy" that was the keyword for me.

    I have added "#define FAST_COREXYZ 1" in the configuration.h and also set the drive system to 1.

    I also changed the motion.cpp like this:

    #if DRIVE_SYSTEM == XY_GANTRY
    //1 = z axis + xy H-gantry (x_motor = x+y, y_motor = x-y)
    corePosSteps[A_TOWER] = cartesianPosSteps[X_AXIS] + cartesianPosSteps[Y_AXIS];
    corePosSteps[B_TOWER] = cartesianPosSteps[Y_AXIS];
    corePosSteps[C_TOWER] = cartesianPosSteps[Z_AXIS];

    Now the Motors/Axis move as they should. For Y-Moves the X and Y-Motor both turn in the same direction. For X-Moves only the X-Motor is moving.

     Thank you very much for your support !
    Hi, 

    I have a similar structure 3d printer as you have but I could not figure the configuration. I have applied your solution but it didnt work on me. Still my x axis makes the y axis move. Can you help me with this issue ? 
    Thank you
  • Hello, I’m new here, so I was reading what they are trying to do, and I face the same problem... 
    ‘but when you said to use the Cartesian and coreXY etc... Are you Putin all these in the file configuration.h and motion.cpp inMARLIN or repetie? I just ask because sound like marlin. And I’m trading to solve that same problem, and How can I install repetier and edit that in the page you only choose the option and download the firmware? 
    Many many thanks for share that with me. 
  • He is talking about repetier firmware. Here with fast corexy you can use any equation if you find the sport as he showed to have different math then the original core xy.
Sign In or Register to comment.