Output pins will not drop to 0V

I have spent the last hr. clicking on posts concerning Arduino output voltages and all seem to pertain to not getting high enough voltage out of pins and I cannot seem to find a single post with just the opposite problem that I have. My output voltage is 5.75V on HIGH and .7-.75V on low.

I will admit, I did get carried away and decide to push the voltage to my motor by wiring 3 batteries in series instead of the two it was working just fine with. I fried some zeners and mosfets along with a previous arduino board to this one. Lesson learned. Replaced the parts in the bridge, put in a new arduino board, and nothing works. Re-tested all the components, mosfets, resistors, diodes, etc. everything checks out, pulled the output pins from the board and tested them and they are working perfectly in time with the hall input signal going high and low just as programmed, but the high is 5.75V which is of no concern for the bridge, but the low is only dropping to .71 at the absolute lowest value. I think this is my problem and keeping the mosfets open on both sides because it wont go to zero.

So I guess my question is, has anyone ever run into this problem and have any advice how to go about rectifying this or is my new board already bricked as well. I never thought to check it before I hooked it up so I dont know if it came with this problem or there is something I missed in repairing my bridge and already cooked the new one...

As a side note, With the board powered on, all of the outputs are at .45 to .75V except the one that the program is telling to go HIGH and the other pin it is telling to go LOW which never drops below .71 until I change the pin numbers in the code. Tried switching to every combo of pins available including turning the analog pins into outputs. Same results.

I also disconnected the hall sensor from input and it changes nothing other than the one pin stays high as commanded by the code.

From my limited beginner knowledge, it shouldn't make a difference for this specific problem, but just in case I have entered something wrong or somebody is wondering, here is the code...

int hallPin=2;
int fwdPin=3;
int revPin=4;

void setup(){

void loop() {

if (digitalRead(hallPin)==HIGH){



else if (digitalRead(hallPin)==LOW){


The experts - not I - will want to see a schematic.

oooh so many parts to let the magic smoke out with...

Yes a schem is first on the list here with all those various parts scattered who knows where.

ballscrewbob, I always say if it ain't smoking you ain't learning... ; ) either you already learnt and know what to do, or your busy staring at it wasting time that you could be learning. That being said, I learned today that you cannot use a diode on your ground for reverse voltage protection when sensitive electronics are involved. The power for the arduino was pulled off of a 12V line that I had put a diode on the ground so if the lines got hooked up wrong they wouldn't fry the sensors it was powering again. Pulled the diode and mysterious and persistent extra 3/4 volt disappeared.

A normal silicon diode will drop 0.7v or so. You know that there's already a diode in series with the positive side of the barrel jack for reverse polarity protection, right?