Firmware and Endstops

The Armstrong uses a fork of Marlin developed by ttsalo. It was configured by him to support SCARA movement and can be found here:¬†https://github.com/ttsalo/Armstrong-SCARA. Some explanation and modification are in order, however. Under configuration.h, the arm lenghts are adjusted to that of the printer¬†in use by changing the variable scara_seg1_len and scara_seg2_len. Scara_axis_spacing is the distance between the arms’ stepper motors. It is very important that the hotend starts at a predetermined position, governed by the variable scara_axis_y. This refers to the distance from the outside edge of the build platform moving inward along the y axis towards the machine. For example, my build platform is set to 200 mm, and scara_axis_y is set to -82, meaning that measuring from the outside edge, the hotend should be postioned 82 mm inward from the edge of the platform for the print to be accurate.

In order for the prints to begin in an accurate position, endstops are very handy, but the stock firmware does not have them enabled. To do this, navigate to the marlin_main.cpp section and scroll down to G28. It will be disabled with a break command. Delete the break, then navigate to the configuration.h section and locate the code that governs homing direction. Set the Y axis to home to the negative direction and the X axis to home to the positive. Finally, in the Slicer of your choice add the following commands to the custom start Gcode:

G28 //Home all Axis

G92 X0 Y0 Z0 // Set current position to zero

This will take care of the homeing of the arms. Make sure that the final position set by the G92 command is the same position denoted by the scara_axis_y setting. The Armstrong endstops are comletely adjustable and fold up out of the way for storage.