Gemini Revision 3 Build Progress

After much revision to the X-Carriage and it’s related electronics and hardware mounts I finally have something I believe is a viable prototype.
This leads to the great fun of many hours of wiring and testing the electronics.

Aside from an issue with the X axis endstop connection everything seems to be working as designed. The corexy movement is working well and the hotends are both heating correctly, with automated cooling fan turning on if either hotend gets warm enough to warrant it.
A few more parts need to be designed for the filament pusher and the heated bed platform has yet to be mounted to the Z axis, but the third revision design is getting close to being a 3D printer again!

Rather than tease with more OpenSCAD or Maxwell renderings, I thought I would show a photo of the actual prototype, partially assembled and mostly wired up:

IMG_4025

The modular design of the X-Carriage shows off a couple of it’s benefits for fixing the X axis endstop. Some testing with the multimeter indicated that the switch was working fine and that the problem was somewhere within the length of wiring from the microswitch and it’s quick connect.
Because the carriage assembly is modular I was able to remove the portion of the carriage that holds the switch and not have to remove all of the other components from the printer. Further examination revealed that one of the wires had broken at the solder connection, likely due to repeated movement during various assembly tests. Quick bit of soldering ought to rectify the problem.

Here is what the x-carriage looks like with that portion removed – note that the belts remain clamped in place and tensioned while everything is apart which is a real time saver:

IMG_4026

Gemini Project Update of Sorts

In my last post I described many changes and goals I was seeking to achieve with a redesign of the X-Carriage for the Gemini 3D printer.
Admittedly this process has taken much longer than I ever anticipated, which has been disappointing.

After the first working prototype of the Gemini that I created in early 2015, I figured it would take me at most a couple of months to get everything optimized and a new revision of the 3D printer running and printing.
Little did I know how much I had really tasked myself with and the learning curve that I would have to experience. Redesigning the corexy mechanism and the frame took relatively little time, I figured I was well on my way to a more refined machine.

Using SketchUp for the design turned out to be a major time suck for the project. I had to go through a great number of concepts and revisions to get all the electronics to fit into the smaller space I had allowed for when I redesigned the corexy mechanism and frame layout.
Making dimensional and part-placement changes with SketchUp entails a ridiculous investment in time, manually editing vertexes and shapes to compensate for SketchUp’s primitive modeller. It’s not that you cannot make complex models in the program so much as the amount of extra work that is required to make those objects exportable as manifold STL files. At some level of complexity it becomes nearly impossible, and I found that I could make objects mostly manifold and then run them through Netfabb to fix the remaining glitches. Thankfully I’ve been doing most of my slicing with Cura and it’s fairly good at fixing most minor STL file glitches. Slic3r, despite it’s major improvements over the years, is still generally inadequate at compensating for the most minor of manifold issues within STL files and more often than not crashes entirely when loading models exported from SketchUp.

Over the summer I got busy with other projects and also suffered from some health issues which prevented me from making any major progress on this particular design. Too be honest, I also got fed up with SketchUp and the overwhelmed with the challenges of coming up with a working model for the X-Carriage in it.
I took many months off to learn OpenSCAD and make some items with my 3D printers which were not other 3D printers.

By October 2015 I thought I was ready to start back at it – and I started where I left off in early Summer and recreated some of the core portions that did work in OpenSCAD. Once I got the basics going, I then took another break. I was actually fairly stuck and temporarily out of ideas. Work and health issues took precedence, my employing company was acquired and there has been a transition period ongoing and I was in nearly constant pain from RSI. I won’t focus too much on the RSI, but suffice to say I invested my time and money into changing many aspects of my ergonomics and lifestyle to heal from years of damaging behaviour and I am happy to say that I’m am mostly pain free and able to once again focus some time on this project.

As the fall season transition into Winter, I had managed to build a modular parametric code framework for the X-Carriage in OpenSCAD. I took advantage of a couple of free days during the Christmas holiday season to pound out some rough test pieces and print them to get a feel for how it might all work together and how to best compensate for the absolute math of OpenSCAD dimensions and the reality of extruded plastic. I got side tracked by some fanciful designs before I managed to reign myself back to reality and come up with the modular compact carriage concept I’ve detailed in the past few posts.

I am happy to say that today marks a milestone where I have all the electronics mounted within a printed assembly and mounted to the robot. I see many points of the models that I would like to improve on aesthetically and some minor modifications for part fit and placement, but it’s together well enough to start wiring things up to the Smoothieboard and start some movement and heating tests later today.

Based on the current design I can now finalize the placement for the build platform, relative to the nozzles, and create the final missing part or two for the filament pushers. After the trials of the past year, I loath to put a date on when I expect the Gemini revision 3 to be actually printing objects – but I think it might be safe to say “soon”.

Gemini Modular Compact X Carriage Design

After much experimenting with OpenSCAD for the X-Carriage I have quickly learned how powerful a tool it can be for developing complex parts.
I was coming up with some interesting concepts for wrapping extruded plastic around the various hardware and electronic components over the holidays which gave me some inspiration towards how best to create the X-Carriage and hotend assembly for the Gemini 3D printer.

The first aspect of the new design is a slight expansion in the width of the overall carriage assembly. My goal was to have the x-axis endstop attached to the carriage so I created some quick test parts to determine a comfortable amount of clearance for everything.
The x-axis will home to MAX on the right side of the printer. The endstop microswitch that is mounted on the carriage will trigger when it meets the x-end/y-carriage component on a conveniently located flat edge already existing on the SketchUp designed component.
The distance between the left hotend nozzle and the right edge of the build platform when the carriage is homed to MAX can be measured and then configured in the firmware – more on this later.
Most importantly with this configuration is that the GT2 timing belt clamps are not too close to the idler pulleys in order to avoid over stressing the drive belts.

The secondary goal was to have both hotends parked outside of the build area when homed. My reasoning for this behaviour is that bowden style extruders have a greater tendency to ooze plastic while idle than direct drive systems. Dual material 3D printing with both hotends side-by-side in this manner has the caveat that at any given point during the print there is always an idle hotend moving around build area and over the object.
To mitigate this there are two strategies that can be both employed if the hotends can move outside of the build area. The first is that the idle extruder can perform a filament retraction and then lower the hotend temperature several degrees. Changing materials requires performing the same procedure on the other hotend and then raising the temperature of the previously idle hotend to extrusion temperatures. The filament is then extruded a certain length to prime the hotend for printing immediately.
The second strategy is to have a brush or similar wiping point mounted, necessarily, outside of the build area. The carriage will pass over this point and wipe any excess filament off the nozzle tip before returning to the build area.

Finally, it would be best is the design was also easy to disassemble to allow for easy maintenance, modification and customization. I designed a working model for mounting a high CFM 24v DC blower fan that would direct the air as close to the print as possible while minimizing the airflow directed at the hotend heating block. I realized that with OpenSCAD it would be easy to add some variables to the code which would allow me to adjust the fan location, relative to the carriage, and have the output vents remain in the same position.
This led me to centre the blower fan at its middle, rather than the output channel. By switching from a three bolt assembly for the carriage to a four bolt design I was able to separate the blower casing from the linear rail carriage mount portion of the carriage. These two components are held in place by a front and rear bracket with space to add items along the bolts at the front and the back.
The benefit of this is that parts can easily be replaced by loosening four M4 bolts a few millimetres and then pulling them out of the front of the carriage. If the x-axis linear rail assembly needs to be changed for something taller, such as an L type profile, changing a few variables in the script and replacing the brackets and the hotend assembly are all that is required.

I have produced an incomplete set of test components that achieves all of these goals and fits in the available space. Much work is needed to be done still, and not all parts are shown – but this mockup rendering should give an idea how these ideas are starting to come together.

XC Render Mockup

 

OpenSCAD Mockup of Gemini X-Carriage

Using OpenSCAD to recreate – and hopefully finally finish – the X-Carriage design has been proving beneficial.
It’s now much easier to programatically place the parts in a mockup of the assemblies and see how they’ll fit – and most importantly, I can make parametric adjustments to the placing and have the design automatically reshape itself to match.
X-Carriage Mockup OpenSCAD

As you will see in the above rendered view of the X-Carriage, it’s starting to get pretty busy with components.
The goal here is to get everything to fit in as small a space as possible but still end up with printable parts.
What this partly entails is that components cannot be so close together that the ensuing printed part has thin walls or impossible overhangs
The belt clamp shown below is already pretty detailed with small design elements, these can be tricky for a 3D printer, so I’ve had to do some test prints to verify it is actually printable (which it is.)

X-Carriage Mockup rear

– There are still several mounting bolts not included within the rendered design and modules need to be written for rendering metric nuts and carving out insertion points for them.
– A 50mm blower fan needs to be somehow squeezed into this assembly as well, in order for the printer to also support print cooling for plastics like PLA.
– A more accurate (and parametric) version of the pneumatic pushfit connector needs to be drawn to give a better concept of the size and shape of the part.
– As described in my previous post regarding the X and Y axis end-stops, the X end-stop is shown in it’s approximate new location, the parts will need to be extended to have mount points for this switch.

I have plenty of ideas for how the cover for this assembly can be made, however they may change once all the hardware is accommodated for and the resulting shape can be determined.

 

Gemini 3D Printer End Stops

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.

Project Overhaul and Reorganization – Gemini 3D Printer

While reviewing certain aspects of the Revision 2 design for the Gemini 3D Printer a few minor design issues have come to light.
Unfortunately for this project, I was busy doing other things over the course of the Summer and needed to take a break from this machine.

The Devil is in the details they say and some of the design semantics of the X Carriage and Hotend Assembly have gone through many stages to evolve to their current state. While the modular design of the current components is pretty decent, I feel it can be made more elegant and functional with a re-working of how it assembles to the printer.

I spent a chunk of time over the past few months learning how to make complex parts within OpenSCAD to allow for easier revisions of designs and parametric settings to allow for hardware variations. This new skill will be used with the redesign of the Gemini X-Carriage and Hotend-Assembly.

The source and printable parts are being reorganized into sub-system components and a private JIRA instance is being created for task tracking and documentation. These steps will bring a more orderly development approach to the creation process.

Since the primary goal of this project is for me to have a machine with the size and capabilities of the Gemini, some of the focus will be changing in terms of the design scope for this prototype.

Enough will be changing that I suspect that this will become Revision 3 of the Gemini 3D Printer and Revision 2 will become just a stepping stone from the initial proof of concept prototype to a more complete system.