For my own benefit, I’m going to try to gather together some of the relevant information, and expand (perhaps to the clarity of mud) on some of it.
First, the drivers. There are two ways to connect your drivers. One is via serial wiring. You use three drivers to control 5 stepper motors. The serial wiring maintains current, therefore maintaining torque. Don’t be fooled by the two Z connectors on some controller boards, they are almost guaranteed to be wired in parallel, which does divide the current, dividing the torque. The second way to connect the drivers is to use five drivers for five motors. But to do that, you have to make sure the firmware is configured for dual axis motors on a per-axis basis (you have to tell it which axes are using dual motors). Not horribly difficult, but can be daunting for someone who has never dealt with the firmware before.
Second, the endstops. I will begin with the bold statement that endstops are not what you think they are in CNC machining. At least, not around here. Especially if you come from the 3D printing world. Before you flip your lid, and regale me with your stories and theories regarding safety and whatnot, give me a chance to explain myself. In 3D printing, the world revolves around the print bed, which is a fixed location (relatively). So the endstops are needed to a) find the origin in a repeatable fashion, and b) ensure that the user doesn’t break things (or more likely, gum things up with a lot of wasted filament) by trying to print a 1:1 model of the USS Sulaco on their Prusa Mini. In the CNC world, everything revolves around your stock, and you set your origin each time you start a job based on where your stock is (this is the other main difference between additive and subtractive processing). It can also be surmised that you’ve been clueful enough to ensure that the job you’re about to run will, in fact, fit within the confines of your stock. We’re not too terribly worried about the machine, because even at full speed, it’s not going to tear itself apart running into the corners. Besides, you should never leave a CNC machine running unattended.
So, with safety off the table, why use endstops on a CNC? Well, to have the machine automatically square itself, and to have the machine find a repeatable world origin. The first can be handy, and the second is very handy if you are doing multiple step jobs (bit changes, two-sided milling, etc.). Note that all of this can and has and is being done without endstops right now.
A couple of things to note about endstops. First, if you are using Marlin, you use the min for the first axis motor, and the max for the second axis motor, and then you have to configure the firmware to use auto-squaring. The dual-endstop firmware from V1 already has this all set up for you. On top of all that, you have to make absolutely sure your endstops are dead-on square. Thankfully, it’s usually easier to micro-adjust your endstops (or the blocks they trigger on) than it is to tweak your entire rig, but auto-squaring is still only as good as you get your endstops. And even then, they can only compensate for so much out-of-squareness. It can’t handle a rig that was put together by a pack of over-caffeinated spider monkeys, but it can help you overcome the normal gaffes of a human doing their earnest best, even if they aren’t familiar with construction projects.
- Series wiring
- Three drivers
- no endstops
- manually squaring (hold the gantry in a corner when turning on)
- manually set origin
- Individual wiring
- Five drivers (typ => X0:X, Y0:Y, Z:Z, X1:E0, Y1:E1)
- option to use endstops for auto-squaring & world origin
- manually set work origin
- Endstops (typ => NC normally closed)
- Xmin:X0, Xmax:X1
- Ymin:Y0, Ymax:Y1
- Zmin:probe (whole other topic), Zmax: Zmax (???)
COMPLETELY IGNORED AFTER INITIAL HOMING/SQUARING
- Softstops are usually enabled, preventing the firmware from moving the gantry into the endstops (the machine size needs to be set in the firmware or in EEPROM)
Now, that’s all how it’s usually done. Around here. You could use endstops as they are “designed” to be used. But there’s not a whole lot of benefit beyond your own mental health (which is not insignificant, I suppose). You can use dual motors on the XY axis without the endstops (either reconfigure the firmware, or jumper the endstops to keep them “closed”). Ultimately, it’s your machine, and you can do with it what you will (we’re kind of like
Satanists Libertarians hippies that way), but the farther afield you go, the less experience the gestalt of the forums can bring to bear on any issues you may encounter.
ps: Check your grub screws. Always check your grub screws.