Open Source PWM Fan Controller

Younger me definitely would have had it in the cab, and maybe even now on some other vehicles like a dedicated wheeler. But this time, I put in all the hard work so I never have to look at it again haha. Realistically I want this thing to end up basically being a set it and forget it deal. I've got the OEM temp gauge on the dash, and it bings with an idiot light if the temp gets too high. Otherwise, I'll just let it do its thing
 
Alright have some humor for you guys. Think heat was an issue? Gotta love low temp thermoplastics like good ole PLA. I’ll be moving it to somewhere ambient anyways (after it goes in the new case), but I really need to start tinkering with petg and/or abs. But pretty sure the heat was causing the arduino to throttle pretty hard too, fingers crossed

IMG_0245.jpeg


IMG_0246.jpeg


IMG_0248.jpeg
 
Last edited:
Alright have some humor for you guys. Think heat was an issue? Gotta love low temp thermoplastics like good ole PLA. I’ll be moving it to somewhere ambient anyways (after it goes in the new case), but I really need to start tinkering with petg and/or abs. But pretty sure the heat was causing the arduino to throttle pretty hard too, fingers crossed

IMG_0245.jpeg


IMG_0246.jpeg


IMG_0248.jpeg
Might be an issue LOL
 
All installed in the new case with a few small design updates. I’ll probably upload this latest revision of the case when the time comes, I think it’s set. But don’t want to do the big comprehensive update post with the parts list, code, and how-to until I have a good amount of issue free run time to stress test it.

IMG_0254.jpeg
 
Alright round 2 in a smarter location lol. Far side of the air box, should be one of the cooler spots in the engine bay I think. Didn’t have to replace any electronics in the box and all seems happy. Just didn’t like being hot. Wiring should be in a loom, round ‘tuit

IMG_0258.jpeg


IMG_0257.jpeg
 
That's a good fit.

Yeah I think it'll be happier over there. Still amused at the result of the first attempt, if anyone was wondering about how PLA holds up to the heat of a radiator lol.

I've been experimenting with Fritzing for the first time, figured might as well try to recreate the wiring I did here. Buuuut I'm doing it from memory, the code, and some bad pictures so I need to double check it :lmao:.It's a little sloppy in the fact that there are a few shared grounds, but seems easy enough to read still

PWM Fan Controller - Fritzing Example.png
 
Yeah I think it'll be happier over there. Still amused at the result of the first attempt, if anyone was wondering about how PLA holds up to the heat of a radiator lol.

I've been experimenting with Fritzing for the first time, figured might as well try to recreate the wiring I did here. Buuuut I'm doing it from memory, the code, and some bad pictures so I need to double check it :lmao:.It's a little sloppy in the fact that there are a few shared grounds, but seems easy enough to read still

PWM Fan Controller - Fritzing Example.png
Seems like it's what you need to be able to recreate it.
 
Welcome to version number whatever, with more improvements and lessons learned. First, yeah it's finally going within view and reach of the driver. Half because the engine bay is just warm (too warm for PLA, but better plastics would be fine), and half because I'm making the display more useful.

Now it's got a full high res color display, and rotary encoder with push button instead of a basic potentiometer. That opens it up to quite a bit more tuning on the device itself. I'll also have the main display screen showing current temperature and commanded fan temp so you will always know what it's trying to do (yeah yeah, like you guys were saying early about keeping it in view :flipoff2:). Also it can now control two fans, has a two wire temp sensor, and all the wires to the unit are going through an RJ45 ethernet port because compact and convenient. I'll post up as I get the new unit operational

PWM Fan Controller - Lilygo - 1.JPG
 
Welcome to version number whatever, with more improvements and lessons learned. First, yeah it's finally going within view and reach of the driver. Half because the engine bay is just warm (too warm for PLA, but better plastics would be fine), and half because I'm making the display more useful.

Now it's got a full high res color display, and rotary encoder with push button instead of a basic potentiometer. That opens it up to quite a bit more tuning on the device itself. I'll also have the main display screen showing current temperature and commanded fan temp so you will always know what it's trying to do (yeah yeah, like you guys were saying early about keeping it in view :flipoff2:). Also it can now control two fans, has a two wire temp sensor, and all the wires to the unit are going through an RJ45 ethernet port because compact and convenient. I'll post up as I get the new unit operational

PWM Fan Controller - Lilygo - 1.JPG
Exciting!
 
Well done on this development project.

If it's staying in the engine compartment, RJ45 connectors are not resilient to dust/moisture exposure and only allow ~24awg wires. It could be a source of trouble long term. I'd recommend a more standard sealed automotive connector. If you're set on the RJ45, there are options for outdoor ones with a sealed cover. You also could recess it and add threads for a cable gland.
 
um yes please I need a unit to setup a couple fans.

It should be pretty sweet, but it’ll def be a diy project still when it’s all said and done haha. So as long as that doesn’t scare ya!

Well done on this development project.

If it's staying in the engine compartment, RJ45 connectors are not resilient to dust/moisture exposure and only allow ~24awg wires. It could be a source of trouble long term. I'd recommend a more standard sealed automotive connector. If you're set on the RJ45, there are options for outdoor ones with a sealed cover. You also could recess it and add threads for a cable gland.

Thanks! I agree the RJ45 would be less suited to the engine bay, this one is dedicated to living right next to the gauge cluster, within view of the driver so I’m less concerned about environmental factors than my previous iterations (but dashboards do get hot, so I finally printed in PTEG anyways). TBH I’d love to use sealed automotive connectors anyways, but even with some searching I haven’t found great answers for bulkhead/panel mount 6+pin connectors that only need to carry like 1 amp or less, in a convenient compact package.

The new one is built, now to just make the new program for it

IMG_1731.jpeg
 
Might be overkill but this will get you a decent connection.
1745932008498.jpeg

That...is nice and compact. Looks like that would do the trick, saved for later
 
TBH I’d love to use sealed automotive connectors anyways, but even with some searching I haven’t found great answers for bulkhead/panel mount 6+pin connectors that only need to carry like 1 amp or less, in a convenient compact package.
There are a ton of circular connectors out there that may fit the bill. Lemo and Fischer Connectors if you want to spend $$$, Amphenol, Phoenix Contact. There are also industrial RJ-45 connectors/cables intended for harsh environments but these tend to be large.

Its been a long while since I have looked at this sort of thing, but you could look at what is used on industrial sensor or medical device connectors. There were some lower cost plastic bodies connectors that I've seen before.

one option if you cannot find a true bulkhead connection would be to pot the electronics/connectors in the enclosure to seal everything up.

Interested to see what you come up with here.
 
It should be pretty sweet, but it’ll def be a diy project still when it’s all said and done haha. So as long as that doesn’t scare ya!



Thanks! I agree the RJ45 would be less suited to the engine bay, this one is dedicated to living right next to the gauge cluster, within view of the driver so I’m less concerned about environmental factors than my previous iterations (but dashboards do get hot, so I finally printed in PTEG anyways). TBH I’d love to use sealed automotive connectors anyways, but even with some searching I haven’t found great answers for bulkhead/panel mount 6+pin connectors that only need to carry like 1 amp or less, in a convenient compact package.

The new one is built, now to just make the new program for it

IMG_1731.jpeg
Newest revision looks awesome. How is the board and everything holding up to the moisture and vibration? I have an idea for a rear steer controller using an arduino but I didn’t know if they would hold up to off road
 
Thanks for the connector recommendation guys. Actually I get to test them out earlier than I was expecting, already on to a new version (sigh lol). Found out the hard way that one corner of the screen is unsupported and very fragile, and cracked a tiny corner right where the ribbon cable meets the display. Oof.

So anyways onto the next-next-next version hah. Fully reconfigured again, this one even smaller and it has a touch screen so no encoder or external button needed. The screen itself is the same 1.91" and 240x536 pixel size, the packaging is just way better. And I'm giving the M8 6 pin circular connectors a try, should work pretty well

PWM Fan Controller - Waveshare - 1.JPG


PWM Fan Controller - Waveshare - 2.JPG


IMG_1784.jpeg
 
Newest revision looks awesome. How is the board and everything holding up to the moisture and vibration? I have an idea for a rear steer controller using an arduino but I didn’t know if they would hold up to off road

Thanks man. Things have actually held up pretty well on the electronics side of things. Right at the beginning when I had the controller directly on the fan shroud the Arduino seemed to be getting hot to the point of throttling, but it never happened again once I put it in a cooler spot. I've had problems with cases getting too soft basically anywhere in the engine bay, PLA is just too soft/low temp. Vibration hasn't been an issue and the early cases were pretty water resistant so no issues with those.

As Callahan mentioned, there are some hardened arduinos out there, which may not be a bad thing for a higher priority use like steering related stuff. But even the basic ones I'm using seem like they'd probably survive as long as you kept them dry and less than like 150 degrees haha.
 
Getting the program together for that latest version from a few posts ago. Super easy to navigate, all tuned straight on the device. This will live within view of the drivers seat

Main screen, the values have bar charts as well
IMG_1928.jpeg


The settings screen (by hding the settings button for 1 second):
IMG_1927.jpeg


Then you can select any of those 3 categories by pressing them for 1 second, make your changes then save and exit.
IMG_1931.jpeg
 
Thanks for the connector recommendation guys. Actually I get to test them out earlier than I was expecting, already on to a new version (sigh lol). Found out the hard way that one corner of the screen is unsupported and very fragile, and cracked a tiny corner right where the ribbon cable meets the display. Oof.

So anyways onto the next-next-next version hah. Fully reconfigured again, this one even smaller and it has a touch screen so no encoder or external button needed. The screen itself is the same 1.91" and 240x536 pixel size, the packaging is just way better. And I'm giving the M8 6 pin circular connectors a try, should work pretty well

PWM Fan Controller - Waveshare - 1.JPG


PWM Fan Controller - Waveshare - 2.JPG


IMG_1784.jpeg
New revision looks great.
These little touch screens are really slick.
Not that you need it but you could incorporate this to the obd can bus and use the temp signal from the bus.

Not suggesting you're doing it wrong I just realized your project is really close in this version to the touchscreen can bus gauges, might be a easier implementation for a factory efi vehicle.
 
New revision looks great.
These little touch screens are really slick.
Not that you need it but you could incorporate this to the obd can bus and use the temp signal from the bus.

Not suggesting you're doing it wrong I just realized your project is really close in this version to the touchscreen can bus gauges, might be a easier implementation for a factory efi vehicle.

That's something I've seriously considered, I think it's a great option. And to be honest, I should be able to make the program side of the controller accept either input at will, just need to put the additional can bus pins in the connector, and a can bus receiver in the box and should be able to get it to work.

Maybe for another iteration down the road haha
 
There any specs on the fans? Size?

Info I'm seeing is showing ~70 amp draw?

Unimog 406 has a non clutched cast metal fan, probably kills 5-10 horsepower at higher revs. With only 95 horses, that's alot.

My alternator is 55 amps, but there's a 90 amp Audi alternator that's supposed to fit for pretty cheap.

I'd given thought to 90s Toreass fans, but this seems to be the latest and greatest.

The Toreass fan I had on my ZJ was just on or off, was a MOSFET controller I forget who sold around 2005.

I wouldn't need 20 different settings. 190* fan comes on at 50% and at 200* it's at 100% would be fine.
And a way to shut it off for water crossing and maybe some sort of chime that reminds that switch has been pushed... or maybe even like a 5 min auto reset.

And the AI is utter **** for correct info on google searches. It's generally so bad it's laughable, but super frustrating it lies its ass off and has bull**** where people are looking for valid info.

I can certainly see any program it makes as being useless.
 
Last edited:
There any specs on the fans? Size?

Info I'm seeing is showing ~70 amp draw?

Unimog 406 has a non clutched cast metal fan, probably kills 5-10 horsepower at higher revs. With only 95 horses, that's alot.

My alternator is 55 amps, but there's a 90 amp Audi alternator that's supposed to fit for pretty cheap.

I'd given thought to 90s Toreass fans, but this seems to be the latest and greatest.

The Toreass fan I had on my ZJ was just on or off, was a MOSFET controller I forget who sold around 2005.

I wouldn't need 20 different settings. 190* fan comes on at 50% and at 200* it's at 100% would be fine.
And a way to shut it off for water crossing and maybe some sort of chime that reminds that switch has been pushed... or maybe even like a 5 min auto reset.

And the AI is utter **** for correct info on google searches. It's generally so bad it's laughable, but super frustrating it lies its ass off and has bull**** where people are looking for valid info.

I can certainly see any program it makes as being useless.
The fan you choose will have corresponding amps to the watts of the motor.
There are many, many options from 250w to 800+.
The smaller watt units are usually used in tandem. IMO this is great area to gain some overhead, if you don't need it your controller won't make you use it because these are temp set point PID based, not OFF/ON.
 
The fan you choose will have corresponding amps to the watts of the motor.
There are many, many options from 250w to 800+.
The smaller watt units are usually used in tandem. IMO this is great area to gain some overhead, if you don't need it your controller won't make you use it because these are temp set point PID based, not OFF/ON.
I'd assume they only had a couple versions for the JL?
 
So this controller can operate basically any brushless fan out there, it's not really tied to the JL fan specifically. That's the one I happened to choose, but this controller is for everything.

But for the JL fan specifically, they have 600 watt and 850 watt versions, and they're a solid choice if they fit your rad. Here's one of my posts about it in the Cooling Fan Tech thread, and then a few further posts down I also share the shroud dimensions etc

Cooling Fan Tech

And I've made a bit of progress on the fan controller. Decided that gauge style sweeps would fit better and look better, so went that route. Then getting the menus a little more refined, and I'll be testing it in the jeep

IMG_1935.jpeg


IMG_1936.jpeg
 
Last edited:
So this controller can operate basically any brushless fan out there, it's not really tied to the JL fan specifically. That's the one I happened to choose, but this controller is for everything.

But for the JL fan specifically, they have 600 watt and 850 watt versions, and they're a solid choice if they fit your rad. Here's one of my posts about it in the Cooling Fan Tech thread, and then a few further posts down I also share the shroud dimensions etc

Cooling Fan Tech

And I've made a bit of progress on the fan controller. Decided that gauge style sweeps would fit better and look better, so went that route. Then getting the menus a little more refined, and I'll be testing it in the jeep

IMG_1935.jpeg


IMG_1936.jpeg
No idea how you did this but it looks kick ass.
 
Top Back Refresh