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]
some guys have all the luck…
some guys have all the pain…
some guys get all the breaks…
some guys do nothing but complain…
Woo woo woo, woo woo woo, wo woohooo
^LOL I was gonna do that… So….
Whoa oh a whoa whoa whoa, whoa whoa whoa whoa a oh….
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?
Apparently it stops the host arduino from resetting when programming the stepper motor drive.
Correct, it is recommended when programming it.
It can/should be omitted afterwards :)
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.
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? ;)
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 ;)
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.
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.
Because he didn’t understand the solution correctly. The correct solution is to put a cap or 110 ohms (as close to that as possible) between reset and vcc.
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.
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.
I really appreciate your attitude. I am not an EE but maybe it is to prevent a reflection, the likes that happen with SCSI drives or broken network cables.
You want the line to be both clear AND clean.
citation(ish)
http://en.wikipedia.org/wiki/Signal_reflection
This is a lucky man..At least he got a 100 Atmega168 and loads of steppers..:)
lol with oversight and efficiency like this I’d make sure I have a updated resume handy..
Must be american
Not sure what those two have in common – could you clarify? :)
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
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’.
The irony is they didn’t comprehend it..
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.
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.
xorpunk I’m sorta happy i didn’t…then :)
Me too since my national currency is the Euro :)
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.
@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..
Scott – what is the make/mfg. of these drivers?
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. :)
Excitron was onto something here that they missed. You don’t suppose that the original cost was comparable to their current controller – $230?
Love seeing old “crap” get recycled into something usable~
Someone’s rubbish is someone’s treasure.
What an incredible score!!!
Build 50 segway-style balance bots and stack them on top of each other.
What! Are you mad, man! Why, the world would surely stop revolving were he do do something so rash!
:-)
Or…maybe it would create a gyroscope so powerful that he would invent readily portable anti gravity!
I suspect it would cause the end of the world!
I really like Victorian/Steampunk-ish descriptions of horrible consequences.
50 mini segway-bots sounds like the humble beginnings of SkyNet
So, do you want to sell a couple of them to me?
Really! Put some of these on eBay with Audrino firmware installed and let us know the link!
Sorry I couldn’t spell Arduino properly, but, I had to add that you could sell some of these in the Hackaday forums, and avoid any fees involved with commercial sites.
Please put them up for sale somewhere. Since they were destined for the dumpster, you should have no repercussions selling them…
Hackaday Classified Section:
http://forums.hackaday.com/viewforum.php?f=11&sid=da7ae60dcc66f2c06d8d8eeaabe868b1
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^)
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.
Word.
Stop with the arduino madness. AVR is super simple to program. There is no need to arduinofy them.
Man, I’d love to have come across these, and then find the gold within.
Note to self:
*need to keep eyes peeled more*