Welcome to Our Community

Some features disabled for guests. Register Today.

Backlash Compensation with Blackbox or Arduino Based Boards

Discussion in 'Laser Cutters' started by REdington, Oct 11, 2021.

  1. REdington

    REdington Well-Known
    Builder

    Joined:
    Jan 24, 2015
    Messages:
    98
    Likes Received:
    43
    My best friend has been asking questions about building him a laser like the one I built (Rodney's new Laser) earlier this year. He already has a 50 watt tube and power supply for the tube, mirrors and cutting head with lens, NEMA 17 steppers and drivers, along with some DC power supplies. He doesn't have much money so I'm looking to see what other options for control is out there. I've read a lot about the BlackBox and other Arduino based control, but haven't found anything on backlash compensation. I would have to think without it, any Arduino based control is useless for a precision laser cutter. I know that on mine, the Y is set at .02mm and the X is .04mm.
    Before I got the backlash compensation right, I has some mis-mached cuts on several pieces.


    Thanks
    Rodney
     
  2. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    15,050
    Likes Received:
    4,313
    No it does not but I would also not call it useless. Plenty of folks here use it
     
    REdington likes this.
  3. REdington

    REdington Well-Known
    Builder

    Joined:
    Jan 24, 2015
    Messages:
    98
    Likes Received:
    43
    Your right, Peter.
    Maybe I over stated "useless"
    What is the work around to do ultra precision work.
     
  4. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    15,050
    Likes Received:
    4,313
    Build it well, mechanically. Backlash can be eliminated in several ways, by adjusting v-wheels properly, adding Timing Belt Tension Torsion Spring and building a rigid frame
    Of course there has to be some tradeoff between budget and precision at some point
     
    REdington likes this.
  5. JustinTime

    JustinTime Veteran
    Builder

    Joined:
    Dec 18, 2013
    Messages:
    784
    Likes Received:
    259
    I don't think the problem is the Arduino, I think it's the complexity of programing backlash compensation. :D Mach3 has backlash compensation (I know, it's not Arduino) so it should be possible to program but not simple or Peter, and David, would have done it already. :)
     
  6. David the swarfer

    David the swarfer OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Aug 6, 2013
    Messages:
    3,458
    Likes Received:
    1,915
    The microprocessor used in the Arduino Uno has limited memory, and GRBL uses about 98% of it, there is simply no space to add backlash compensation code (-:

    (but the new GRBLhal version which requires much larger procesors like ESP32 and the STM range may well see backlash comp included at some point because there is space. GitHub - terjeio/grblHAL: This repo has moved to a new home https://github.com/grblHAL
     
    REdington likes this.
  7. REdington

    REdington Well-Known
    Builder

    Joined:
    Jan 24, 2015
    Messages:
    98
    Likes Received:
    43

    That would be great if it does happen.

    It looks like I might start building one for him sometime this winter. We decide what to use for control when I get ready for it.

    Thanks

    Rodney
     
  8. JustinTime

    JustinTime Veteran
    Builder

    Joined:
    Dec 18, 2013
    Messages:
    784
    Likes Received:
    259
    Isn't GRBL just a 'translator' of the commands that come from the controller? I thought that all the computing is done in the controller and the controller will do the compensation for the backlash and send the corrected code to the GRBL. Am I misunderstanding the process?
     
  9. David the swarfer

    David the swarfer OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Aug 6, 2013
    Messages:
    3,458
    Likes Received:
    1,915
    GRBL is the controller. You are thinking of the GUI, like OBCONTROL or bCNC or UGS, those just send the Gcode to GRBL and have no concept of backlash at all.

    GRBL interprets the Gcode into 'move the X motor 3521 steps while moving Y 234 steps - and dont forget to accelerate and decelerate' so backlash compensation has to be inside GRBL as it is a step level thing and occurs when an axis changes direction.
    The compensation steps lie outside the measured movement steps so a GUI could not keep track of it since any Gcode sent to GRBL is a measured movement. to work around this you woudl have to extend the language that GRBL understands, but there is no memory space for that either.
     
    JustinTime and REdington like this.
  10. Rob Taylor

    Rob Taylor Master
    Builder

    Joined:
    Dec 15, 2013
    Messages:
    1,470
    Likes Received:
    749
    Technically you could do it with a pre-run macro that calculates every time any axis changes direction and breaks up the motion blocks to inject extra little G0s (or maybe high-rate G1s) and G10 L2s in to take up the lash. Since G2/3s are by quadrant (maybe for this exact reason, historically) it shouldn't be enormously difficult as a programming exercise. The only viable way to do it with grbl, like most other things, is through the GUI.

    This might ruin the planning aspect of grbl and your junction deviation setting may completely or almost cease to function, not quite sure since the axis is technically reversing, but it would, technically, work.

    To do it with full motion planning in realtime with grbl like I do with LinuxCNC... Yeah, that's a whole new thing that will require grblHAL/ESP32/Teensy at some point.
     
  11. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    15,050
    Likes Received:
    4,313
    At which point, fitting an anti backlash nut, or using the correct belt profile and tensioners - is just soooo much easier (;
    Why "compensate" when you can "fix it"
     
    David the swarfer likes this.
  12. Rob Taylor

    Rob Taylor Master
    Builder

    Joined:
    Dec 15, 2013
    Messages:
    1,470
    Likes Received:
    749
    To be fair, you can only "fix it" within mechanical limits; lash is a tradeoff between precision and component wear. On a hobby-grade extrusion machine I don't really see the point either- it's virtually guaranteed the frame is bending, the belt is stretching and the screw is twisting by more than a typical backlash comp value whilst cutting anyway. High-wear low-cost items like Delrin anti-backlash nuts make way more sense. On a highly rigid machine with all steel-on-steel contact, a well-characterised (admittedly, another step well beyond simple backlash comp) ball screw can bring you down from +/-0.05mm to +/-0.005mm (thermal limits notwithstanding)!
     
    REdington likes this.

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice