Friday, January 16, 2015

RC Car Replacement Parts

This time the rear A-arms on the RC car broke. I may no longer have access to a milling machine, but now I have a 3D printer. I modified the CAD for the front A-arms and had a set of rear A-arms printing in a few hours. These parts took a mere 5 hours to print. They could have taken less time, but I decided to try printing with the high layer resolution setting (0.025mm per layer). I also tried printing the parts directly on the table. Technically this is frowned upon with this printer, but the parts came out mostly fine. It saved a ton of support material, so I can live with any defects caused by printing directly on the table.

The car looks pretty slick with all these custom parts!

I also added the shock spring mounts. These prevent any binding between the shock and the replacement A-arms.

Unfortunately... I went too hard with the car shortly after making the new parts...

My replacement shock spring mounts took up more space than the originals. This prevented the shock from reaching its end stopper. The end stopper is an internal piece of rubber that prevents the piston from bottoming out and smashing into hard plastic. The car hit a hard landing after a jump and slammed hard plastic into hard plastic. The 3D printer parts can be post cured (which I did). The post curing greatly hardens the plastic, but also makes it more brittle. I won't do that with a future set of A-arms.

I'm starting to learn the material limitations from the 3D printer. The resin cures to be a somewhat brittle plastic. I have been post curing all of my parts (exposing them to additional UV) to make them harder. The parts that come out of the machine can be somewhat flexible and have a soft surface. The gears I've made need to be hardened or they will wear out quickly. This application of the plastic is better soft and slightly weaker. The added flexibility lowers the forces on the parts and prevents shock loading. I'll also look into making certain portions of the A-arm thicker. Holes - especially tapped holes become stress concentrators. These create points where a crack can propagate and make the part considerably weaker.

Tuesday, January 13, 2015

Test - 3D Printed Gears

One of my goals for the 3D Printer was fast and cheap production of gears. Buying plastic gears can be expensive and they often require modifications. This can waste a ton of time. In addition, they might not be the exact number of teeth required for a project. I decided to test the 3D printer and determine what settings and orientations were best for high quality parts.

I started off by printing some 64 pitch gears. I was curious to see if the printer was capable of making these parts. The results were pleasantly surprising! All of these close up shots were taken with my phone. I hacked together a macro lens using a thumb sized magnifier. I taped the lens over my camera and got a 10x zoom! The only down side is there is a fair amount of distortion over the images. However, it reveals details that the camera or my own eyes couldn't see alone.

This is one of my first test prints of a 64 pitch gear. There is some surface roughness that can be seen on the gear, but all of the teeth seem to have a reasonable profile. This gear was printed in the coarsest layer height (0.1mm per layer). The layers don't seem to create "steps" in the teeth.The surface roughness is still pretty good even though the layers are visible

This is a picture that just looked cool. I have no idea what happened with the focus of the camera but it added some neat effects. This gear was printed on the highest layer resolution (0.025mm per layer). Here the layers can't be seen. It just looks slightly opaque.

Here is a side by side comparison between the course and fine layer resolutions (0.1mm and 0.025mm per layer respectively). Both gears seem to have reasonable tooth profiles. It is hard to tell whether there is warpage in the teeth as the lens created considerable distortion in the picture. The lens also created a very shallow depth of field so only portions of the gear are in focus at once.

I also worked on larger gears. The majority of these gears are 32 pitch - 40 tooth gears. I wanted to see how different orientations of the gears in the printer would cause different amounts of warpage on  the overall shape. I also wanted to see how various levels of post curing reduced wear on the gears. I also printed a set of 20 pitch - 25 tooth gears. All of the gears meshed fine, however some warpage in the gears led to noticeable wobble on the shafts. I found increasing the resolution and adding more supports during the printing helped to mostly eliminate these issues. I'll have some projects coming soon that will be built off of these gears. There is also a cluster gear in this photo that contains a timing belt pulley in addition to a 32 pitch gear. This part couldn't be made through traditional machining techniques, so I'm very excited to see what unique structures I can design and build with the 3D printer.

Friday, January 9, 2015

New Project - Cheap Hexapod

I've always wanted to build a Hexapod. They look pretty cool with all of the legs moving in sync. They can also be used as a desktop toy, unlike my RC car, which is basically an outside only toy. The biggest problem with hexapods is they are really expensive. A proper hexapod requires three degrees of freedom for each leg. This ensures that the leg doesn't need to slide on the ground. The three degrees of freedom per leg and six legs require a hexapod to have at least 18 servos. The servo cost adds up fast and had previously discouraged me from building a hexapod. Recently I came across micro sized servos (HXT900 9g servos). These servos cost about three dollars each. Even with 18 servos that still isn't too expensive compared to typical on brand servos that cost about 20 dollars each.

I wanted to build the hexapod around my new 3D printer. The first thing I decided to do was integrate the servo splines into the legs themselves. After a number of test prints I was able to confirm it is possible to create micro size servo splines with my 3D printer (Form1+). I also wanted to keep the design minimalistic and avoid over complicated joints and leg segments.

I bought three servos before I committed to building the hexapod. I printed and assembled one leg to ensure the servos would be strong enough to drive the leg. I also wanted to test the tolerances on the servo splines with multiple servos. This image shows the leg prototype, The only change I made to the leg design was an increase in the depth of my logo.

This was the first "production" run for my 3D printer. I had to make six copies of each leg part as well as the body section. Aside from one print failure (on the main body servo mount plate) everything printed perfectly. I literally couldn't make these parts through machining given the orientations of the splines and the shapes of the parts.

This is the body piece ( the one that printed correctly) as it came off of the printer. There was an update to the printer software that dramatically reduced the material wasted in the support structure for the parts.

Here is the part before support material removal. The supports are removed with wire cutters and then the remaining bumps on the part surface are removed with a file.

The final part looks pretty clean. All of the dimensions seem to be within tolerance for the hexapod. There is some warpage in the part that occurred after the post curing, but it shouldn't prevent the part from being usable.

Each servo requires two 2-56 screws to be threaded into the frame. My hand got pretty tired trying to screw all of the servos into the mounting plate. Each servo fit nicely into the plate.

I decided to try fitting all of the pivots into the lower central support plate. It was fun getting to see the hexapod come together.

This was the first time the hexapod was fully assembled. I knew the wiring would be an issue, but I didn't realize how messy the hexapod would look without proper wire management.

Here is my programming testing setup. I was at my house for the winter break and no longer had access to my 3D printer. I had CNC access but I didn't particularly want to get covered in chips as I usually do when machining. I used a raspberry pi model a+ as the controller. This raspberry pi is the smallest one currently available. I wanted to run the hexpod with linux and python because it makes the programming easier. The hexpod currently connects to a computer over wifi which was really easy to do and should be a convenient way to control the hexapod. The two blue boards are PWM driver boards from adafruit. Each board can drive up to 16 servos ( I needed to drive 18 so I had to get the second board). The boards are controlled with an I2C interface. This means I need a minimal number of pins from the raspberry pi to control all of the servos. It helps to keep the wiring from being a mess.


Here is an early motion test. I programmed the legs to look like they were walking. I still needed to calibrate each servo and complete the actual leg motion program. This shows the hexapod moving its legs near the peak servo speed.

This was the first PCB I milled on a proper milling machine. I've always had access to a dedicated PCB mill, so coming up with my own milling procedure was fun. I drew the circuit board in SolidWorks so it would be easy to generate the G-Code for the CNC. A proper circuit CAD program like eagle probably would have been a better choice.

The PCB I milled was for the hexapod's power supply. This supply is capable of driving up to 20A at 5.5V. I wanted to drive the hexapod with a 7V battery, but the servos and raspberry pi wanted 5V. Each servo doesn't draw very much current, however the combination of all 18 which could all be running at full torque at one time would overwhelm most power supplies. I decided to go with the 20A supply to ensure there would never be a sever voltage drop that could shut down the raspberry pi.

Here is the final hexapod assembly. I ended up milling three plates from polycarbonate to create the electronics mount. The electronics are all held in with zip ties. I would have used screws, but I didn't want to make the standoffs required to mount the electronics with screws.

Unfortunately during testing I managed to break three servos. Shipping the hexapod back from break caused another four servos to die. All of the servos broke at the same internal gear. I haven't been able to finalize testing my leg motion code without a fully functioning set of legs . I chose not to use an existing set of code for the legs because I was excited to create my own algorithm from scratch. I need to rethink my servo choice and look into getting slightly more robust servos. Currently I am looking at using metal gear servos that are around five dollars each. I'm sure the hexapod will be up and running quickly once the new servos are integrated into the design.