As I discussed in my previous post, work is being done towards creating an OpenSCAD parametric version of several key complicated assemblies within the Gemini 3D printer.
Things are going well – I have designed a basic syntax and part numbering system to keep assemblies organized and I have created the basis for a hardware utility library.
After recreating the current X-Carriage components in OpenSCAD, I performed some test prints of the parts to ensure the math was correct and the parts fit as intended.

While working on the new design I finally had to wrap my head around where the heck I was going to mount the X axis end-stop switch.
So much of my time was spent drawing and then redrawing concepts for the X-Carriage and Hotend-Assembly in Sketchup, I had really just put off and avoided the end-stop question.
The one thing that I had decided for certain was that the end-stop switch would be mounted on the X-Carriage and move with it in order to run the wiring through the whip harness rather than create another whip on the Y axis.
The trouble really revolved around two factors – where to even fit the switch with so many other bits of electronics built into the X-Carriage and Hotend-Assembly. It’s a pretty busy part with lots of external bits bolted and clamped into it – space is at a premium and the flow of heated air around the plastic is critical.
The second factor was the ability to make it adjustable – I was thinking along the lines that all axis have a simple thumb screw in an accessible location to allow for fine tuning of the home position.

This was becoming quite the brain teaser for me until I realized this afternoon that I could entirely eliminate the adjustment controls from the hardware and perform the adjustment with software.
I then realized I could do the same with the Y axis as well and both end-stops become limit-switches preventing a crash and allowing for homing of the machine.
The provisioning process is fairly simple – home the print head (the Gemini homes to MAX) and then measure the distance between the 300,300 point on the print bed and the primary nozzle in both the X and Y directions. These two numbers can be input into the firmware as a relative offset value. This process could be quickly repeated until an accurate value was determined through calibration.

When the print starts, it homes the print head and then print bed and then starts the print on the correct location on the print bed using the calibrated offset.

I believe it makes sense to still use a manual home adjustment on the Z axis because the print bed height is more likely to be variable. Changes in print bed coverings and materials can create large variances for the Z axis homing location. It will be less time consuming to use a spring-loaded thumb-screw rather than the software to make these frequent tuning changes.

For the X-Carriage end-stop, I am now planning to mount it below the belt line at the back of the X-Carriage. The switch holder will be integrated into the belt clamp component which is bolted to the X-Carriage base component with long M4 bolts.