Modify repetier firmware for SCARA

2»

Comments

  • My X & Y motors are not moving.
    I tried to make a just for test funtion of homing. it is not using my direct axis rotation function, just using movetoreal for x, y and moveRelativeDistanceInSteps for z. 
    the idea is just to test if the X Y motors doesn't move because of my direct axis rotation function or not. And I think it is not the cause.

    I order it to move Z, Y, then X.
    Z motor is moving, but it doesn't stop if I press Z endstop. it stop if I press X endstop.
    I've tried to invert Z, it stop if I press Z endstop. but it also stop if I press X endstop.
    after that no motors can be moved, not even z.

    what have I done wrong???
  • if(p->delta[axis]) p->setMoveOfAxis(axis);
    if(p->delta[axis]) === if(p->delta[axis] != 0) just a short form of it. Works for all integer values.

    p->setMoveOfAxis(axis); sets a flag that we know this motor/axis should move.

    You can use one of these






    /** Uncomment, to see detailed data for every move. Only for debugging purposes! */

    //#define DEBUG_QUEUE_MOVE

    /** write infos about path planner changes */

    //#define DEBUG_PLANNER

    to debug moves. DEBUG_QUEUE_MOVE gives lot of infos if echo is enabled (debug option). So if you see results here you know the move was accepted and what steps in virtual resolution it wanted. If you don't see it the move got prevent from boundary check or some other check. For homing we set homing flag to disable these checks.

  • Hi repetier...
    I still don't understand what is the meaning of
    P->
    D->
    Cur->
    Can you please explain to me?
  • wangsamax said:
    Hi repetier... I still don't understand what is the meaning of P-> D-> Cur-> Can you please explain to me?

    Do you work at Scara Repetier?
    Share firmware.
  • wangsamax what do you mean? I guess these are variable names somewhere but need a context to know what they mean.

    @Grean2007 no I'm not working on scara bu wangsamax tries to write such a code. If it is working good we might add it to mainstream sources.
  • @Repetier
    I think they are struc???


  • edited December 2016
    @Grean2007 ... Still trying. Was almost give up.
    It's working now but still not prefect
  • wangsamax
    Excellent! It is possible to try?
  • edited December 2016
    Hi grean, seems awesome & perfect print.
    Do you use marlin?
  • Hi wangsamax. Yes Marlin.
     In the Delta, and H-Bot Repetier. On Repetier printing quality is better than Marlin. I look forward to Repetier firmware for Scara.
  • Hi grean, i saw your scara arm again & i think it has different kinematics with what i do.
  • edited January 2017
    Hi Wangsamax
    I think that should work on my printer. If you share your firmware I tested.
  • edited January 2017
    Hi grean, 
    can your firmware rotate just the shoulder? 
    if your shoulder rotate the arm, what will happen with the forearm?
    I mean, it seems that your shoulder rotation affect elbow rotation. 
    because you set your motors for shoulder and elbow both before shoulder joint.
    and I set my shoulder motor before shoulder joint, my elbow motor before elbow joint.
    they are different kinematics, at least must have some modification either you modify the hardware or the firmware. 
    btw, I'm planning to make my arm as open hardware and firmware project. I'm still considering about this. what do you think?

    btw, how stiff is you arm? especially at nozzle.
    I have some kind of vibration problem or some kind of pendulum effect that makes bad print.


  • Hi wangsamax
    On the one-handed SCARA significant vibration, on two hand SCARA vibration is much smaller, but there is. Perhaps you need to adjust the speed and acceleration of the movement to be smoother. You have a very long arm for Z, the vibration can not be avoided. My printer hand movements are the same as you.

  • Hi grean, 
    I've redesign all. z axis at the palm is a bad idea. using drawer slide also a bad idea.
    I move it to center but still have vibration & can't print good. I still modify it.
    I don't want to decrease speed, my goal is at lease the same speed with delta.

  • Hi wangsamax
    Need rigid structure of the printer, and smoothness of arm movement.I have the speed in the slicer 70 mm/s.  The author of Pavlog have made several printers SCARA http://roboforum.ru/forum107/topic13406.html
  • Hi grean, i don't understand the language. But thanks anyway.
    I will release my version firmware, beside the kinematics, i also modify user interface and semi auto calibration tools. so please be patient. It's not ready now.
  • Hi wangsamax
    Ok!
  • Hi Grean,

    you can try it now. 
    download from this website


  • Hi wangsamax
    Need a diagram for explaining angles. Settings are carried out only in Configuration.h?
    #define X_MIN_POS -100 // Posisi titik X minimum
    #define Y_MIN_POS -100 // Posisi titik Y minimum
    // Scara Setting
    #define ARM_LENGTH 220      // dalam mm. in mm
    #define FOREARM_LENGTH 180     // dalam mm. in mm
    #define SHOULDER_MIN_ANGLE 90     // dalam derajat. in degree 
    #define ELBOW_MIN_ANGLE 5      // dalam derajat. in degree
    #define SHOULDER_MAX_ANGLE 270  // dalam derajat. in degree
    #define ELBOW_MAX_ANGLE 180    // dalam derajat. in degree
    #define SHOULDER_BED_CENTER_ANGLE 135 // Posisi sudut bahu Scara di pusat papan dalam derajat. Position of Scara shoulder angle at bed center in degree
    #define ELBOW_BED_CENTER_ANGLE 90  // Posisi sudut siku Scara di pusat papan dalam derajat. Position of Scara elbow angle at bed center in degree

    On your site can not see images!

  • Hi grean, i don't understand what diagram that you need, can you explain or give me example of diagram?
  • Hi wangsamax
    SHOULDER_MIN_ANGLE , 90, and other degrees, and dimensions, where they picture printer?
  • Shoulder is x motor, elbow is y motor
    Angle counter clockwise
    Cartesian x positive axis is 0 degree.
    You define where you want the bed center & where is your endstop.
    Shoulder min angle is where your endstop from cartesian x positive.
    It affect your print orientation.

    Elbow 0 degree is where your end nozzle make a straight line with elbow and shoulder.
    Elbow max is where your y endstop.

    This is for right hand scara. For left hand just play with min max.

    If you use lcd display you can rotate the joint individually.
    If you use repetier host, use g5 command
    G5 x for rotate x motor in degree
    G5 y for rotate y motor in degree


  • Hi all, I want to announce that the modified repetier firmware for SCARA can be downloaded at https://github.com/wangsamas/wangsamas-firmware/

    thx a lot for repetier.
  • edited March 2017
    Very interesting discussion...

    I just found this thread. This explain everythings. This give me clear understanding how repetier works.Create segments for NonLinear move is very smart strategy. It save time because repetier only do some calcuation once in every 22 segment. This what makes repetier can print better in Delta.

    I plan to use repetier for robotic Arm. I will start with 3DOF arm.
    But I am affraid I will have not enough memory and computation power.
    Robotic arm will have heavier inverse kinematic calculation.

    The other problem, robotic_arm can have more than 3 joint (X,Y,Z). 
    Pick and Place need at least 4 DOF + 1 for gripper. It can be U,V,W,X,Y,Z. for 6 DOF arm.
    Z for pan-base joint, Y for shoulder joint, X for elbow joint, W for elbow rotation, V for wrist joint, and U for wirst rotation + 1 for tools (gripper/laser/suction/extruder). That makes total 7 motor.

    Some color printer can have 5 extruder for CMYK and White.
    I still dont know how to deal with this.

    Maybe Endstop can be problem too, because there are 2 move strategy. 
    Base on cartesian system (XYZ) or base on joint/angle position.
    move base on cartesian system should watch for all endstop, but move base on joint should only deal with moving joint endstop.

    Because there are so many drive_system for robotic / 3d printer. Maybe we should make separete file for inverse/forward kinematic and homing axis. This way printer.cpp and motion.cpp can be more readable. 

    Needs guiden from all of you.

    Best Regards
    Robby.
Sign In or Register to comment.