Making fan shim "dumb"

As fanshim isn’t on pinout.xyz yet - and given I like the form factor and prefer it to having a.n.other 5v 2 pin fan wired up and around my IQAudio DACPlus, I was wandering if there was any way to just turn fanshim into a dumb fan that’s always on.

The sounds not that obtrusive full on, and I don’t mind losing the features for my purpose.

Would anyone know what needs cutting (traces) or removing (components) or even additional shunting to achieve this ?

I only want I too take power and ground, leaving my IO clean.

I don’t have one, not yet anyway.
Looking at the examples it appears to be three sections.
The button, the LED, and the fan, all wired up separately / independantly.
The fan is likely turned on by a GPIO pin feeding a mosfet transistor. I think I see two on the board?
The LED is likely controlled over i2c
And the button wired to a GPIO pin. I think its actually wired to two pins for some reason? It was mentioned in another thread.
So I would think you could just leave the button and LED as is and not worry about them, assuming you don’t run the fan shim one line installer. They will just sit there doing nothing.
There are a couple of ways to do the fam. Find the pin on the mosfet that the GPIO usued to turn the fan on, determine if its pulled high or low, then just permanently wire it that way. Thats going to feed back to the GPIO pin if you don’t cut a track etc.
The other way is to remove the mosfet(s) and feed power into the pin it used to feed power to the fan. No signal going back to the GPIO.
Do you own a multi meter? If yes you should be able to poke around with the fan on and fan off and figure out what’s happening.

If you go to about 18 minutes in this video there is some info on the fan shim.

The pinout is now up. Looks like it doesn’t use i2c for the LED like I thought.

@wildestpixel Did you ever figure out how to make the fan shim a dumb fan?

I wish Pimoroni would offer a dumb shim fan. I had to remove all the led references in the code so that my gps would still work. I had to replace the use of psutil to get cpu temp as it conflicts with a DS3231 realtime clock. I ended up not using the software; and all is fine on four of my five RasPi 4s. On the last one, the LED likes to come on and stay on (perhaps because it’s the only one with 1-wire turned on, but I don’t see how that’s a problem).

If you mount it, and don’t install any of the software, the fan should just run continuous as long as the Pi has power.
I installed mine, and installed all the software. I originally had it running with the daemon / service. Turned on at 65c and back off at 50c. I have since stopped and then disabled the service. Now the fan runs continuously when I power up my Pi 4B. The LED doesn’t do anything now either. Its off. The Button turns my Pi on and off but thats because that functionality is built into the PI and Raspbian. Grounding GPIO 3, Pin 5, will make your Pi boot up if it has power. If you’ve updated the eeprom with the new boot loader. And I’ve done the config.txt edit to have it shut down the pi when grounded.
dtoverlay=gpio-shutdown
i2c should be usable even with the button making use of GPIO 3. It only grounds the pin when pressed and only while its pressed.
And the UART pins should be usable if the LED isn’t being talked too. Even more so if you haven’t run the fan shim installer.
I only just got my Fan Shim last Friday.

Thanks for the detailed response very good stuff.

Does GPIO 18 still get polled though ?

I do believe the way it works is as follows. If GPIO 18 is pulled Low, the fan is turned off. If its floating or a High the fan is on. Its just a Darlington transistor or something on the fan shim controlling the fan. Thats my theory anyway.
With the fan shim software installed the fan turns on while the Pi boots up. Then once the daemon / service stats running it turns the fan off until the temperature hits the turn on point etc. And when you shut the Pi down, even if the fan is off, it states back up once the software stops running.
Once I stopped and turned off the service, the fan turns on on bootup and never shuts off. I’m assuming GPIO 18 never goes low.
Now, if I’m correct in my theory, if you install something that uses GPIO 18, the fan is likely to turn on and off. If I think of it I may put my voltmeter on GPIO 18 and see what happens with the software running. I still have it installed, its just disabled. .

disable service

sudo systemctl stop pimoroni-fanshim.service
sudo systemctl disable pimoroni-fanshim.service

enable again

sudo systemctl enable pimoroni-fanshim.service
sudo systemctl start pimoroni-fanshim.service

I tried to measure that Pin with the Fan Shim running normally but didn’t get very far. I had to remove my Blinkt to get at the GPIO pins. After doing that my Fan Shim started acting up and not making a reliable contact. Even when I got it working the fan would start every time I connected my volt meter to GPIO 18 to measure the voltage. I decided to just give up and bailed out before I damage something. I still think I’m right though. Somebody from Pimoroni could confirm or deny it.

@gadgetoid @sandyjmacdonald

One way to nullify that pin would be to just drill that pad and make the hole big enough that it doesn’t touch the GPIO pin. You’d only have to make it slightly larger. Getting a drill bit that small may be an issue. I could likely do it with my smallest ball mill in my Dremel kit.

I appreciate the reply, @alphanumeric

As I tried to say in my post, on one of my PIs, the LED comes at some point after it is booted and then stays on. It does that with no software installed; and it does that with the software modified to rip out all support for the button and LED (I have that on github here: https://github.com/chaunceygardiner/fanshim-python/tree/just-the-fan-man). Note: it also replaces psutil for getting the temp because psutil does not work correctly with the DS3231 RTC.

I have a total of five RasPi 4s and four of them work without software running with the fan running continuously. They also work with the software, turning on and off as expected, with the modified software I mention above.

The last Pi, the only one with 1-wire turned on as I have some temp probes hooked up to it, works; BUT the LED comes on; I think always within the first 10 or 20 minutes, and then stays on for the duration. This is true with —noled specified in the original software, with the modified software and with no software running. It’s not likely the fan shim as I bought another and I still see the same behavior.

Since I have an extra fan shim, this morning I snipped pins 8 and 10 (i.e., BCM 14 and 15). It was easy enough to do. I figured I would still have contact as I saved pin 12. The fan doesn’t fit nearly as tightly as it did before; but it appears to have solved my LED problem.

Here is a photo. Look closely to see the snips so that pins 8 and 10 don’t make contact:

I’ll post another photo where it’s easier to see in a follow up. I’m a new user and can only include one photo in a post.

These pins are being used for the GPS (https://pinout.xyz/pinout/ultimate_gps_hat). One would think that something in the GPS communication (NEMA sentences) is causing the LED to turn on, but all five of my PIs have GPSs. The offending PI’s only hardware difference is the 1-wire.

Pimoroni, how about a dumb fan shim?

And that other photo that I couldn’t include:

I’m sure there are alternatives out there if you hunt around. Mounting the fan so you can attach something else to the GPIO is one obstacle. I am going to solder my Fan Shim at some point. I’m still mulling over what header I want to use and what else I may want to attach.

I’m looking for something like this too. I don’t care about noise and the Pi4 really needs a fan. My other Pi4’s are in either custom cases (read I hacked them to fit a fan) or off the shelf ones, but these don’t have any need for the GPIO pins at all so it’s not an issue.

Now I’m looking at one of these kits for the kids and already have a spare Pi4 to drop in but would be keen to put in the fan shim if possible without impacting all the things this kit will otherwise do. A dumb fan shim would be perfect.

Would modding the board as above essentially make it a dumb fan that then doesn’t interfere with anything else plugged in?

Firstly the pi 4 doesn’t run nearly as hot as it once did, thanks to firmware updates by Rpi themselves, so a fan may not be essential, depending how much you stress the CPU ,your pi isn’t enclosed in a case. If it does overheat it won’t burn out, it throttles as a precaution. My guess you will not need a fan.

If you install the fanshim without installing the software it will run constantly. You could put a pin extension on, to attach the breakout strip , but why would you want to? The “shim” part is not for holding the fan in place, it runs code via the GPIO pins and bypasses the need for bunches of jumpers.

The reason it is £10 and people buy it, is because it doesn’t just continuously run like any cheap £1 Chinese eBay fan would. Take off the shim and you have a £10 fan.

Your kit, as cool as it looks, occupies the gpio pins via the boards breakout cable. Who knows what doubling up on the pins will do with regard to the rest of the kit? If you find you do need a fan to cool it, Why not fit a cheap fan with standoffs and run via usb or with jumpers from the breadboard on the kit (that’s a project for the kids in itself) you only need a live and earth connection to run a fan

Because I actually know the effect of stacking a sound card on it and know the difference in noise level between fanshim and a cheap Chinese fan. If this wasn’t a prerequisite there would be no thread here.

The fan on a fanshim is a cheap Chinese fan! Perhaps you don’t “know the difference” all fans are not created equal.

Sorry if you thought it was made by elves in the pimoroni basement

Also there’s a bit more circuitry on the proposed kit than your sound card, stacking may work but if it doesn’t and wrecks a £200 breakout kit “I thought” won’t be enough.

My Fan shim is now soldered to a booster header. On top of that I soldered a Pico Hat Hacker. To that I soldered a 90 male header. My Blinkt is plugged into that. I could easily remove the Blinkt and plug in a ribbon cable. My 90 male header is pointing away from the Pi opposite direction to the HDMI and USC C power Jack. I’ll take a picture and upload it here when I get a chance. Just a FYI post.

Which is much of the reason people are calling out for a dumb fan.

On price, unless I go aliexpress or ebay (which is fine), the local electronics store is AU$13.95 (£7.25) so if there was a dumb fan shim that only tapped power it really doesn’t need to be all that much cheaper to be competitive with the local store (and comes with its own mounting solution!).
https://www.jaycar.com.au/5vdc-30mm-thin-2-wire-fan/p/YX2500

Yes, my specific application has an open design which reduces the heat issues, but from experience, I can tell you that the official red/white pi case causes massive heat issues but even the smallest amount of air flow solves the problem. I’ve used both a case modded with the fan mounted on the outside to allow for a heat sink on the inside and an off the shelf case without any heat sink and the fan enclosed. Both seem to perform about the same.

I’m sure I could rig up something else without too much trouble, although I have to fabricate a mount. If I can slip the fan shim between the GPIO pins (with riser) and the ribbon cable I think it would be a pretty elegant solution.

If it was a dumb fan and only tapping power there should be more than enough headroom to still do all the other things this kit does.

1 Like

Yep, that seems pretty dumb to me. Two suggestions. You could paint Araldite (epoxy resin) on the shim holes to which you wish to insulate the pins. Or you could tuck bare wires or a soldered loop under/ inside the header and make a shim mount from your credit card or a folded plastic bank note.

If you own a Dremel tool or the equivalent, you can get very small drills for it. Small enough to enlarge the holes in the fan shim to isolate the ones you think may be an issue. BCM 3 (Wake) shouldn’t be an issue, its only grounded when and while the button is pressed. Same for BCM 17. There is at least one forum member here that has cut off those last two pads, BCM 17 and BCM 18. They just trimmed the end of the circuit board. I’m not sure about the LED control pins BCM 14 and 15? What I mean is, if the LED circuit even if not in use, will mess with anything else wanting to use those Pins.

1 Like

Yes you have lots on one set of pins, but the “crowpi” has a lot more on one PCB configured by someone else. my concern is what is on the underside of the crowpi to run that all in conjunction. If the power draw from the fanshim was on the right side of the breakout ribbon I would not be worried. I am not worried enough to investigate it either way. Just mentioned it could cause a problem as it seems well designed, without options until after all the gpio pins were already fully occupied. Imo why try to fix something with a hack because it may have an unproven problem later? I wonder what the manufacturer would suggest.