Dumpster Diving Nets 100 Arduino-powered Motor Controllers

Never one to pass up the recycle pile at work, [Scott] usually doesn’t find much. A few old hard drives, maybe a ancient laptop every once in a while, but on very rare occasions he finds something actually useful. This latest haul is a gaggle of stepper motor drivers that, with a bit of work, can be reverse engineered and turned into an Arduino.

After prying into one of the plastic-enclosed boards, [Scott] found a LED, a quartet of transistors for powering the motor, and an ATMega168 microcontroller. Interestingly, most of the pins for the 168 were already broken out on the DA15 connector on each controller. The only thing needed was to build a programmer to dump the Arduino bootloader onto these little widgets.

After much trial and error (and building a new programming interface), [Scott] now has 100 Arduinos with a single stepper motor controller built in. He’s already made a toy light cycle rotate on a small stepper (after the break) and blink a LED, but with this many widgets, we’re wondering what crazy contraption [Scott] will come up with.

[youtube=http://www.youtube.com/watch?v=kqDJ0wmGLCY&w=470]

47 thoughts on “Dumpster Diving Nets 100 Arduino-powered Motor Controllers

      1. Well I read that! I mean putting a capacitor in series with the DC power is the same effect as simply disconnecting the line. After all it’s a ground line it shouldn’t ever change!

        I simply don’t understand why you’d put a capacitor there instead of a jumper – except that’d leave ground floating (mind you it’ll still float here). Just “because I read it on the internet and it magically works” seems a little dodgy to me – I’d rather work out why.

    1. I had just heard of doing either method (resistor to VCC, or capacitor to ground) would disable the reset from the FTDI interface to the host Arduino. I had tried one of the two suggested solutions and didn’t have luck with it, and the other solution other people had no luck with. In retrospect, and I’ll experiment with this, just the resistor to VCC should be enough. I just put them both there, and it works for me. I’m no EE, in fact, admittedly, I failed an EE class back in college, but this works for me reliably 100% of the time. Perhaps one of you out there that are smarter than me can explain why? ;)

      1. Again I can’t really see why a resistor in series with VCC should do it either – except in a scenario where you get a voltage divider setup (with the added resistor being part of it and chip internals the other half) dropping the voltage below some threshold.

        It’s not like either of these “solutions” pulls pins high or low (that weren’t previously so).

        I won’t lie I haven’t looked beyond the article and don’t fully understand how this is wired to the MCU (or indeed I don’t actually personally know the MCU) but this has a ring of “it magically works” to me that as an EE grad (sadly no longer in the field) I automatically dislike ;)

      2. All it needs to do is prevent the reset pulse (i don’t remember whether it’s active low or high) from affecting the micro. If i could, i would have just intercepted the line to the micro from the FTDI, but the Arduino I was using has these two components already on the board.

    2. It’s a simple reset “hold” circuit, exactly the same as detailed in the AVR docs to hold an AVR in reset long enough for VCC to stabilize or to ensure reset is held low for the recommended minimum time. The OP is using a jumper to optionally tie it to reset.

      The schematic looks a little strange because we’re probably not used to seeing it laid out that way.

      1. If you’re looking in the datasheet, the resistor is a pullup resistor, to keep the pin held high. The cap you can think of as a push up cap. (it keeps the voltage on the pin high, but it can be pulled low) There should be a resistor in series with the pin between that vcc > res > cap > gnd string, forming a T. I just looked at this in a pic datasheet earlier today…

        Anyway, all of that is pullup mechanics under normal circumstances. The programmer(via the ftdi or 2nd avr chip) is trying to pull that line low, so you have to beat the programmer at pulling it high. Since the programmer is designed to pull it low under the normal conditions, you need something much stronger under these conditions.

        Here’s the arduino link about it: http://www.arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection

        I’m sure the math works out as a resistor divider between the 120 ohm and the pulldown equivalent resistance from the programmer, and the small value on top keeps the signal high enough to not trigger reset (and also low enough not to sink too much current through the programmer).

        That’s why he misunderstood the solution.

      1. I think he was implying that these were on the loading dock heading in to the building, and I stole them? The exact opposite is true. These were essentially being thrown into a dumpster, valued at $0. I rescued them, figured them out, and have been playing with them since. :D

    1. I think he means that a company that would throw away such “junk” is inefficient and therefore American and will soon be bankrupt, therefore the need for the updated resume’.

      1. I’m an American, and I understood the implied message. I think the term “penny wise and pound foolish” might be a proper response. Certainly, a part that doesn’t meet specs, or one that has been rendered obsolete by an upgrade, might be useful somewhere. That doesn’t mean it would make sense for a business to take the time to find that find an alternate use instead of leaving it for the dumpster divers. Such efforts would likely be a waste of manpower and money.

      2. Actually, the current solution for what these motors/drivers were used for is a much more robust solution. We’re already about 2 generations past the use of these. The new designs that were used (and i’m sorry, i can’t give details) allow for much more precision and feedback, that trying to retrofit such features onto these just didn’t make sense to do. Not to mention that the motors that these were attached to were completely shot. Most were slipping or failing. It made good business sense to dispose of these and go with the newer, better solution.

    2. The funny bit is, a great deal of the quality components for things manufactured in Europe come from the United States. Case in point: I was responsible for shipping emission control units to BMW, Stihl (yeah even chainsaws have em), Toyota, and Lotus, among others.

      The reasoning was that nobody in Europe had the Quality Control to do it.

      1. @fluffies: An the US got them from Asian foundries , who’s nations owns most of the US dept which grows 3.86 billion USD per day.. go figure

        BTW you might want to look where most US engineers and scientists are from..

    1. Excitron FTFc15. They’re at least 4-5 years old at this point. At Excitron’s site, there’s nothing remotely similar to these available. I have no idea if they were a special order, or just a discontinued product. :)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.