New DIY device. Swapping servos for stepper

I’m pursuing a major in robotics and I’ve had the desire to create a DIY device for some time now. For budget’s sake, I’m using a 5:1 stepper motor, linear rails, and a lead screw, so my component choice is a bit unconventional.

As for the wiring and brains, I plan to use an Arduino and an ESP32, along with some ultra-silent TMC2209 stepper motor drivers. Those will go in a separate enclosure that will provide me with constant power, so no batteries! My plan is to use a 2-meter long coiled cable (4 cores and 20 AWG) to connect the handheld to the enclosure.

Capture

I intend to create a holder for every stroker, based on its size, that attaches to the two pertruding arms on the main assembly. I’m going to make it as hot-swappable as I can.

The assembly can be shorter by using different linear rails and lead screws, even though it’s around 30CM long. I haven’t come up with an enclosure yet as I’m still considering different options for components.

Do you guys have any advice on how to proceed or on how to confront any challenges ahead? I’m a bit worried about trying to adapt scripts to work with arduino.

Thanks.

5 Likes

Just for context, I’m aiming for the final result to look similar to the handy, wish me luck!

4 Likes

What will be unique about it? or what will it be able to do that others cant, or what feature are you targeting?

Check out the OSSM. The github is /KinkyMakers/OSSM-hardware it is MIT licensed :wink:

1 Like

Using a linear rail, lead screw and bearing at the end of the lead screw will over-constrain the mechanism and cause binding and/or excessive wear.

A lead screw is something you use when you need high gearing ratio. Combining a 5:1 reduction gear with a lead screw kinda defeats the purpose, just use a timing belt with appropriate pulley.

Open-loop steppers have very limited performance with dynamic loads like this scenario. Use a proper servo, such as IHSV57 or 57AIM30 will result in much higher performance, less frustration and probably a lot less coding time.

Controlling arduino toys with funscripts is easy, implement the T-Code protocol and use multifunplayer.