Saturday, January 28, 2017

Preventing Engine Hydrolock






 I was contacted by a friend on behalf of a company that sells performance parts for ATVs and dirt bikes about a product that they had hoped I could design for them. Always up for an interesting design challenge, I happily agreed.
The task at hand
My goal was to build a device that would prevent water from entering the running engine of an ATV in the event that the vehicle was flipped over or submerged in deep water or mud. If water is allowed to be drawn into the running engine through the intake manifold a hydrolock condition will result and the engine will likely be destroyed. To prevent a hydrolock, I would need to detect the presents of water in the intake manifold and block it's path to the combustion chamber. I would also need a way to shut down the engine when water is detected. To accomplish this, I decided to use a microcontroller to read data from a sensor and then actuate a servo. When the microcontroller detects water in the system, it sends a signal to the servo to close the valve. While the valve is closing, another signal is sent to a  relay that grounds the ignition module of the engine causing it to stop.  These simple methods meant that I could use mostly off the shelf components for the electronics and 3D print the main housing. I did, however have to build a custom control board to mount the microcontroller and the passive components to. Below is a few images and a video of the control board being milled in my CNC.


+

Performance

 Ideally, you would like a device of this nature not to interfere with the natural operation of the engine. More specifically, it can't restrict or disrupt the path of fresh air that the engine needs to be able to run. The easier an engine breathes, the more efficient it operates. I setup a simple air flow simulation in Solidworks to see if there would be any noticeable disturbances in the way that air flowed through the device and the results are promising. As you can see from the video, the air moves at a fairly constant speed without any turbulence or vortices.  


Unforeseen Issues
In testing the prototype, I found that an unacceptably large force was applied to the servo when the valve was closing. The vacuum being drawn from the engine wanted to close the valve door faster than the servo could complete it's stroke. To address this, I designed a spring loaded mechanism into the valve door linkage.  This allowed the door to close rapidly and the servo to catch up afterword.
Spring loaded linkage assembly

For detecting the presents of water, I designed a type of electrical continuity sensor. An electrical connection was formed between two metal screens when water flowed between them. This had the advantage of being able to tune the devices sensitivity; I didn't want it to activate over just a few drops of water, only when it was being flooded. This had a drawback in that it also picked up stray RF interference, one could see the spikes from looking at the output data. Sometimes when you put your hand near the sensor, it would pick up the electrical signal from your body and activate the valve. I'll admit, this was kind of amusing at first, you would reach to pick up the device and just before your hand got close enough to touch it, suddenly it would activate and startle you. I decided to fix this in software by implementing a smoothing algorithm that compared readings and averaged samples.  

Conclusion

Overall, the device works great. It satisfies all of the design requirements including detection, activation and engine stop. The only area that I feel could use some more work would be the valve door seal. Currently, a section of rubber surgical tubing is used as a sealing gasket between the valve door and the valve seat. The tubing is glued around the inside perimeter of the door and compresses and conforms to the valve seat when the door is closed. An potential issue is the adhesive bond between the ABS plastic door and the rubber seal. These two materials require a type of adhesive that is not locally available. The only adhesive that I have had any success with is Superglue  (cyanoacrylate) but I have doubts about it's long term durability. The best solution would be an extruded rubber seal that has had it's ends joined together but that would not be practical for a prototype.

Wednesday, November 16, 2016

Update





Update: Single Motor Dual Extruder

My new extruder design has been working great. It has almost doubled the speed of my printer. Below 50 mm/s the quality looks about the same as my old extruder but crank up the speed and it really starts to shine. With my old design, I was capped at about 55 mm/s due to the vibrations of slinging two stepper motors around the X/Y plane. Now, I print by default at 80 or 90 mm/s and it looks amazing. I could push it faster but my axis motors will start to overheat. One problem that I did encounter when printing at higher speeds and layer height greater than 0.15mm was under extrusion. Even with 260 deg. C nozzle temps, I just couldn't seem to push enough plastic out of the hot end, I would end up with striped filament a caked up drive wheel. I eventually tracked this down to the apparently counterfeit EDv6 hot ends that I got off EBay. Most of the parts of these hot ends were discarded or re-purposed and the issue was ultimately remedied by installing a set of nozzles made by Micro Swiss. Their coated nozzles are outstanding and will change your life if you are under extruding.




Component Selection
As you can see from the videos and the diagrams, most of the parts of the new extruder design are printed in ABS but there are a few off the shelf items. The most important one of note, would be the servo that switches the filament. I started out with a standard servo that I had picked up from Radio Shack (yes, these stores still exist) but I soon discovered that for anything other than testing, it just wasn't strong enough. I think that it had a torque rating of about 3 Kg.cm and that was ok to test the movement concept and the throw angle but not enough to generate the needed clamping force between the filament and the drive wheel. After burning out this servo and a few others that I had laying around, I settled on an HD Power LF13MG servo and this worked out well. I chose this servo for a few reasons, the first being it's high torque rating. At 13 Kg, it is a beast and the second being that it is digital. Using a digital servo is important because most home built 3D printers are an absolute mess of signal noise. Even if your printer functions as expected, you still are likely to have very noisy ground lines. This will make an analog servo jitter and dance and fail to maintain the drive wheel contact pressure.  Another factor it keep in mind when you car selecting your components is their max working temperature. Since these will be living within your build chamber, they need to be able to withstand the heat. I like to keep my chamber between 50 and 60 deg. C but most servos don't like to stay this hot for long periods of time. My solution to this was to add a heat sink. The main body of the HD Power LF13MG is made of aluminum so adding heat sinks to both sides was very easy and the main extruder fan also blows air over them.

Firmware Modification For Marlin
Changing the firmware so that this extruder system can be used was pretty easy, most of the work had been done and is outlined in a pdf from thingverse. Unfortunately, the code demonstrated in the file didn't work for me but it gave me a starting point. Eventually I would like to make a real time menu option for adjusting the servo position during a print.



Wednesday, February 24, 2016

Dual Extruder Using a Single Motor



Anybody that has ever built or bought a 3d printer can tell you, one of the best upgrades or capabilities it can have is known as duel extrusion. Simply put, duel extrusion is the ability to use more than one material or color in a single print. This is useful when you are designing a part that has hidden internal passages that require support. Having the ability to selectively dissolve part of your print makes creating internal features easy.
The main reason for a printer not to have dual extrusion is cost. Having extra extruders comes with the unwanted side effect of a heavier tool head. More weight in the moving head means that the overall structure of the machine has to be beefed upped to handle the added inertia and this can get expensive.
One solution to this is to drive both lines of filament with the same motor and have some kind of servo mechanism change the position of the desired filament to be extruded. Others have had this idea and I can think of two working examples of it but both of them I consider to be overly complex.  




As you can see from the animation above, a single stepper motor is used to drive both lines of filament. A hobby servo controls filament tension. An important detail to note is that the stepper motors direction to advance either line of filament is the same, clockwise. The only difference is the position of the servo that dictates which filament is pressed against the drive wheel and therefore advanced. This becomes important when we start talking about machine firmware. Marlin and Repetier both come with M-code servo control support  so no firmware modification is needed. If anybody is interested in building one and would like to see the design files, let me know and I will send them. I plan on releasing this to open source when I finish it.



Saturday, January 9, 2016

A look at my tool chain

I have decided to give people a look into the tool chain that I use. When I am showing somebody a part or a product that I have created, I am often asked how I made it. My typical snarky reply of  "with the power of my mind..." doesn't always satisfy the inquiring minds so I thought I would give some details. What will follow is a brief list and description of the software packages and physical manufacture process that I often use to go from an idea in my head to a part in my hand. Today, we will be building the lower bearing support for the Z axis of my 3d printer. This is the part that holds the bearing that one end of the ballscrew slides into. The bearing helps to align the ballscrew and keep it parallel to the two linear guide rods that the Z axis rides on.



 


This is a shot of the part in the design software that I use called Solidworks. At this stage, I decide how the part is going to look and how it will function. When I am satisfied that my part will do what I need it to, I save and export the file in an (*.igs) format for use in Mastercam.



 Mastercam is different than Solidworks in that here is where you specify how the part will be machined in real life. This program allows you to generate your tool paths and  select which size of end mill will be used to cut the various features of the part. This is also where the g-code is produced that the CNC mill will run. The g-code file is a list of instruction that tells mill how and when to physically move in order to cut away the unwanted material and ultimately leave you with your finished part. 




This is the part while it is being produced. The rotating end mill will follow a predetermined path that I defined in Mastercam and will remove excess stock. Normally while cutting aluminum, you would want to have some kind of coolant or lubrication flowing over the part and cutting tool in order to keep them cool and to give a better surface finish but my personal machine that you see here doesn't have that capability yet. Currently, I just spray the part with cutting oil and I get good enough results for my purposes.  I am in the process of adding an automated cooling system but that will be for another post.



The cutting finished after about 2 hours (very slow compared to a large production cnc) and the part is ready to be found among the chips.











Here is the finished part laying on top of the piece of stock it was cut from.