ITead motorshield in the wild

Active forum member Woodpecker went looking for alternatives to the Adafruit motorshield, and came across this dual-stepper shield made by ITead Studios, and sold by Komputer.de in Germany. I got a couple, and they are very reasonably priced. These are pre-assembled, based on the A3967 driver chip – the same ones that Brian Schmalz uses in the EasyDriver boards.  They can drive upto 750mA per motor, which is a bit more than the L293Ds in the Adafruit design (though that can be upgraded with SN754410 drivers for those that are as infatuated with adafruit as I am).

Datasheet

Schematic

The main feature of this shield is that the A3967s are serial steppers, which means they use fewer pins, and the shield happens to use pins 2 through 9 on the arduino.  Which means that the magic pins 10, 11, 12 and 13 are free – and these are the pins that the SPI interface appears on in the Uno-sized boards.  That opens up the possibilities of using a pre-assembled SD card reader with the Uno, which is interesting.  Now I’d more-or-less given up on running an SD card with an Uno, because of the double-whammy of needing to rewire and because of the memory limitations.

HOWEVER, if this board removes one of those impediments, then the game is perhaps afoot again.  I can conceive of a firmware that is very minimal – just responds to vector graphic commands only, and is optimised for standalone drawing.  Is this worth having?  I suppose I can’t know until I try it eh.

The other feature of the shield, is that all the spare analog pins are broken out to three-pin headers, and the motor connections themselves are exposed as four-pin headers AND screw terminals.  So this could be used without the faintly comical terminal adapters that I’ve been making up so far.

The downside: There doesn’t seem to be a way to turn these off.  The EasyDriver breaks all pins out so motors can be enabled / sleeped, but this shield appears not to.  This is a bit of a blow, because it means the drivers and motors are energised as soon as the board has power applied, and it can’t be turned off programmatically.

The A3967 chip is also less tolerant of bad behaviour like unplugging the motors while it’s on – this is much more likely to damage the ICs than with the L293Ds, so be careful.

Oh and one other thing – these are HOT!  Makes the whole arduino hot.  I believe the IC will always be hot, and probably well within threshold, but I think heatsinks will be the order of the day again.

Anyway, I have released a new firmware that is built for the ITead shield.  It is otherwise identical to the regular firmware, but dispenses with the AFMotor library. The servo pen lift is now also controlled from pin A0 (aka d14), which is the first three-pin header in the block on the motorshield.  You can see that on the picture.

14 thoughts on “ITead motorshield in the wild

  1. glad to see that the constant engergy supply to the steppers wasnt by mistake, but seems to be part of the design of the shield. not sure if there will be a work around, but somehow i think it has to be. but besides: good post!

    • Exactly, AFMotor is required for the Adafruit motorshield only, because it uses a latch to save a couple of pins, it needs a particular way of addressing. This ITead board uses serial stepper drivers, so it already doesn’t use many pins, and doesn’t need any special tricks to use it.

  2. You can turn the drivers off with a small hack.

    The enable pins (pin 14 on the driver chips) are both connected to a resistor. Unsolder the resistor, solder a wire onto the pad that connects to the enable pins, route the other end to a free pin and enable/disable both steppers from software from 1 pin.

    • That’s brilliant Mark, I guessed there’d be a way to break the pins out, but that’s actually even more straightforward than I thought. I was anticipating having to solder wires to the IC pins. These boards are actually pretty great – all my recent drawings have been with one and I love the quality microstepping.

      • Another hardware hack I had to make was to short across the two 10k resistors that are connecting the variable resistors (used to set the stepper driver current) to ground.

        With the 10k resistors in place the lowest I can get the vref down to was about 2.4v. The chip is expecting a vref of 1v and above.

        I was using this to drive steppers for an eggbot and the steps were way to rough to produce a smooth drawing. Short the 10k resistor (be careful, the pads on the PCB don’t take a lot of heat before they come off the board!) and you have the ability to turn the stepper driver current down even further.

        Now I have nice smooth stepping! 🙂

  3. Hi,

    Thanks for writing up this post. I have been looking for a while for something that explains the product. The only problem i have is understanding how to connect the stepper motors to the device. is it a simple plug and play into the itead?

    Kind Regards,

    Anu

    • Just connects the same way as any stepper motor Anu, four stepper wires (for a bipolar motor), four input terminals per motor. This board is nice because it has screw terminals _and_ 2.54mm header pins, you can choose which to use.

Leave a Reply