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.

47 thoughts on “Dumpster diving nets 100 Arduino-powered motor controllers

  1. Can someone clarify – I’m a touch confused. In his post has he put a capacitor in series on a DC ground connection? If so wtf?

      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. Where is that solution defined? I’m looking at the AVR042 docs and I do not see it. That circuit uses both a resistor to VCC and a cap to ground.

      2. 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. :)

      1. Excitron was onto something here that they missed. You don’t suppose that the original cost was comparable to their current controller – $230?

      1. Hitek,
        Because you misspelled Arduino (on THIS forum of all places!), you are hereby forbidden to post any comments on HaD for the next 7 days!

        B^)

  2. Why, when someone finds an AVR, does Hackaday say he/she found an Arduino?

    An Arduino is a product that uses an AVR, an AVR isn’t an Arduino.

  3. Man, I’d love to have come across these, and then find the gold within.

    Note to self:
    *need to keep eyes peeled more*

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s