Hacker News new | ask | show | jobs
by TaylorAlexander 2322 days ago
I really like this presentation! It’s wonderful.

I don’t mean to hijack but I thought this would be an appropriate place to share a photo album of the 3D printed planetary gears in my open source robot: https://imgur.com/gallery/GqXD2Zj

I’ve been 3D printing gears for some years now and I want to spread the word that 3D printed gears actually work really well! The gears in the image album above have been operating on that robot for over a year now and they’re showing no real signs of wear.

It can be really fun to get a 3D printer and design a little gear assembly. Once you’re comfortable with gears you can use cheap motors to make something that moves. Find a way to drive it with Python from a raspberry pi and you’re on your way to making a robot. :)

3 comments

That project looks great! I'm very tempted to start building this because of how good it looks, but I know it would take lots of time and effort, even with the designs already available.

As an aside, would something like https://www.makerfol.io/ be useful for your build log? I see many people using imgur for this but it's always struck me as suboptimal.

Thank you! It’s certainly an involved project. I recommend starting by building one motor and gearbox assembly and getting control working from python. If you can get that far you can build the rest!

And the website you linked looks nice. There is also hackster.io and hackaday.io. While those sites are fine, it becomes one more thing to update. I prefer imgur for simple photo albums as that integrates well with reddit, my primary promotional place. Imgur actually works really well for me there. And then my real build updates are on my YouTube channel. And I have my own website where I try to throw everything.

So I end up trying to funnel people to my website and just using whatever media hosting makes sense for that particular media.

That makes sense, thanks! Regarding the build, I didn't see any information regarding the control system on the material I saw, but I probably wouldn't want to make it as autonomous as you have. I'd probably connect an ESP8266 as the controller and a receiver for my RC radio and control it that way.

Out of curiosity, is there more detailed information about the controller somewhere?

Well do you mean the motor controller, the control computer, or the remote control?

I’ve got some info on the motor controllers I’m using: https://reboot.love/t/vesc-mods-for-robotics-use/

The control computer is a raspberry pi running python. It looks like I’ve not committed the code in a while, but this repo may be helpful: https://github.com/tlalexander/rover_control

Though for the above, I’ve recently found that I can use velocity control on the VESC, which is easier than doing velocity control on the Pi as I had done in that repo.

For the wireless remote control I use, it’s my own design and they’re not for sale or well documented. I’d recommend any wireless controller that you can read in python.

The software should be pretty simple now that I’ve switched to velocity control mode. You just need to read a joystick and convert that to velocity commands for each VESC. Technically even the VESCs could do that onboard if you wanted to modify the firmware.

But if you can drive the VESC from an esp32 that would work too.

Oh huh, that's pretty involved, thanks. Can I ask why you rolled your own instead of using off the shelf RC components, like what is used in RC cars, for example? For the remote control and ESC, at least, it seems like it would be simpler.
Well for the remote control, I already had the one I used. I started a wireless electronics company in 2013 (and eventually failed), so it’s a point of pride to use my own remote. But any RC remote would work.

For the ESC it’s more complicated. The VESC is off the shelf, but it has a feature most ESCs don’t. The VESC supports encoders. The use of an encoder is very important to get full motor torque on the brushless motors even at zero velocity. This allows Rover to slow down or stop even on a slope. The encoder is also used for precise velocity control, which keeps all the wheels spinning in concert. Additionally, the encoder data is sent up the CAN bus to the raspberry pi so my program knows wheel velocities.

You could certainly build a rover without encoders and with a regular ESC, but it may have trouble starting from a standstill and it may not always drive in a straight line if the wheel velocities are not all the same. Another thing to note is that if you spin the motors really fast you’d probably melt the gearboxes. I’m moving the motors pretty slowly compared to their maximum speed. But a regular ESC might work fine! I’ve not tried it.

Hey, nice project :)

A few friends were experimenting with 3D-printed gears for their robots, I've advised to switch to helical gears as these should make less noise, and less prone to wear (since the load never happens on a single teeth, but is transfered progressively). Of course, that creates axial load, which might or might not be an issue (and countered with a second cog), and complexify assembly, especially for planetary gears. But if you try (or already have) them out, let me know.

On our part, the test have proved successful, but we're not looking at tens of kilometers, and mostly print PLA.

To clarify why they aren't used more, their production process is traditionally more complex, but that doesn't happen with additive manufacturing. I'd also guess that the teeth shape makes them more robust than conventional filling, and more evenly distributes force on the layer joints.

Thanks! I’ve used helical gears in some of my projects. i didn’t have a specific rationale for not using them in Rover, except it’s more CAD work in my particular CAD program. But they can be nice! Rovers gears certainly do make some noise.
Which material are you using the print the gears?
PETG. Specifically it would either be Hatchbox PETG or PushPlastic PETG.
I'm very new into 3D printing scene, so far only been printed with PLA.

Also have some ideas that includes some motorised parts with gears. Do you think PLA is a bad choice for this?

For gears in general PLA is fine. If they have a lot of friction they will heat up and that’s where the PLA could fail. But PETG is very easy to print with! You’d need to adjust nozzle and bed temp but it prints very nicely. :)

PLA is fine to start with though. If you see failures you can switch.

Have you considered fibre reinforced plastic? I'm not an expert but I'm curious if that's a good option.
I’ve seen fiberglass reinforced nylon gears used with success in commercial injection molded gearboxes. It can definitely help by increasing gear stiffness.

However 3D printing with fiberglass causes rapid nozzle wear, and recently people are saying that fiberglass reinforced 3D printing filaments represent a human hazard.

Since I’ve managed to get my gears to work without reinforcement, I’ve not tried it.

One thing I do with printed gears is make the gear teeth much larger than would be strictly needed in an injection molded solution. This lets me deal with reduced material performance compared to injection molding.

You might be interested in resin casting technique. It gives amazing results. Lcamtuf wrote a whole series about this:

http://lcamtuf.coredump.cx/gcnc/ch1/

and very nice article for make zine:

https://makezine.com/2014/03/21/resin-casting-going-from-cad...

Have printed many spools of CF and glass filled nylons using nozzles with tips made from ruby.

Check out “Hardcore Ruby” nozzles, now there are even diamond nozzles.

I print with 0.25mm nozzle in nylon, fine enough for Module=1.5 teeth.

A 0.15mm nozzle would make an acceptable Module=1 gear I would guess.

Yes I’ve seen ruby nozzles. Expensive though.

I actually print with a 1.2mm nozzle as I want to print big parts. I’ve even got the e3d Supervolcano hot end. :)