MX1508 vs L9110S vs TB6612 vs L293D Motordriver board

Three popular, cheap motordriver boards that are available on chinese webstores are the MX1508, L9110S and TB6612.

MX1508
At Aliexpress and Banggood, the MX1508 is listed as a “Dual Channel L298N DC Motor Driver Board PWM Speed Dual H Bridge Stepper Module”. However it is an MX1508.

This board can drive two motors independently. It is an H-bridge configuration for each motor and so can drive the motors in either direction. It is rated at 1.5A on each motor with a peak of 2.5A.
The module itself is not really breadboard friendly. The pin spacing is 0.1″ but the various connectors are at aberrant spacing.

The MX1508 from Shenzhen Guanghui Electronics Co., Ltd. has a working voltage of 1.8-5Volt, but can drive motors with an operating voltage of 2-9.6 Volt. The module however, has only 1 Voltage input, that supposedly can take 2-10 Volt. The digital part of the MX1508 however is fed through a 220 ohm resistor with the resulting voltage being capped by what I presume to be a zenerdiode of 5 Volt. With most hobby motors being either 6 or 12 Volt, 10 Volt may not be the most practical voltage.
When analyzing the PCB, one odd thing becomes clear: Pin 4 (VDD1), the input for the operating voltage of Motor A, seems to be not connected to anything. Yet the module works. Connecting it (to pin 8) seems the right way to go though. It is very well possible that it is an unintentional mistake in the PCB.

The MX1508 has no fly back/free-wheeling diodes present, though they are advised by the chip manufacturer. As a result, there might be big spikes on the powerline when you are reversing the direction, which could lead to problems with other devices connected. Connect the motor like in the figure to the right. Controlling a DC motor with an H-bridge such as the MX1508 is in fact quite simple. Yet there is a library available.

The only (currently) available datasheet is in chinese. It advises to put a 100nF over each motor output, something that is not done on the module PCB. The MX1508 is also sold (e.g. by LCSC) under the alias TC1508.

There is also an MX1208 with a current of 1.3A (2A peak). These are only available as a bare chip, not as a module.

Although the chinese webstores market the MX1508 as a replacement for the L298N motordriver, that is with its 46 Volts and 4 amp total, quite a strech.

The L9110S
So, if 10 Volt motorvoltage is not enough, there is the L9119S from Asic. The available module has in fact two L9110 chips, as they each control only one motor. The module can control 2 motors that according to the datasheet can be 2.5-12V with a maximal continuous current of 800mA , with a peak of 1.5~2 Amp.
The labeling on the input pins can be a bit confusing, but it is like this:

  1. B-IA: Motor B Input A
  2. B-IB: Motor B Input B
  3. GND: ground
  4. VCC: 2.5V-12V DC
  5. A-IA: Motor A Input A
  6. A-IB: Motor B Input B

The L9110 chips each have 2Vcc and Ground pins, but there is no indication that these should get different voltages (like one for the chip and one for the motor) and on the module PCB all grounds are connected and all Vcc’s are connected. There is however a small point of concern in using the module with a non-TTL level like 12 Volt: The inputs are pulled up via 10k resistors to the Vcc. That means that if you use 12 Volt DC for the motor and a 3v3 microprocessor to control the motor, on a LOW level there will be possibly flowing 1.2 mA into the uC pin. That does not need to be a major problem, but it is something that needs to be taken into account. If it is a problem, a simple optocoupler circuit can be put in between. An ILQ615 or TLP281-4 (available as pre-built module) is very suitable for this. If you want to make it yourself, 4 of the below circuit should do:

optocoupler

The optocoupler is left open collector as the input pins of the L9110 module already do have pullups. Other than an optocoupler a transistor or Fet can be used as well.

This circuit does invert, but that can easily be fixed in software. The TLP281 module referenced above has added transistors the un-invert the signal.

Though motors are easy to control with an H-bridge such as this one, there are several libraries for the L9110S.

The datasheet is very minimal. There is one table that is worth a closer look:

l9110tabel

according to this table a voltage of 2.5Volt on its input pins is considered a HIGH. that means that both 5Volt Arduino’s as well as 3V3 ESP’s or Raspberry Pi’s can be used. However, this is at 9Volt Vcc. The datasheet gives no info at all about this level if fed with 12 Volt. If an optocoupler is used as described above, this should not be a point of concern.

TB6612
The TB6612 from Toshiba is another relatively cheap board available at chinese webstores. It can drive 2 DC motors (or one stepper) with 1.2A per channel (3A peak). It runs at 2.7V-5V logic (2.7-5.5V according to some sources). The motor voltage is separate from the 2.7-5.5 Volt logic voltage. Good for motor voltages from 4.5V up to 13.5V. The H-bridge is built with FETs and it comes with built in kick-back diodes.
The control of the TB6612 is a bit akin to the L293. Where usually the speed of a motor in an H-bridge is controlled by a PWM signal on one of the 2 control pins, the TB6612 has a seperate PWM pin, next to the 2 control pins. It can be pulled up if not used. So you set the direction with 2 pins and the speed with a 3rd pin. Of course it is still possible to use the H bridge control pins with PWM. It also has a standby pin to rapidly disable both motors. Connect to ground to disable, pull-up for normal operation. On the ‘Chinese’ boards, it is usually left floating. The adafruit module has it pulled up to 5V via a 10k resistor.
Though DC motors are easy to control with an H-bridge such as this one, there is a library for the TB6612.

L293DL293D_DC_Motor_Driver_SCH3

The L293D for a long time has been a workhorse among the motordrivers. The module displayed here is available cheaply and works well (but read on).
Contrary to some other L293D boards it comes with a 78M05 (the DPAK chip on the board) stabilizer that takes the motor voltage and brings that back to 5Volt to feed the L293 chip. The Vcc pins on the module are therefore outputting 5Volt with 0.5A max current, you don’t have to provide 5Volt to this board.

The 5 pins at the bottom do not have a silkscreen label, but their function is clarified in the picture. The Vcc is connected to pin16 (Vcc1). That pin is the 5V supply for the chip (and you can feed your micro controller from it.

The ‘Vin’ on the screw connector is attached to pin8 (Vcc2) which is for the 4.5-36V motor voltage. On this particular module the Enable pins are pulled HIGH with jumpers. These Enable pins can also be used for PWM, but with the Enable pin HIGH, PWM can also be fed to the IN pins.

This particular module does not seem to follow the cooling PCB recommendations made in the datasheet, so an additional heat sink may be necessary.
A problem rose when I wanted to use the module with 12 Volt, which should be well within its specs. A pair of 0.6 amp motors did well on a smooth surface but on a more demanding surface (grass), the motors seemed to shut down, which I attribute to thermal shut down of the L293. This also happened when I fed the same motors with 6 Volt.
I have no experience with the somewhat simpler modules such as these that come without a 7805:L293D Motor Driving Module

L293D_DC_Motor_Driver_500x500

Though the first 3 modules are clearly no competition for the L298, how do they compare to the L293?

MX1508 L9110 TB6612 L293
Motor Voltage 2-10V 2.5-12V 4.5-13.5 4.5-36V
Logic Voltage 1.8-5V 2.5-12V 2.7-5.5 5V
Current 1.5A 800mA 1.2A 1A (0.6 for 293D)
PeakCurrent 2.5A 1.5-2A 3A 2A (1.2 for 293D)

Given the fact that all these modules are fairly small and come without heatsink, it is my opinion they are only suitable for toy style motors that operate well within the specs of the chip. For any more serious work at least a heatsink should be added.

drv8825Other popular motordriver boards -especially in 3D printers- are the A4988 and DRV8825. You will find a very good discussion of those two in this comparison. The various TMC2xxx drivers (such as the TMC2200 or TMC2208) are generally seen as  more silent (and more expensive) replacements for those.

For anyone interested in using the more powerful TB6600 or TB6560 modules or the TB67S109AFTG chip for say a NEMA23 or NEMA24 motor, you will find an excellent article here. If you consider those drivers, consider the the digital DM556 or DM542 drivers as well.

11 thoughts on “MX1508 vs L9110S vs TB6612 vs L293D Motordriver board”

  1. I was wondering about the statement: “the MX1508 has no fly back/free-wheeling diodes present, though they are advised by the chip manufacturer”. Wouldn’t the MOSFET structure itself act as a fly back diode, similar to other H-bridges like the L9110 and TB6612?

    1. Yes you would think so and it is a question that pops up now and then. The issue i think is that the Mosfet is protected by its internal diode if only one mosfet is used to switch an inductive load. In an H bridge configuration none of the diodes is over the induction.
      I always presume the manufacturer knows best.
      I do not know the internals of the tb6612 or l9110 well enough to know if those have an internal diode structure over the load but their application note does not mention adding them

      1. Could you help me by pointing me to where the manufacturer recommends to have external fly back/free-wheeling diodes? I did not see any external diodes near the motor(s) in the Image 1 circuit diagram in the Chinese datasheet link near the bottom of the page. I hope to be able to ascertain the context where the external diodes are recommended – after all, some makers would advise additional fly back/free-wheeling diodes as the MOSFET body diodes may not respond as quickly to the inductive spike as, say, Schottky diodes would.

      2. Sadly I can’t as i do not always keep track of the sources after article is written, thinking it is either not necessary or that i can always find it back. I have a stack of pdf’s on my computer but i realize that those often download with unrelated document names. Would have to go through those
        One could wonder whether it is worth taking a risc over 4 diodes.
        Whether a Schottky diode would be the best choice i do not know as i always use regular diodes.

  2. Thank you for sharing. Given that the MX1508 IC uses MOSFETs to switch the motor, and thus comes with body diodes, the module having 100uF decoupling capacitors, and the typical usage diagram in the datasheet showing no signs of additional H bridge diodes… and the amount of new connections I need to add 4 diodes, 1 Vcc and 1 GND, per motor (making the layout very messy)… I’ll have to take the risk this time round…

    1. I’d be happy to hear your experience in due time.
      The manufacturer ‘advised’ and not ‘prescribed’ so you may be fine

  3. How about the driver’s efficiency? L293D is supposed to be really low. Do we have info on the rest of them?

    1. Nothing substantial in numbers but i get impression the more modern drivers such as the mx1508 and the l9110 have a much lower voltage drop than the 293. Whether that translates in an overall better efficiency is something that is very likely but i have no numbers on it

  4. Just received a pack of these boards that look very similar to yours. I lifted the IC, pin4 and pin8 are connected to VCC through a thick trace under the IC. I suspect that is the case on your board too.

Leave a comment

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