SparkFun Ardumoto - Motor Driver Shield

This is a motor shield for Arduino that will control two DC motors. Based on the L298 H-bridge, the SparkFun Ardumoto can drive up to 2 amps per channel. The board takes its power from the same Vin line as the Arduino board, includes blue and yellow LEDs to indicate active direction, and all driver lines are diode protected from back EMF. The new version of this shield allows for either 3.3 or 5v logic, a separate and more robust VIN connection, and the PWM input has moved to pin 3.

Control for motor attached to OUT1/2 is connected to digital line 12 (direction A) and digital line 3 (PWM A). Control for motor attached to OUT3/4 is connected to digital line 13 (direction B) and digital line 11 (PWM B).

Compatible screw terminals and connectors are listed below. They are not included in this SKU. You will need to add them to your cart separately.

Note: The VIN connection is tied directly to the VIN on the Arduino, so make sure to not apply power to both.

SparkFun Ardumoto - Motor Driver Shield Product Help and Resources

Ardumoto Kit Hookup Guide

April 14, 2017

Learn how to assemble and drive DC motors using the v2.0 Ardumoto Shield.

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

2 Soldering

Skill Level: Rookie - The number of pins increases, and you will have to determine polarity of components and some of the components might be a bit trickier or close together. You might need solder wick or flux.
See all skill levels


Core Skill: Robotics

This skill concerns mechanical and robotics knowledge. You may need to know how mechanical parts interact, how motors work, or how to use motor drivers and controllers.

2 Robotics

Skill Level: Rookie - You will be required to know some basics about motors, basic motor drivers and how simple robotic motion can be accomplished.
See all skill levels


Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

2 Programming

Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels


Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Comments

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Liar_Liar / about 9 years ago / 1

    I got it working , but how do I connect the stuff in the prototyping area to my Arduino? I am just confused how to do it because there are no traces directly to the headers. Any help?

  • TPoschel / about 14 years ago / 5

    I made a mistake and bought this motor driver instead of the "retail" version which includes the stackable headers and screw terminals. Make sure that you don't forget to buy the extra parts or you will be delayed in starting your project as I am.

  • Member #99883 / about 14 years ago / 4

    I'd like to parallel the outputs on this controller to drive a moderately higher load (peak ~4A, continuous ~3A) for short periods. According to the L298 datasheet, to do this you want to pair lines 1&4 and 2&3, but the logic setup on this shield looks like it precludes simply jumping DirA to DirB. <br />
    <br />
    1) Am I missing something? <br />
    <br />
    2) If not, would there be a problem simply opposing A and B in software, and paralleling the appropriate output channels to the motor? <br />
    <br />

  • MQ / about 11 years ago / 3

    This motor shield works with Mega2560 as well as Uno

  • Awkward Woodshop / about 14 years ago / 2

    Looking at the datasheet for the L298H, it looks as if the logic supply voltage must be at least 4.5V, but the schematics for this shield show a solder jumper that selects 3.3V or 5V logic. I just wanted to confirm that this can in fact run at a lower voltage. What I really want to do is use two 3.7V LiPos in parallel to supply an atmega328 and this to drive the tamiya twin gear box. If someone has gotten this to work or similar, please let me know. Thanks.

    • MobileWill / about 13 years ago / 1

      I am looking to do something similar. Did you get any answers? I assume if they sell it for 3.3 logic it should work.
      I want to use a LiPo with the Tamiya twin gear box and Arduino pro at 3.3v
      Right now I am using the Adafruit shield with 3.7 and separate 5v for Arduino Uno.

      • Matt Maurer / about 13 years ago * / 1

        Unfortunately my initial test shows that 1 3.7v LiPo will not drive this and the Twin Gear box. It'll move forward but reverse isn't working :(. I've had to series up two LiPo's to get reverse to work... but now I'm delivering ~6.5 volts to the motors at full speed... I'll have to control that or lose these motors before their expected life.

        I haven't however tried to switch the board to the 3.3v selection, might try that before too long.

  • ringodin / about 10 years ago / 1

    I recently used these in class to make mobile robots. We used VEX hardware with VEX motors. Powered by arduino unos and ardumoto shields. The robots were extremely sensitive to fluctuating battery levels. If your VEX 8V batteries were just below 8 V, the robot would cease to perform parts of the code. It would also stop reversing direction or making turns. Upon using a 9V wall wart, the same glitches would appear. however, a properly charge battery would work.

  • Using the example sketch on UNO Rev 3, the Pololu driven wheels turn only at a constant speed and only in 1 direction. Any idea what the problem is?

  • Member #533909 / about 10 years ago / 1

    I'm wondering why when I spin the motor backwards the LED light that signifies direction lights up. Isnt' this supposed to be prevented by the diodes that protect against EMF? I didnt look closely at the design filed but just want to clarify that I'm not going to damage the board without adding my own diode. thanks

    • The diodes are in parallel with the motor. The LED's will illuminate even with the board powered off. The Back EMF diodes are arranged to drive stray currents away from the driver chip into the battery. You should not need to add any additional diodes.

  • Member #467306 / about 10 years ago / 1

    I have 2 questions: 1.About the reverse voltage of the direction LED.The reverse voltage of my LED is small,just 5 V.If the Ardumoto works at 12V,the direction LED will stand the 12V(little more), is fine? why? 2.The two different color LED can indicate the direction? I think if the motor is run fully,is ok. If we use the pwm to dirve the motor,on,off,on,off,The two LEDs will light togather.

    • AdamTolley / about 10 years ago / 1

      re#2: H-bridges / Typical DC motor drivers will switch between on, off, and reversed polarity on - the LEDs each light for one given polarity, not just on and off.

      • Member #467306 / about 10 years ago / 1

        question1 : The two leds should be paralles,then connecct to on resistor. then the leds will be safe.

      • Member #467306 / about 10 years ago / 1

        quesiton2: The motor run at one direction(clockwise)suppose the dir pin of LM298 is always high.but you want to adjust the speed,so you need use the PWM to control the EN pin of the lm298. if the EN pin is high.one light is on.The En pin became low,another led will on,becase the reverse voltage of the winding of the motor. so we use lm298 to drive the motor,the leds can't indicate the direction

  • Member #498347 / about 11 years ago / 1

    is there any way where we can operate this for current above $ampere.. My vehicle needs more than 4A for the starting torque... can any one Help .???

  • CrazySwedishGuy / about 11 years ago / 1

    This may be a stupid question, but is there any reason you would get this when you can get the Rover 5 Motor shield (https://www.sparkfun.com/products/11593) – which has 4 motor outputs, 4 encoder inputs, and current sensing for each motor? The two items are the exact same price.

  • bbase / about 11 years ago / 1

    Can this be used to control a servo connected to external power?

  • Member #503002 / about 11 years ago / 1

    I used the ardumoto to update an old RC truck and got the whole thing working via bluetooth. I didn't connect any external power to the ardumoto, but I drain the batterypack (9.6V) pretty fast if I compare it to when this battery was still used on normal RC truck setup.

    Anybody has any ideas how to fix this??

  • Member #503002 / about 11 years ago * / 1

    I want to use the shield on top of a Uno, which feed with a 9.6V battery. Do I also have to connect the 9.6V to the shield??

  • Member #466118 / about 11 years ago * / 1

    Hmmm....I got this for my UNO, to drive a single Pololu 1101 gearmotor. I tried the sample sketch and the motor only ever moves in one direction, and does not change speed?
    I'm using a 7.4v l-ion battery to provide power to the uno.
    Does the driver get confused if only one motor is connected? Oh, and I confirmed dir-a is set to pin 3

    • M-Short / about 11 years ago / 1

      Email techsupport and we'll see if we can help you out. It should work with a 7.4V battery as long as its able to provide enough current for the motor.

  • Member #478077 / about 11 years ago / 1

    Hi everybody, I would like to use the Ardumoto as a driver for my Polulo gearmotor. I have the following items: NI card (including analog and digital outputs), polulo gearmotor, ardumoto shield and 5V 1A power source. I undestand that the power source should connect to the 5V input and that line 12 will receive a digital in for the direction. I do not understand what should be connected to the PWMA (digital or analog) line 3 and what type of input should I send through this connection? help will be highly appreciated. Thanks, David

  • ImpressedbyRocks / about 11 years ago / 1

    I'm building a robot, and unfortunately, the Ardumoto pulls too much current from the Arduino and I can't drive two medium sized servos, even with a capacitor attached. The VIN line is also pretty funky, it doesn't do anything even if I've attached a 9v battery to it, even though it should be able to handle twice that voltage. Combined, I'm having trouble building anything that works with this board. Suggestions?

    • M-Short / about 11 years ago / 2

      First you don't need the shield to run servos, its designed for DC motors. Second power for the motors should come through the Vin pin, not the Arduino, if its pulling too much current its a problem with your supply. Third, 9V batteries provide a decent amount of voltage, but very little current. If you are trying to power your motors with this there is a good chance this is the problem. If you are still having problems contact us at techsupport@sparkfun.com

  • polyhedron / about 11 years ago / 1

    Can I just connect a battery to the VIN on this shield? Will it automatically power the motors? Will this interfere with the VIN on USB power on the Arduino?

    • M-Short / about 11 years ago / 1

      The Vin on the shield is the same as the Vin on the Arduino. But Vin on the Uno and USB power on the Uno are different, and the Uno is designed to be able to switch between them as needed.

  • Member #437971 / about 12 years ago / 1

    I want to run two motors using this kit and my Ardunio Uno. I plan to suppy my Arduino 9-12V through the power jack. However I fear that the motors would draw current of 1 A each and destroy the Arduino. Just to be safe I want to supply the Ardumoto sheild power of its own and ignore the power that the Arduion supplies.

    Please Help and Thanks

  • TechShop / about 12 years ago / 1

    Vss suppose to be minimum 4.5V. How come you are able to hook it up with 3.3V?? The VIH (min) = 2.3V . So yes this board support 3.3V logic, but you don't need to change Vss for that! :-/

    Hope future version will fix this! :)

  • Member #71159 / about 12 years ago / 1

    Is this shield compatible with the Arduino Mega?

  • RickLoos / about 12 years ago / 1

    Can this board easily be used with one of my grandson's k'nex 3v motors? Any suggestions are appreciated. It is just a 3v gear motor usually run from 2 AA batteries.

  • doggenj / about 12 years ago * / 1

    This library should be helpful when developing applications with this module. (or probably in any L298 H-bridge based design)

    Features: Set the motorspeed, brake, change the motor speed slowly

    https://github.com/jeroendoggen/arduino-ardumotor-library

  • The L298 chip logic is suppose to operate on 5 Volts, so the solder bridge to 3.3V has no use. But if you took the trace for VIN prior to the junction to auxiliary VIN connectors and opened it with a solder bridge you could either run the logic on the board and the motor power together as currently designed or open the bridge to run the logic and the motor separately, which is what I needed. Assuming no USB or power plug to the Arduino, i.e., in a robot, the Arduino should get its power via the VIN pin. This is easy with this new bridge open by using a wire inserted in the VIN header (having the ground remain common is important, so that requires no change). The Ardumoto board would get its logic 5V coming back from the Arduino voltage regulator. The auxiliary power inputs could then run the motors. The L298 can take much more voltage for the H-Bridge than should be seen by the logic, so this is really an important mod, so this can be pointed out in the Quickstart Guide or someone could easily put too high a voltage for motors and not realize the logic and the Arduino would get fried. Just a suggestion.

  • Member #368620 / about 12 years ago / 1

    Is the Ardumoto Motor Driver Shield better than the Big Easy Driver? Also the page doesn't give stepping modes. Its only $2 more.

  • Member #341602 / about 12 years ago / 1

    will this work with the leonardo

  • Member #343233 / about 12 years ago / 1

    How do I connect two LiPo batteries to this Ardumoto? I have JST connectors but I don't know where to put them...

  • Member #343233 / about 12 years ago / 1

    How do I connect 2x LiPo 850mah to this driver shield? I want to power two 24:1 motors. Thanks

  • Dr. DFTBA / about 12 years ago / 1

    Does this work on Leonardo?

  • Member #101088 / about 13 years ago / 1

    As a newbie, I bought this board because it used so few pins. However, the price of doing this is that there is no braking ability! And that is extremely serious; even after I tell the motors to stop, the shafts keep turning for a long time. If you have any need to precisely position your robot, don't get this board. I am going to try the official Arduino Motor Shield instead.

    • Matt Amacker / about 13 years ago / 2

      I had this problem too - all you have to do is reverse the motor for a few ms. Causes an instant stop.

      I wrote a little routine:

      void stopMotor() { digitalWrite(dir_a, HIGH); delay(30); analogWrite(pwm_a, 0); digitalWrite(dir_a, LOW); }

      It reverses the motor, waits a little, then kills the motor, and restores the original direction.

      Gives a nice hard stop.

  • Matt Amacker / about 13 years ago / 1

    It says it in the description - but it should be said again 'cause I didn't notice it when I bought it.

    This boards lights up to show you which motor is running at which direction and speed!

    Which is just awesome.

    Trying to sell your idea to management ( or your kids )? Make sure it has lots of blinky lights!

  • Thimplum / about 13 years ago / 1

    Would Sparkfun ever sell the SMD version of the motor driver?

  • should i put a heat sink on this?

  • Ajahn / about 13 years ago / 1

    I have one question: I have two actuators (12 volt, 2 amps) that I need to control, but the problem is that the actuators have 3 wires. One for ground, one wire for one direction, and another for reverse. Is is possible to connect the two directional wires to a terminal block on the ardumoto and the ground wire simply to the arduino ground, and then control the direction of the actuator through those two pins?

  • Member #158043 / about 13 years ago / 1

    It may be a good idea to the PWM from pin 3 to pin 6 because pin 3 is used for the high-level interrupt. I had to manually reroute this and it was a bit of a pain. I say this because I need to use both pin 2 and 3 as high-level interrupt pins for two optical encoders I am working with. Just a suggestion.

  • VccDood / about 13 years ago * / 1

    Sparkfun really should change those controller pins. Shields are built to let end-users connect components in different combinations and have them "just work." But, if you're using the Arduino SPI library (and who isn't?) this shield just fails.

    Why aren't these using pins 4-6 or, even better, user selectable pins with a dip or jumper setup. If that adds too much cost, can you add a via on each of the four traces instead of the 3x4-hole portion of the dev board near pins 7-10? Then, newbies like me can cut the (TINY and unsolderable by newbies) traces and solder wires to whatever configuration we want. This shouldn't add any cost to the board as it's removing 12 vias and replacing with 4.

    I just saw the new RFM-22 shield. The vias and solder pads used to breakout the SEL, IRQ, etc... would work perfect for each of the pins on the motor shield!

  • minihak / about 13 years ago / 1

    hmmm 2 amps per channel dos that meen that you can drive a singel 4 amp motor whit it?

  • Member #186421 / about 13 years ago / 1

    Is this shield powerful enough to drive the Rover 5 platform?

  • owar / about 13 years ago / 1

    Hi, I have two of theese in my vehicle project.I have made them work in a minute but after some time(2 days) they stopped responding to any direction change.What can be the problem?I am using them with arduino uno and 4 12V/2A motors.I even added some heatsinks on the bridges.

  • XLanZ / about 13 years ago / 1

    hey, that might be a stupid question but what does JP1,2,3,4 stands for ??

  • Member #126144 / about 13 years ago / 1

    Worked great at 12V, but... when it says 18V, that's the smoke point.

  • denbo68 / about 13 years ago / 1

    Anyone who wants to use encoders on your motor should realize that the Arduino uses digital pins 2 and 3 for interrupts. Since digital pin 3 is PWM on the shield... that causes a conflict.
    Look into using the PinChangeInt library at http://www.arduino.cc/playground/Main/PinChangeInt

  • miu / about 13 years ago / 1

    How good is this shield compared with Adafruit Motor/Stepper/Servo Shield for Arduino kit? That one is capable to control up to 4 DC motors, 2 steppers or 2 servos.
    http://www.ladyada.net/make/mshield/use.html

    • denbo68 / about 13 years ago / 1

      If you look at the spec for the L298 you will see it can control ONE stepper motor. http://www.sparkfun.com/datasheets/Robotics/L298_H_Bridge.pdf
      The Adafruit can control TWO stepper motors because it has two L293D chips being controlled by by a shift register.

      • Member #69217 / about 13 years ago / 1

        Can you use the Adafruit libraries with this board. I am using Arduino uno. Is it the same pinout as the Adafruit to the Arduino. I need to increase the current to 2 amps for the bipolar stepper

  • Member #248567 / about 13 years ago / 1

    Hi all,
    Could I use a FPGA to control the Ardumoto Motor Driver Shield or must I have an Arduino board to be able to control mine Ardumoto Motor Driver Shield?
    Thanks

    • Pearce / about 13 years ago / 1

      You could, but I would recommend going with something that isn't in shield form. This is geared towards working with the Arduino, it can work with something like a FPGA, but will take a little more work to use.

  • Roy BM / about 13 years ago / 1

    can this drive two tamiya double gearbox's ??

  • raritet / about 13 years ago * / 1

    It is absolutely devastating that on the Ardumoto one of the two external interrupt pins on the Arduino is used as a PWM output... on a motor driver shield designed to run TWO motors, of all things.

  • Roy BM / about 13 years ago / 1

    Heloo all I have a question, maybe some none could help me iv bought this Ardumoto and an other shield, the Joystick Shield http://www.sparkfun.com/products/9895 , this one but not the retail version.
    My question is:
    Can use them both at once on my Duemilanove??
    they both use D3 PWM
    TKS

  • Member #200027 / about 13 years ago / 1

    ...what about all the other digital/analog pins. If they were broken out to holes, they'd be easier to use with the proto area...

  • aalmada / about 14 years ago / 1

    I know that it's impossible to please everybody but this version of the shield is not Netduino compatible. Netduino only supports PWM on digital pins 5, 6, 9 and 10.
    It would be nice to have a future version using pins 5 and 6 for PWM (as other people here would like to have pin 10 free for the Wifly).
    Thanks!

    • aalmada / about 13 years ago / 1

      A jumper for the V-Logic would also be nice.
      These changes would make it Arduino and Netduino compatible.

  • tolyto / about 14 years ago / 1

    I also bought this driver instead of the retail version, and haven't been able to find screw terminals (distance between the legs) for it where I live. The stackable headers have also been a problem, as the ones I've found where I live have very short "legs".
    It works fine with DC motors, but I can´t make it work with a stepper (using stepper library from Arduino). The internet site where I bought the driver said it was OK for steppers and for DC motors, but Sparkfun's doesn't say anything about steppers.
    Does anyone know if it works with Stepper library ? Otherwise I'll have to manage the microstepping in my code
    It may be a problem with the motor, but

  • CoVlad / about 14 years ago * / 1

    hey, this might be a stupid question but what are the logic gates for ?(74HC1G04G) - i didn't see them used in the datasheet for the l298

    • Awkward Woodshop / about 14 years ago / 1

      They are signal inverters. the 2 pins going in to the L298 have to be opposite polarity to change the direction, if they are the same it effectively turns on the fast-stop mode. Apparently Sparkfun put theses signal inverters there so that one signal going in is the opposite of the other signal going in. This reduces the required pin count needed and slightly simplifies the coding.

  • AKA / about 14 years ago / 1

    I like this shield but it would be great to have a version that left pin 3 available (the way the original shield did) to be used as an interrupt pin for counting motor encoder ticks.
    (Although, having said that, I'm having trouble counting ticks fast/accurately enough, does anyone have any resources to help me count ticks quickly?)

    • denbo68 / about 13 years ago / 1

      Try using the PCIntChange library (search the Arduino website for a link). So far it is working ok for me where the interrupt for the encoder is on pin 9 instead of 2 or 3.

  • MaxSeeley / about 14 years ago / 1

    What is the purpose of the numerous vias?

  • MichaelK / about 14 years ago / 1

    I've made some Eagle files with the modifications discussed in the above comments. More details and a link to the files in the forum: http://forum.sparkfun.com/viewtopic.php?f=32&t=24568

  • MichaelK / about 14 years ago / 1

    Would it be possible in the next revision to break out the current sense pins, instead of shorting them to ground? Maybe add jumpers to short them if necessary..

    • Matt Maurer / about 13 years ago / 1

      I'd like to second this, please?

      • dustynrobots / about 13 years ago * / 1

        3rd! Is there an easy way for a user to mod this board to get access to those pins, and if not, does anyone know of a shield for the L298 that breaks out the current sense pins? I know the monster version does but not sure I can handle the price difference when there are a lot of other features in that I don't need or want.

  • Vlabs / about 14 years ago / 1

    I just bought one of these and when I attached it to a 13.2v battery and 2 350ma motors. The trace from the positive VIN header(-screw terminal) to the Via got fried. the battery may have been reverse voltage, would that make sense? also I like the screw terminals so much that I want to solder a jumper from the side header VIN to the screw terminal. will that work?

  • Bartje / about 14 years ago / 1

    In the code it says PWM A is on pin 10, but it's on line 3 as is mentioned in the product description. Don't forget to change the code :)

  • CSBaum / about 14 years ago / 1

    Is it possible to use a different set of pins on this? The reason I am asking is that I want use use the Wifly shield and it uses digital pins 10 - 13 and this shield uses digital pin 11 & 12.... any thoughts / solutions?

    • I guess in order to use different pins, you'd have to cut the traces and run wires from the pins on the chip to the header pins of interest. Not impossible, but difficult if you're not pretty well versed with an iron. Sorry about that. But it's a cool idea, and it's got me thinking of a revision. Wouldn't it be cool if you could pick any pins you wanted? I just can think of an elegant way to pull it off. I suppose you could have a row of header pins that go to the chip, and an opposing row of header pins that go to the pins on the Arduino, then jump them with some of those jumper wires we sell to wherever you want... but that seems kinda janky to me.
      We've also discussed the possibility of standardizing the shields a little better than we've done. That may be a better way to attack this.

      • joh / about 14 years ago / 1

        Yes, please free up digital pins 10-13 in the next rev! A Wifi controlled robot would be nifty ;-)

      • CSBaum / about 14 years ago / 1

        Pete,
        I think I am going to have go down that route because I need the wifi capability and I am going to add a microSD shield as well so I can store sensor information.
        I look forward to the future revisions and standardization of the shields and thanks for listening :)

  • MikeB. / about 14 years ago / 1

    I like my old version, but I really like the new Vin line that you can add a screw terminal to.

Customer Reviews

4.6 out of 5

Based on 9 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Excellent, easy and precise

Very good solution to drive motors

1 of 1 found this helpful:

Works as advertised.

2 of 2 found this helpful:

Works with the Arduino 101

Since the Arduino 101 runs at 3.3Volts, it has been difficult to find a motor controller that works.

This one works with 3.3 Volts control signals. However, due to the Arduino 101 not having pin 11 as a PWM pin, I had to jumper pin 9 to pin 11.

But at least it is working. And since the Arduino 101 has an on board accelerometer, this and motors are all you need for a self-balancing robot.

Also, mine arrived damaged. The cap had been knocked off. But they sent a replacement and now everything is working fine.

1 of 1 found this helpful:

Works as advertised

Tested it with some small motors and they worked well. Using it to drive two linear positioners which draw 1.5Amps and this device is working great. Small direction LED onboard are a nice touch. If i could change one thing it would be to add jumpers for the control pins which are the same as other shields 3,11,12,13 so I had to cut the pins and add jumpers.

2 of 2 found this helpful:

Goodie

Beefy motor controller, works with steppers too.

1 of 1 found this helpful:

Nice!

I'll be taking an intro to robotics class in Fall and wanted to get a head start on the projects with one of them using this motor shield.

So far I have not been disappointed. Easily accessible examples on their website which makes setting up and using a breeze.
Highly recommend this for any two wheeled projects from beginner and up.

And with Sparkfun's awesome customer service you can buy with confidence from these guys.

1 of 1 found this helpful:

Okay, but I've a problem

It's okay because the functionality is very good and it's so easy to drive a Shadow chassis for example.

But I've a problem that I can't resolve, and I don't get help from Sparkfun forum and also nothing googling the internet:

What can I do if I also want to use an I2C port, which (in Arduino Leonardo) uses pins D2 & D3 as SDA/SCL respectively. Can I do this in some way? or it's imposible with Leonardo. I want to use I2C for communicate with my HMC5883L compass.

You can cut the the D3 pin on the shield and reroute it to a different open pin, giving you the option to use the I2C lines on the Leonardo. If you have questions about this, please email techsupport@sparkfun.com. They can assist you further.

Since we use D3 for PWM on the motor lines, you would need to bypass the pin. You can use a Go Between shield if you don't want to physically cut your board's trace. https://www.sparkfun.com/products/11002

0 of 1 found this helpful:

Nice simple way to interface Arduino to motors

Couldn't be simpler - plug in the shield, set the driver pins to the correct mode and spin the motor. Priced reasonably. One star deducted for assuming that every motor can run from an Arduino's VIN voltage. The driver chip here is capable of so much more. This board should be revised so that the motor supply is selectable between Arduino VIN (small motors) and an external supply (larger motors).

Works great, great value!

simple and easy to use, works as described, and it's cost effective! I find it a perfect alternative to the now obsolete Ardunio R3 Motor Board.