Revision to Configuring RepRapFirmware for a FiveAxisRobot


* done: documentation, implemented P0, P2, P3, P4, M208, R
* current: working on 3D printer and validate code, A paramter instead of M208
-* open: bending and rail support, coding P1, D
+* move to 6-axis robot: bending and rail support
Status History:
-* Nov 23: still working on prototype, but will be finished soon. Then next steps are validate current firmware and implement missing parameters (P1, bending, rail support)
-* Oct 18: added endstop positions to A parameter
-* Oct 16: reintroduced A angles, new D parameter, not using M208
-* Oct 07: reintroduced P1
-* Sep 26: remove unused parameters D, P1
-* Sep 24: M208 bugfix, started homing wiki
-* Sep 22: M208 as angle limits, remove A parameter
-* Sep 22: P3, P4 implemented
-* Sep 20: Xo, Yo Axis 5 offsets implemented
-* Sep 15: changed B parameter
-* Sep 10: added A to M669 report
-* Sep 08: separate rail properties (new C parameter), compact M669 status display
+* building prototype to validate code
== Construction ==
This shows that arms 2 to 3 are in one line, arm 4 is vertical, arm 5 rotates horizontically.
-An optional 6th rail axis is installed parallel to X, Y or Z axis and has drive letter W.
== M669 settings ==
* Xo, Yo optional offset between end of arm 4 and axis 5, default is 0 each. See section Axis5offset section below for details.
-'''Aa1min:a1es:a1max:a2min:a2es:a2max:a3min:a3es:a3max:a4min:a4es:a4max:a5min:a5es:a5max[:railmin:railes:railmax]''' define the allowed angles in degrees. rail.. is in mm.
+'''Aa1min:a1es:a1max:a2min:a2es:a2max:a3min:a3es:a3max:a4min:a4es:a4max:a5min:a5es:a5max''' define the allowed angles in degrees.
a1 are the angles of axis 1 etc.
max is the maximum angle
-Default is A-45:0:45:0:0:70:-70:0:0:-170:-90:0:-225:0:225[:0:0:1000]
-'''Drad1:sph1:rad2:sph2:rad3:sph3:rad4:sph4:rad5:sph5''' define the outline of the arms and axis actuators to calculate collisions.
-The idea is to define cylinders around the arm and spheres around the actuators to define an area which collides if reached.
-'''Cm:xxx:yyy:zzz''' are parameters if the rail is used
-m is the mode of the rail, XYZ are the offsets from the coordinates. All four parameters must be used, or C0 without xyz. Invalid settings are ignored.
-* C0 means no rail used. Default
-* C1:x:y:z means parallel to X axis, with X offset
-* C2:x:y:z means parallel to Y axis, with Y offset
-* C3:x:y:z means parallel to Z axis, with Z offset. That means the robot moves up and down, e. g. if assembled at a wall.
+Default is A-45:0:45:0:0:70:-70:0:0:-170:-90:0:-225:0:225
'''Rn''' is the actuator construction type.
'''Tnnn''' Minimum segment length (mm) (because smooth XYZ motion is approximated by means of segmentation)
-'''Bor:b2:b3:b4:b5''' robot orientation and correction factor for bending the arms. Default is B0:0:0:0:0
-'''Important''': The coordinate system remains with X being the direction from axis 1 - arm2 - arm3 etc., Y "behind axis 1" and Z "above" the construction, even when the robot is assembled top-down (then Z directs to bottom). The B orientation tells the kinematics in which direction the arms bend.
-or is the orientation of the robot in space
-* 0 is like described above and default: in homing position arms 2 and 3 are horizontal and axis 1 is vertical.
-* 1 in homing position arms 2 and 3 are oriented vertical to the space
-* 2 in homing position arms 2 and 3 are like default, but axis 1 is rotated 90° (laying "on the side")
-* 3 also laying on the side, but -90° on the other side
-* 4 robot hanging at the ceiling, orientation like in mode 0, but upside-down.
-I'l make images to explain when I have implemented it. The bending differs depending on the orientation due to the direction of the gravitational forces.
-b2 to b5 is the bending for arms 2 to 5 in mm in Z direction at the end of each arm when bending of the arms is horzontal and maximal. If the arm is angled up or down, a fraction of the bending is calculated according to the forces. The parameter is optional with default value 0. Bending can be measured or calculated by e-Module and weight. The e-Module depends on the material of the arm. Bending and arm length shortage of the arms are approximated (otherwise calculations would be very complex), so bending to arm length ratio should be small.
== Other config parameters ==
-Axis 1 to 5 are using the drive letters X, Y, Z, U and V. The rail version uses W for the rail movement.
+Axis 1 to 5 are using the drive letters X, Y, Z, U and V.
'''M92''' is calculated as usual, but instead of mm the degrees of the angles are used. Microsteps and Gear ratios must be accounted for in the values.
* axis 4 = U: angle between arm 3 and arm 4, negative is down. If axis 4 angles are too restrictive, printing can be disabled, because arm 4 must be able to be oriented vertical.
* axis 5 = V: angle from straight line between arms 2 to 4 and arm 5. 0 degree is straight to right. Positive is counterclockwise. The angle can be smaller than -180 degree and bigger than 180 degree to allow some necessary axis 5 rotations in modes P1 and P3. Care with the wires and filament must be taken to use it.
-* rail = W: coordinate position in mm.
An example of A setting is:

To undo the changes made by this version, click 'Revert Changes.' This will automatically restore the previous version of this guide.

Revert Changes