Motion System

Pulley Mech. Setup Controller theor. resolution [mm] max. speed of motor [mm/min] Tested acceleration in y-direction [mm/s²] Tested speed [mm/min] Evaluation
50 teeth GT2 dual shaft y axis GRBL 0,03125 (16x microstep) 70517 x/y-motor same 3500 (with 2 motors on y) 50.000 working Accuracy not sufficient. Jumping on fiducials, not dialing in
20 teeth GT2 GRBL 0,0125 (16x microstep) 28207 x-motor 40743 y-motor 2000 (with 1 dualshaft motor on y) 30.000 working slower, but very accurate
Marlin 1.0@Arduino Mega switched to marlin for soft endstops and to have 5 stepper driver on ramps avail
Marlin 2.0@Arduino Due (disabled the S-Curve-Acceleration feature due to lost steps) 2000 (with 1 dualshaft motor on y)
5000 on x is no problem
48.000 on y-axis
60.000 on x-axis is no problem
can't go for higher speed since acceleration is limited, since the stepper driver for y-axis is at its limit (a4988)
switched in 10-2018 to two separate stepper-motors on y axis and use the dual stepper feature in marlin to align y-axis by means of two endstops on y 28207 x/y-motor same 40743 y-motor 3.200 reliable on y-axis (2 motors) 48.000 reliable on y-axis (2 motors)
  • Step-Rates: GRBL @ 30kHz, Smoothieware @ 100kHz, Marlin @ 10kHz (base) up to 40kHz (quadstep-mode, automatically used on demand) but uneven step distribution
  • Arduino Due + RADDS 1.6@24V
  • 16x microstepping

Firmware: Marlin 2.x

For reference see the machine specific Marlin 2.0-bugfix settings here and look through the commits: https://github.com/mgrl/Marlin2OnRaddsForOpenPnP

Setup Marlin 2.0

  • use M206 Z-0.25 to set the home-offset in z-direction to align the left/right nozzle (save to EEPROM afterwards by issuing M500)
  • use M666 Y-2.0 to align the x-axis by the two y-axis motors. Alignment is done by two endstops in y-direction mounted near x-min and x-max (https://github.com/MarlinFirmware/Marlin/issues/5881)

Firmware: Marlin 1.x

  • Changed the default heater pins to an unused pin to make use of the mosfets for switching with M42 command (see https://github.com/MarlinFirmware/Marlin/issues/6169)
  • MIN_STEPS_PER_SEGMENT 0, to make *really* all the small moves, don't join steps to next move
  • maschine/pickandplace/motionsystem.txt
  • Last modified: 2018/11/21 17:23
  • by michael