I've been somewhat quiet in this forum for a while now, but I thought I would share this project I've been working on. I'm working on something that will require a lot of POE network switches and so I picked up second hand a heap of Cisco SF300 48 Port switches for the job. Nice units, cost me about $120ish each, bargain. Problem is I don't like the noise they make. Why not make a custom fan controller for them? The switches have 3 little 40mA fans and run on about 200mA each. The goal is to have something plug and play that doesn't alter the switches in any way and just sits between the fans and the mainboard and quietens the fans while making sure the switch doesn't complain that there are no fans present. I've just started to get into the Arduino development environment, previously I'd code in straight C and compile with gcc to an AVR and upload to the board. Well you can pretty much do the same now with the Arduino IDE out of the box, just with a nice simple IDE and heaps of libraries to go with it. I'm liking it; you can be lazy and use all the builtin main library commands to do stuff quickly, or if needed crack out the datasheet and fiddle with registers to get the max performance when needed. I picked the Attiny88 chip, mostly because I'm using the same one in another project, and there is a nice Core plugin that makes it all work with Arduinio - https://github.com/SpenceKonde/ATTinyCore The circuit is pretty basic. Some NTC temp sensors in, a MOSFET to PWM the fans, 12v to 3.3v regulator to power the micro, few leds to blink if needed and an FTDI USB to RS232 for debugging. I read in the fans tach signals and connect to the tach signals back to the switch's mainboard to feedthough a fake signal that the fans are still spinning fast. PCB! The design has female pin connectors on the PCB that mount right onto the switches fan headers for a clean little mod to sit the mainboard and the fans. Maybe I'll clean up my code into a state that I'm willing to share, but it is pretty simple at the minute while I've been experimenting with it. It just reads in the thermistor on an ADC line, computes the temperature and puts it into a PID control loop to hit a fixed target temperature that spits out a number that then gets written to a PWM output that regulates the fan speed. There are always things you don't expect to work 100% when you first design a circuit, but I thought with the experience I've had that I could get this one 100% first go. Hah, No! First mistake, no flyback diode on the fan. Massive voltage spikes on the power rail, thought it should have killed the mico, but it only made it lock up. Something weird with the tach line back from the fan, it was injecting large (8v) back into the micro, thought that would have killed it too, but it didn't. The next one had be buggered for a while. The micro would PWM control a fan just fine at some large speed, like 200 on an 8bit 0-255 scale, but would just cause the micro to lock up at something slower. You'd never guess but it was inadequate decoupling capacitors, you can see my bodges on the PCB pics. A large ceramic works where the small electo is at the bottom, but I lifted a pad and it was an easier fix with that electro. So, all good now and it works and job done and the switch runs quiet now. Hah, No! Basically there is a fundamental error in the assumptions on how the switch monitors the fans health, that I'm going to save for the next installment on the hush switch project.