Backlash on CoreXY

Hi , as far as i know backlash compensation in firmware is only for cartesian machines, but what about z-axis on a corexy ?
in my case i use a 12X4 ballscrew for my z axis , and as nearly all spindles it has a (quite  small) backlash.
paired wit preloaded linear rails the backlash is not compensated by weight of heated bed , in my machine its 0.035mm.
as i want to get maximum possible precision where can i start in firmware?


Comments

  • Yes, z should be no problem. Open motion.cpp and search for BACKLASH. There is only one block in queueMove I think that adds it. Make sure code block is not disabled by defines and it should already work.
  • ok, found it twice , once  in  queueCartesianSegmentTo  , the second in queueCartesianMove

    replaced the following :

      back_diff[X_AXIS] = (changed & 1 ? (p->isXPositiveMove() ? Printer::backlashX : -Printer::backlashX) : 0);

      back_diff[Y_AXIS] = (changed & 2 ? (p->isYPositiveMove() ? Printer::backlashY : -Printer::backlashY) : 0);

      back_diff[Z_AXIS] = (changed & 4 ? (p->isZPositiveMove() ? Printer::backlashZ : -Printer::backlashZ) : 0)

    by

                    #if DRIVE_SYSTEM == 0

            back_diff[X_AXIS] = (changed & 1 ? (p->isXPositiveMove() ? Printer::backlashX : -Printer::backlashX) : 0);

            back_diff[Y_AXIS] = (changed & 2 ? (p->isYPositiveMove() ? Printer::backlashY : -Printer::backlashY) : 0);

            back_diff[Z_AXIS] = (changed & 4 ? (p->isZPositiveMove() ? Printer::backlashZ : -Printer::backlashZ) : 0);

     

                    #else if DRIVE_SYSTEM == 1 || DRIVE_SYSTEM == 2

            back_diff[X_AXIS] = 0;

            back_diff[Y_AXIS] = 0;

            back_diff[Z_AXIS] = (changed & 4 ? (p->isZPositiveMove() ? Printer::backlashZ : -Printer::backlashZ) : 0);

      #endif

    and in repetier.h  from :

    #if ENABLE_BACKLASH_COMPENSATION && DRIVE_SYSTEM != CARTESIAN && !defined(ENFORCE_BACKLASH)

    to :


    #if ENABLE_BACKLASH_COMPENSATION && DRIVE_SYSTEM >= 2 && !defined(ENFORCE_BACKLASH)



    think that will do the Job for me , will check it out tonight and give you feedback

  • OK, that does the job , will modify the eeprom stuff also ,so for corexy just the Z_backlash will show up in eeprom
    thanks for pointing me direction
Sign In or Register to comment.