Circuit protection improvement advice.

Thread Starter

MB107

Joined Jul 24, 2016
400
Recently I built a PWM fan controller for a 50 Amp automotive radiator cooling fan. It worked great for 5 years but I decided to add some upgrades recently and one of the things I added was 2 zener diodes on the input power to clamp voltage spikes. It also worked great up until yesterday when I had a transient on the output that took the board out. The way this fan works is 12V power is available at the fan motor at all tomes feed by large 6 ga wires. The fan will not run until it gets a signal from the controller. The controller signals are low current milliamp signals which tell the fan to run and how fast. One of the signals is a straight 12V which is present whenever the key is on. The other is a PWM signal that controls the fans speed. The straight 12 signal provides power in an emergency mode, where if the PWM signal is lost the fan will run at full speed. In any case the 4 conductors come through the same connector, Power, Ground, 12V with key on and PWM. In this case there was a leaking radiator that got into the connector, despite the connector being a weather pack sealed connector. The only way the fan could run would have been if the power from the large power wires got into the smaller signal wires. I had already removed the fan controller from the car when the fan suddenly started to run at full speed with the fan controller removed and the key off. I had to pull the connector to shut it off and break a 5 amp circuit to do so. So in this case, I believe the 12V signal or the PWM signal were seeing intermittent power from the large cables that are directly connected to the battery.

The first picture shows the burn connector. There were originally 2 large pins and 2 signal pins in there. Now the large positive pin is burnt away.

Second picture shows the board as made for reference.

Third picture shows the full schematic. In that schematic pins A4 of the J1 connector is the pin that supplies a PWM signal to one of the small pins in the 4 pin connector. Pin B4 supplies the constant 12V with the key on to the other small pin. These can be better seen in the 4th picture

Pictures 5 and 6 are of the board layout with the full size and the blown up section of connector J1

So the question is what can be done to protect this system from such and event of antifreeze getting into the connector. I was thinking of putting the same zener diodes on pins A4 and B4 as I have on the input shown as D1 and D2. I believe that will work for at least the straight 12 signal but I'm not sure what it would do to the PWM signal.

Your thoughts would be greatly appreciated.

Thanks
John

burnt connector.jpg

1756790580165.jpeg

Full Schematic.jpg

Blowup Schematic.jpg

Full Board.jpg

Blowup Board.jpg
 

prairiemystic

Joined Jun 5, 2018
419
I see a few possible weaknesses with the circuit.

Adding the TVS diodes across the circuit's battery and key-on lines is not a good idea. They will get overloaded and burn up because they end up clamping transients for the entire car! Or at least trying. So I would expect TVS D1 and D2 to not live long.
To prevent this you need some series resistance like a PTC fuse and overall I also use a series diode to block -ve transients, instead of the TVS trying to hard clamp them.
Automotive it is customary to design (module) inputs and outputs to withstand- open, short to GND, short to 12V power.
Q2 needs protection, open thermistor might look like very cold temps etc. What power mosfets are you using, if you are trying to protect them as well. What Nano is this?

What I have seen with these cooling fans is they use more and more current as they get older as the brushes/commutators wear.
It might start at say 16A but next thing you know, month later the connector and wiring are melting because it's up past 26A.
Check this - if the fan's current caused the connector to melt, it can warp and then let water in. You have to overdesign it.
Also include the temperature rise - the connector can heat up say 20°C due to its resistance, then add the air temperature near it could be 80-120°C and that ends up too hot for the plastics.
I had this happen with a product and it was a mess. Looking with a IR thermal imaging camera showed what was going on.
 

Thread Starter

MB107

Joined Jul 24, 2016
400
I see a few possible weaknesses with the circuit.

Adding the TVS diodes across the circuit's battery and key-on lines is not a good idea. They will get overloaded and burn up because they end up clamping transients for the entire car! Or at least trying. So I would expect TVS D1 and D2 to not live long.
To prevent this you need some series resistance like a PTC fuse and overall I also use a series diode to block -ve transients, instead of the TVS trying to hard clamp them.
Automotive it is customary to design (module) inputs and outputs to withstand- open, short to GND, short to 12V power.
Q2 needs protection, open thermistor might look like very cold temps etc. What power mosfets are you using, if you are trying to protect them as well. What Nano is this?

What I have seen with these cooling fans is they use more and more current as they get older as the brushes/commutators wear.
It might start at say 16A but next thing you know, month later the connector and wiring are melting because it's up past 26A.
Check this - if the fan's current caused the connector to melt, it can warp and then let water in. You have to overdesign it.
Also include the temperature rise - the connector can heat up say 20°C due to its resistance, then add the air temperature near it could be 80-120°C and that ends up too hot for the plastics.
I had this happen with a product and it was a mess. Looking with a IR thermal imaging camera showed what was going on.
Thanks for the reply.

This uses a Nano 33 BLE. The fan is a 600W bush-less motor from a 2003 Mercedes E500. There are no mosfets. Q1 and Q2 are both 2N3904 transistors. R14, R15 and R16 were added into the circuit to keep the current in check in the event of an open thermistor. The connector that failed is the genuine Mercedes connector located underhood in the same location as it is in the original car. Mercedes uses these connectors on both the 600W and 850W versions of there radiator cooling fans. So for my 600W version the connector could be considered over designed. The fan control is not mounted under hood, its under the dash.

As far as the TSV diodes so far none of them have failed but they have only been in the car for about 8 months now. My older controller proved to work well without TSV diodes for over 4 years. The only circuit that is failed on this board is the PWM output. That is the only circuit that was unprotected. I tried replacing both Q1 and Q2 but it didn't help so I assume its the Arduino itself. All other functions of the Arduino appear to work except the PWM pin appears to be dead.

As far as the TSV diodes you bring out a good point they will go off with anything connected to the battery or key on power. But I'm in kind of a hard place with them. For one I have seen several schemes for this, but this one is the only one I understand for the moment. For two, this is the first project for me ever designing something electrical and fabrication it. So surface mounting is not in the cards for me at this time and I'm running out of real estate. So I have a couple of options.

1) Fix the radiator leak that caused the problem in the first place and move on.
2) Install the same kind of TSV diode on the PWM line, which I have just tested and it seams works well.
3) Replace the Q1 Q2 transistor scheme with an opticoupler scheme, Which I have tested previously and also works well.
4) Use an opticoupler for the PWM circuit and cut the TSV diodes for the battery and key on protection out.
5) Do one of the above for now and then do another year of R&D to figure out a better protection scheme.

I will add, the reason I never went with the opticoupler scheme was because the have a low MTBF of like 1000 hr if I recall, which I calculated out to be about 5 years for the average driver using the car as a daily driver. But which would have the higher failure rate, the opticoupler or the TSV?
 

prairiemystic

Joined Jun 5, 2018
419
I mistakenly thought you'd cooked a (newly added) TVS diode- but it's the PWM transistor.
It can get damaged any of three ways: +ve spike, -ve spike, or overcurrent.

Another thing to look at is the grounding. The (high current) fan+module is grounded at point A (typically radiator support), the temp sensor (if one wire) grounded to the engine block, and then your controller is grounded somewhere as well.
What can happen is the ground for the BLDC kicks up relative to your board (due to fan current, or corroded connector) and that -ve spike can be damaging the 2N3904. So a reverse diode C-E and a resistor on the output line even 22-100 ohms limits current.
For +ve spikes, 2N3904 rated 40V so a TVS C-E would cover that, but another technique I have seen is simply using a HV transistor like 2N5551 (180V) and no TVS. Engine cranking can cause another ground bounce, it all depends on the car's grounding scheme.

I would have always small fuse/PTC and series diode to power the board. Nano 33 BLE V4.0 uses MPM3610 regulator module (inductor built in) rated absolute max. 28V input. I always check because running any Arduino right from vehicle power is usually not a good idea. -ve spikes easily kill a regulator and +ve spikes can, depending on the car's age and if a TVS is present etc. Modern car transients are around +40V zener-clamped by the alternator's rectifier diodes. Older alternators don't have this, older cars with points ignition etc. can dish out a lot more.

Opto-couplers are uncommon in automotive use, they do poorly with the temperature extremes and are an expensive component. Past years a few achieved AEC-Q100. I don't know anything about the Mercedes BLDC module, what it does at the PWM input. What PWM frequency are using? I think a transistor like you have is OK with added resistor/diode or TVS.

It's hard to know the whole system, what parts you have, the car etc. The rad looks aftermarket.
I add silicone grease to the triple o-ring on automotive connectors when I can.
Dissimilar metals can cause leaks, i.e. aluminum with steel, the thermal expansion coefficients are different and I always had a puddle happening during cool down which took me long time to figure out.
 

Thread Starter

MB107

Joined Jul 24, 2016
400
I mistakenly thought you'd cooked a (newly added) TVS diode- but it's the PWM transistor.
It can get damaged any of three ways: +ve spike, -ve spike, or overcurrent.

Another thing to look at is the grounding. The (high current) fan+module is grounded at point A (typically radiator support), the temp sensor (if one wire) grounded to the engine block, and then your controller is grounded somewhere as well.
What can happen is the ground for the BLDC kicks up relative to your board (due to fan current, or corroded connector) and that -ve spike can be damaging the 2N3904. So a reverse diode C-E and a resistor on the output line even 22-100 ohms limits current.
For +ve spikes, 2N3904 rated 40V so a TVS C-E would cover that, but another technique I have seen is simply using a HV transistor like 2N5551 (180V) and no TVS. Engine cranking can cause another ground bounce, it all depends on the car's grounding scheme.

I would have always small fuse/PTC and series diode to power the board. Nano 33 BLE V4.0 uses MPM3610 regulator module (inductor built in) rated absolute max. 28V input. I always check because running any Arduino right from vehicle power is usually not a good idea. -ve spikes easily kill a regulator and +ve spikes can, depending on the car's age and if a TVS is present etc. Modern car transients are around +40V zener-clamped by the alternator's rectifier diodes. Older alternators don't have this, older cars with points ignition etc. can dish out a lot more.

Opto-couplers are uncommon in automotive use, they do poorly with the temperature extremes and are an expensive component. Past years a few achieved AEC-Q100. I don't know anything about the Mercedes BLDC module, what it does at the PWM input. What PWM frequency are using? I think a transistor like you have is OK with added resistor/diode or TVS.

It's hard to know the whole system, what parts you have, the car etc. The rad looks aftermarket.
I add silicone grease to the triple o-ring on automotive connectors when I can.
Dissimilar metals can cause leaks, i.e. aluminum with steel, the thermal expansion coefficients are different and I always had a puddle happening during cool down which took me long time to figure out.
Thanks for getting back.

Yes the newly added TVS diodes are intact and working. The high current fan module is grounded at the radiator support. The fan controller is grounded to the chassis under the dash. Essentially both are grounded to the chassis but far away from each other. The cars engine electrical system is 1996 vintage with a 1996 engine and alternator and wire harness. The rest of the cars electrical system is 1986 vintage. The radiator is aftermarket AL mounted on rubber with a ground strap to the chassis. I can now remove the ground strap since I am now using a two pin thermister. The radiator fan is from a 2003 Mercedes E500, along with the connector. Not sure what BLDC means?

The Mercedes controls this fan with inputs from the engine ECU. It is a constant 10Hz 0-12V PWM signal. There is also a constant 12V signal from the ignition key. The ignition key signal will run the fan at 100% emergency mode if the PWM signal is degraded or not present. With the PMW signal at 0 the fan will go into emergency mode. With the PMW signal at 10% the fan is stopped. From there the fan will speed up to 100% speed at 100% duty cycle. Although Mercedes and myself run it at 10% increments.

One of the things I have to be careful about is my circuit 15 Key on voltage. If you look at that circuit you will see that it runs through a voltage divider and that voltage is read by one of the pins. That is used to sense whether or not the engine is actually running with the key on. For example I don't want the fan to run just because I turned the key on to put up the windows or turned on the radio. I have to read that voltage precisely because there is not much margin between voltage from the alternator and battery voltage. So a transient protection scheme has to not modify that voltage or at least if it does so, it needs to do it consistently so I could scale accordingly. I get the PTC fuse, but what does the diode do, and how will it effect my voltage? And what size and where would it go in my circuit?

My transient testing with a TVS on the PWM circuit today was limited to a 20A power supply. Also my 8 bit 50Mhz scope is very limited for this. voltage spikes were not visually observable, but I did find I could raise and lower the trigger level to find the maximum voltage where it wouldn't trigger. Without the TVS running at 20A it would trigger as high as 26V when I suddenly disconnected the positive battery terminal from the power supply. With the TVS it was clamped down to 16V at all current levels. I will try again tomorrow with the full 50 amp load using a car battery.
 

ronsimpson

Joined Oct 7, 2019
4,645
For the PCB you have only GND on the blue side. I would have used "area fill" or "ground plain" to fill all of the blue side with copper. This helps noise and input protection. Protection diodes need a good ground.
 

Thread Starter

MB107

Joined Jul 24, 2016
400
For the PCB you have only GND on the blue side. I would have used "area fill" or "ground plain" to fill all of the blue side with copper. This helps noise and input protection. Protection diodes need a good ground.
It is shown without the ground plane to make it easier to see. I have no issues with noise, even the BLE works.
 

panic mode

Joined Oct 10, 2011
4,864
if i understand correctly, the only part that failed was Q2 although several other GPIO are connected to same connector.

to protect Q2 you could add PTC and TVS. also circuit could be modified so that Q2 is current (and power) limited. that way it could be permanently connected to GND or 12V without damage.
 

Thread Starter

MB107

Joined Jul 24, 2016
400
if i understand correctly, the only part that failed was Q2 although several other GPIO are connected to same connector.

to protect Q2 you could add PTC and TVS. also circuit could be modified so that Q2 is current (and power) limited. that way it could be permanently connected to GND or 12V without damage.
I did try to replace both Q1 and Q2 but it still doesn't work so I believe either pin 11 or 12 of the Arduino failed. The fan PWM signal runs at very low current, like under 50ma. Haven't looked into the PTC's yet but they will all be smaller than 1A. If I understand everything right the PTC should just be in series with the TVS. Is there a preferred side? Do you have any ideas how I could current limit Q2?

Thank John
 

panic mode

Joined Oct 10, 2011
4,864
well... it is not the fan input you need to worry about. that is few kOhms and no problem at all.

but vehicle wiring harness is bigg messy thing hard to inspect or troubleshoot due difficulties in access. and things can go very wrong when something else (anywhere in the car) is starting to make fuss.

could be an intermittent short. stranded wires are soft and easy to bend but also they suffer due to to heat, vibrations etc. movements may harden material until it breaks, then the wire strands may choose to go elsewhere, through the wire insulation... and into another wire. and cause short only once in a blue moon...

so everything in a car need to be ruggedized to survive the worst... not the few kOhm pullup inside the fan but something much worse.

take a look at ECUs electronics and you will see protection diodes, series resistance etc everywhere.

adding PTC resistor will hardly be noticeable when things are good but resistance will increase if there is a problem.
adding diode across E-C junction will protect collector from negative voltage.
adding TVS will allow rapid absorption of energy.
shorting collector to GND will do nothing to harm it, but connecting to say large positive voltage will no longer be a problem thanks to previous measures. but if current is 80mA and voltage is low enough (12V for example) that transistor will die of heatstroke since P=V*I = 12V *80mA =960mW, this is several times higher than Q2 transistor can handle and none of those other measures may be able to save it. one option is to put something beefier as Q2 so that it could easily handle that kind of power regardless what the ambient temperature is (for all i know you may be in Arizona in sweltering heat).
or one may try to use some sort of current limit such as Widlar circuit. this way you can guarantee that collector current will remain low (say 5- 10mA).

so adding one more transistor (same type as Q2) will suffice:

max voltage at D8 is 5V so R2 limits current. R3 was added as illustration... it is only 2 Ohms and V3/R3=7A...
but because R2 current is under 5mA through Q3 (V1/R2=5mA or less), Q2 will mirror that same current on its own output (through R3), regardless how high V3 is or how low R3 is.

so Q2 sweat will be only 5mA*14V = 70mW. this is something Q2 can handle.

1757026332807.png
 

Thread Starter

MB107

Joined Jul 24, 2016
400
and when things are normal it would looks something like this
View attachment 355386
OK you are getting above my pay grade with this but it sounds good. The two transistor circuit is something I don't even recall if I figured out how it worked 5 years ago. That was something developed by someone else on this forum at the time. Its been worked well for about 4 years without any protection on any of the circuits but I didn't have a connector explode on me in that time frame.

When this failed the large positive terminal in the 4 pin fan connector completely melted away and the other three pins were wet with antifreeze and well corroded. about 10 months ago I also had an event where the connector was filled with antifreeze and the motor went into emergency mode but the pins were good, I cleaned it up and went on my way. This time when I pulled the control unit out from under the dash and came back later the fan was running at full speed with controller removed and the key out of the car. The only way for that to happen is for power from the large positive pin in the connector ( the one that is burnt away) would have to leak over to either one of the other two small pins as applying 12V to either of those small pins would cause the fan to run at full speed. I don't think a good short between the large positive pin and either of the two smaller pins would do anything would do anything bad but make the fan run at full speed. I think the real problem is that while those pins were shorted the large positive pin was burning away making huge arcing. And that arcing was getting into the smaller pins. So yes it is a wiring issue but I believe I found it. Also the wire harnesses for the fan are two independent harnesses connected together at the 4 pin connector. These are very easy to inspect.

As far as the transistors, the ones I used were 40V 200mA rated. The first transistor circuit I tried used only one transistor It worked but the current was right at the limit of the Arduino pins. So the guy that designed this came up with the two transistor circuit, which really brought it down.

My biggest hurdle right now is space for all this. Staying on the same size footprint I believe I can add a TVS for the fan circuit and the PTC's. My little test with a TSV on the fan circuit showed they really are needed. I fact I am surprised I got away without them for so long. But what I'm hearing is they may have a limited lifespan as well.

Its kind of amazing how you can build a good working system with minimal components and it works fine and for a lot of people it works fine for a couple of years. When I started tin project I didn't have any caps on the Arduino inputs and that is the way it is presented in a lot of the automotive forums. It wasn't until I came here and the Arduino forums that discovered those and started using them. Then I started getting recommendations for circuit protection etc. So I had an event that highlighted an issue and now is the time to address that issue if only in a minimal way that I can understand. In the end it turns out that 10% of the components make it work, 90% make it durable.
 
I think you just want to add some mods, or are you doing a resdesign and new PCB?
Minimum:
I would add a https://www.littelfuse.com/products...lyswitch-resettable-pptc-devices/rxef]RXEF005 Polyswitch (trips at 0.1A, cold typ. 10-20Ω) in series with the PWM output, to protect the transistor Q2 from overcurrent. A small TVS across C-E would protect it from -ve or +ve transients. The reason for this is the fan PWM input might be "dirty", that is pull high current if the fan's ground is poor, or have HV transients appear there from the fan module. I don't think the corrosion would draw over 100mA but maybe it did and that is why Q2 burned up.

To better protect the Arduino I would have the TVS and a series diode like 1N4007 for its power. It's got a small fuse upstream?
I know this messes up the voltage monitoring ADC with the extra 0.7V drop but I don't expect that channel to be super accurate with such high value resistors R12 2MEG and R13 400kΩ. Usually around 10x smaller is used for the ADC input. Nano 33 IoT MCU is SAMD21 but I could not find its input resistance spec. I expect that channel to be reading low.
I am assuming you use around 13.2V for the engine running threshold?
 

Thread Starter

MB107

Joined Jul 24, 2016
400
I think you just want to add some mods, or are you doing a resdesign and new PCB?
Minimum:
I would add a https://www.littelfuse.com/products...lyswitch-resettable-pptc-devices/rxef]RXEF005 Polyswitch (trips at 0.1A, cold typ. 10-20Ω) in series with the PWM output, to protect the transistor Q2 from overcurrent. A small TVS across C-E would protect it from -ve or +ve transients. The reason for this is the fan PWM input might be "dirty", that is pull high current if the fan's ground is poor, or have HV transients appear there from the fan module. I don't think the corrosion would draw over 100mA but maybe it did and that is why Q2 burned up.

To better protect the Arduino I would have the TVS and a series diode like 1N4007 for its power. It's got a small fuse upstream?
I know this messes up the voltage monitoring ADC with the extra 0.7V drop but I don't expect that channel to be super accurate with such high value resistors R12 2MEG and R13 400kΩ. Usually around 10x smaller is used for the ADC input. Nano 33 IoT MCU is SAMD21 but I could not find its input resistance spec. I expect that channel to be reading low.
I am assuming you use around 13.2V for the engine running threshold?
I think for the moment I will add the TVS to the back of the board to get back on the road. If I redesign the board I may take a stab at surface mount and that will give me more room to play. But I definitely need practice with soldering those.

As far as protecting the Arduino, I'm so far happy with what I have. It ran totally unprotected for 4 years and with the TSV's for the last year. I might make the Arduino removable with push in headers. If I did that my board would still be usable. At $30 its not too bad. The large 2M and 400k resistors were a hold over from then I had that circuit on at all times and I was trying to get power drain down to a minimum. I should be able to reduce those by a factor of 10 now, but that system does work really, really well as is. If I recall I am using 13.6V. The battery voltage will drop below that but it takes some time. I suppose that setting would be vehicle dependent and if your using an Optimum battery it would need to be higher. The voltage and the resistors are both constants in the code. But for now, that is anther thing that works really, really well.

So for now it will just be a crude soldered TSV on the back of the board. Future SMD, with TSV's and PTC's
 
Top