Thanks for the suggestions, everyone. My friend came to town suddenly yesterday so I had to go out and have a few drinks. Then I was pretty useless when I got home. =)
I’ll get back on this tonight when I get home from work. From here I can describe exactly what I’ve done so far.
I connected the motors properly (2 wires switched on one motor of the two motors in parallel) and soldered all contacts. I covered each solder point in shrink tubing. It will jog on all axis without trouble for any amount of time.
Next I began making endstop switches. I used the same type as are on my Ultimaker and connected them in the same way. 120v5amp/240v3amp (if I remember the values correctly) I threaded the eyelets on the switch with the wire, twisted the wire back onto itself at the base of the wire, and soldered it firm before shrink tubing those connections. I used the two connectors directly under the switch itself, not the third under the open end of the metal lever. On the other end of the endstops I attached 2 wire flat plastic connectors (the kind that connects the power switch to your motherboard in your desktop, I’m not sure of their proper name). I crimped them onto the stripped wire with needle nose pliers and gave a nice little tug to be sure they were firmly connected before sliding them into the plastic housing. I then began connecting them as such: from left to right, Xmin, Xmax, Ymin, Ymax (http://www.element14.com/community/servlet/JiveServlet/showImage/2-97448-190183/RAMPSendstopConboard.jpg) I connect them to the Signal and Negative terminals, leaving the Positive terminal open. I haven’t gotten into the Z axis yet since I want to print a housing so that the endmill can reset itself after a tool change.
After connecting all of the endstops, I began testing them. I jogged to each endstop using the Pronterface UI in Cura. After several successful stops on all the axis, the Xmax side motor begins to reverse/hold position while the Xmin side motor seemingly continues to function properly. Next I tried unplugging both the power and usb for a hard reset. I did not wait a long time. Maybe 15 seconds. Just enough for most electronics to start up fresh. The problem persisted. I tried turning off the power and unplugging the USB again and this time unplugged all the endstops. Again, only a 15 sec or so reset. The problem persisted. I downloaded the Marlin firmware from this site (the first link which seems to be the default). I loaded it into the Arduino IDE and compiled and uploaded it. I made no changes to anything. Everything went back to normal with no endstops installed. I turned everything back off, reattached the endstops and everything happened all over again from working for a short while to malfunctioning on the X-axis Xmax side. A reflash fixes the problem, a short reset does not. Perhaps waiting longer after turning off and unplugging everything would prevent the need for a reflash, I haven’t tested that yet.
I did not count the number of activations required to initiate the bad behavior yet, but that will happen tonight. I plan on counting each activation and the order that it occurs before the fault. If it is happening consistently on a particular number of activations, it is probably a programming problem. If it is random, that does not eliminate a programming error, but it makes it less likely. Alternatively, a problem with the cpu on the Arduino could cause such an error (think 90 Mhz Pentium division error). The reason I doubt it is a wiring problem is that the motors work flawlessly without the endstops. So the motors should be fine, no? The endstop switches are extremely simple devices and are working properly for some time before the fault, so I doubt their wiring is an issue. If they did not work at all, or if their behavior were more erratic I would think it could be wiring, but the fault seems to occur when the spindle is in the middle of the X/Y axis. It doesn’t occur immediately after an endstop activation, but perhaps after a click or two of the jog button. I believe it has occurred after traveling away from a successful Xmax endstop activation. While the X-axis is malfunctioning, the Y and Z axis motors still behave correctly, but now those endstops have begun to malfunction. I’ll double check that Xmax endstop first.
I’ll start documenting everything more thoroughly and I will start the process of elimination once I get home from work.
Does this clear anything up for anyone? Personally I’ve seen a couple of areas to check while writing this that I didn’t see before, namely that xmax endstop. I’ll replace the whole thing if I have to. I have the spare parts.