by rocketwiz » Wed Jan 02, 2013 11:12 am
Finally got to the stage of testing the end stops. It's taken a while to set this up mechanically, especially trying to true up all the axes.
Just a few quick thoughts on building the ord bot before I get to my question which hopefully will help new builders. Most of the build was relatively painless by following the assembly pages of the wiki. I will say that the alternative method for assembling the Z gantry is a better way to ensure all the axes are perpendicular to each other.
Then I got the to the z axis drive. Luckily my threaded rods were fairly but not perfectly straight, and I had a lot of difficulty in ensuring everything was lined up straight. My first attempt ended up stalling the motors as the rod just jammed at one point. Also the holes in the coupler are just slightly larger than the rods and therefore when the set screws are tightened the rods can end up out of whack.
And the rods don't really hang straight down when threaded into the nut blocks, which made the usual method of lining up the rods above the steppers pretty difficult. This worked for me: first I wrapped a single layer of kapton around each rod end, insert into the coupler and then fiddle with it while tightening the set screws to ensure that the rods rotate as true as possible (at this stage it was all hooked up to power to turn the steppers). The final stage was to line up the nut blocks (already threaded onto the rods) with the carriage plate holes (moving the stepper location if required), lightly bolt everything down and run the steppers to align all the bits and then tighten down (per Bart's instructions).
As I was using only 3 limit switches I disabled the max position endstops in Marlin (pins.h) by changing the relevant pin assignments to -1. Change this: #define X_MAX_PIN -1 and the same for Y and Z. For some reason the code refused to compile when I changed the max z endstop pin assignment (I was using arduino v1.01, updated to 1.03 but no go either - finally went back to v1.0 and then it compiled). Also the limit switch behaviour needed to be changed in configuration.h as I was using the switches in NC configuration (I wasn't about to rewire the switches) - change this: const bool X_ENDSTOPS_INVERTING = false and similarly for Y and Z. If you use NC endstops you will need to disable the max endstop positions (or short out the endstop input pins on the ramps board) otherwise Marlin will always read the status of these endstops as triggered.
At this stage I still have to test/calibrate the extruder and install the heated bed.
But first a quick question on endstop behaviour. I'm only testing the z axis at the moment but it looks like when the endstop is triggered, the steppers will stop and reverse about a quarter turn. How do you then reposition the extruder at the point when the endstop is triggered to get to 0,0,0?