I went back to the drawing board, researching stepper motors that would draw less power and still have enough torque. I had no idea how much torque I needed, I just wanted the strongest motor I could power.

When I first bought a stepper motor on Amazon, all of the popular ones seemed to run on 12v. This caused a bit of an inconvenience because my Arduino required a 5v power source. I had resigned myself to ordering a step-down converter to get 5v from the 12v power supply. However, this time around I spent a bit more time searching and found a great motor that operated at 5v.

I ordered it and then went to sit at the front door, waiting for it to arrive.

2-day shipping feels like 2-week shipping when you’re itching to complete a project

Approximately 2 eternities later, my Amazon order arrived. I had taken the opportunity to order a protoshield (a small prototyping circuit board that sits on top of the Arduino) along with the replacement motor, so I migrated the spaghetti-mess of wires down to something much more manageable. Since everything now ran at the same voltage, I could power all of it from a spare 5v power supply I had lying around.

Before: spiderweb of breadboarded wires (without Arduino) next to protoshield and mini-breadboard

After: connections neatly organized on the mini-breadboard, attached to the top of the Arduino

I hooked up the stepper motor. Time for the moment of truth!

IT LIVES (and looks even better infinitely-looped)

Don’t touch (trust me)

After letting the motor run for a bit in celebration, I discovered that the main chip on the motor driver gets very hot. Using my thermal camera I checked the temp, and it was running at over 90ºC (slightly above the 85º max operating temp). I happened to have an appropriately-sized heatsink lying around (#engineerlife), which now helps keep the chip cool. I re-ran some of the wiring to isolate the motor power circuit from the Arduino (so there isn’t a ton of current being run through the Arduino unnecessarily).

At this point, there’s only one real challenge left: how do I actually attach a tiny cable to this contraption so that it bends? I went to Lowe’s for some inspiration and returned with some screws, nuts, and T-Plates. Using JB Weld, I attached a lock nut to a stepper motor gear I had previously ordered for my curtain opener build.

JB Weld, pictured with the gear, screw, and lock nuts (pre-weld)

24 hours later (yeah, it takes forever to cure), I attached a T-Plate to the gear, mounted the gear on the motor and zip-tied the cable to the arm of the T so that it would wrap around the center post when the T is rotated.

Kinda like that!

When I got ready to run the tests, I realized that it would be hard to monitor the Arduino output via the serial interface, as I would have to leave it tethered to my laptop in order to do so. Instead, I fished an LCD screen out of one of my parts boxes (#engineerlife) and tried to remember how to hook it up.

Front/Back. Does anyone have a pinout diagram for this thing?

I was able to find the relevant chip diagrams via Google and trace most of the pins back to the chips. There was one pin that I couldn’t figure out, but since I still had the old circuit board from the class where this was used (naturally), I was able to discover that it was contrast voltage. Arduino has a library for easy LCD interaction, so a few lines of code later I had a nice display with the number of bends and seconds elapsed.

Out of an abundance of caution, I decided to run the first overnight test on the hearth of my fireplace. I added some bumper “dots” to dampen motor vibration, wedged the stepper between a few old textbooks to keep it in place, and set up my FauxPro (Gitup Git2 action camera) to take snapshots throughout the test (to monitor for issues). I taped the other end of the cable to a textbook and let BendyBot go to town.

Look at the bend in that cable!

When it was all said and done, the Mini-USB cable I chose to test first was bent over 17,000 times by BendyBot. The only issue the test setup encountered was an integer overflow in my time-keeping code (oops), which only affected the display of seconds elapsed.

As for the cable itself, it’s in great shape! There’s no deformation of the sheath and the cable still functions well.