I want to build a PC fan controller for 3 and 4 pin fans (universal). The 4 pin fans are simple as it is just a PWM signal I am generating from Arduino (after changing the PWM frequency on the pins). Running the 3 pin fans with a PWM signal is also working. Sensing the speed of the 3 pin fans with the Arduino is also working but I can not sense the speed of the 3 pin and power them at the same time. The tach signal from the 3 pin fan is powered by the fan power so if you provide a PWM signal as power the tach signal gets chopped and reads incorrectly. I understand I need to utilise pulse stretching so that I can read the RPM on the longer pulses whilst the tach signal is not being chopped but this is what I am stuck with. I do not know how to code the Arduino to do pulse stretching and I do not know if there is an analogue way using just components and no microcontroller.
It would be super awesome if anyone could give me an idea. If this pulse stretching could be sorted then I could make a fan controller with separate channels for each fan, I could have ports for 4 and for 3 pin, I could read all the RPM and I have also rewired all my fan LEDs through a constant current driver so could use another PWM channel to control the LED lighting too all in one package. If I cant figure it out I can either power them with a linear voltage (which I didnt want to do due to efficiency and easier fan stalling) or use only 4 pin fans but that would require changing fans and being defeated lol.