How to use a Zener Diode to clamp the voltage on a Pololu Dual MC33926 Motor Driver Shield for Arduino

The following is a quote from Pololu’s site about the needing of a clamping circuit to limit the voltage to 3.3V because of the A0 and A1 pins on the Arduino Due and therefore the Zero are only 3.3V tolerant.

  • Note for Due users: The voltage on the current sense pins will exceed the Due’s 3.3 V limit when the current draw exceeds ~6 A. The CS circuit has a 1 kΩ resistor in series with the output, which offers some protection to the analog input, and the driver has over-current protection that kicks in between 5 A and 8 A, so the risk to the Due is low, but if you really want to be safe, you can use a 3.3 V zener diode to clamp the current sense output voltage to a maximum of ~3.3 V. Alternatively, you can disconnect the shield’s current sense pins from the Due (and optionally reconnect them through a voltage divider); see Section 6.a for more information.

So how do I create this circuit?


Do you want to use a Zener diode or a voltage divider? If you tell me more about what you are trying to do, I might be able to suggest what protection seems most appropriate. Could you post a link to the datasheet of your motors or their specifications? What kind of robot are you building?


H Clair,

The robot is a carpet rover with a Pololu Dual MC33926 Motor Driver Shield
for Arduino and an Arduino Zero.

The motors are the 6 V high-power, carbon brushes (HPCB) 1600 mA

I am basing this information on what I read in the Pololu Dual MC33926
Motor Driver Shield for Arduino section.

I want to use a Arduino Zero and it is a 3.3V Arduino.

In the section I am referring to is about the Shield being used with a
Due, (also 3.3V) it refers to using a diode to limit the voltage on pin A0
and A1 to 3.3 volts. (Remember the shield.) It could draw up to 3+ amps.

Your site says there isn’t too much to worry about, but it it goes on to
say that it would be safer, and no worries, therefore the diodes.

Once again this section refers to the idea about the limiting the voltage
on A0 and A1 to 3.3V. These 2 pins are set up in the shield for using
current feedback.

I don’t know where I would wire this given the schematics for the MC33926.
Where would I wire the diodes too.

You should connect the Zener diode between each of the current sense outputs (M1FB and M2FB) and ground. An example of this is shown in this thread on Stack Exchange.


Hi again Claire,

What wattage should the Zener Diode be? I don’t have any idea, except
using Ohm’s law, but if you know, it would be appreciated. I would have
the brush up on Ohms law if I needed to. Actually, it might be a good
exercise, but I would have to do it later, so if you have a quick answer,
that would be great.


There will not be much of a voltage drop across the diode or much current, so you could probably use any standard through hole Zener diode that is rated for 3.3V. I think 1/4W and 1/2W Zener diodes might be common, and they should be fine.


Thanks, I think I got it now.
All the best,

I went and bought a couple of 3.3V 1/2 A Zener diodes. But while I am waiting for them to arrive, I am still curious about how is the current (for these diodes) would be calculated. Can you give me an idea how to do this?


For this case the FB output of the MC33926 is a current output equal to 0.24% of the output current, so that is the maximum current the Zener diode could need to sink. If we took the worst case of 8A (which is the highest value that the over current protection could activate at), it would correspond to 4.2V on the FB pin and 19.2mA out of the FB pin. In this case, even if all 19.2mA went through the Zener diode that would still only be a power dissipation of about 63mW (3.3V * 19.2mA). The schematic for the shield shows that there is a 220Ω pull down attached to the FB pin, so the Zenner diode should never be conducting the full current of the pin, so the maximum power it should need to dissipate will actually be even smaller.