Has anyone made further attempts at proper fan replacement mods?
I want to attempt a fan swap on my TM200 (Japanese unit). As is popular for various fan mods, a Noctua NF-A4x20 would be suitable, and I think even at default fan curves or worst case full power, maybe with a touch of manual speed control should do very well.
Thread history
I have seen only a few attempts at getting a fan swap to work.
@duckduck identified the pinout a few years ago (
https://forums.servethehome.com/ind...8-hybrid-server-on-ebay-150.29619/post-281046 ) but didn't seem to have much luck otherwise with the fan error detection. They also report no luck with the PWM signal and a Noctua fan (
https://forums.servethehome.com/ind...8-hybrid-server-on-ebay-150.29619/post-297465 ).
@chereszabor had some more details (
https://forums.servethehome.com/ind...8-hybrid-server-on-ebay-150.29619/post-297460 ) but was also unsuccessful with bypassing the fan error detection.
Another attempt I saw in this thread was
@Rubenel using the stock fan without blades mounted outside the case. (
https://forums.servethehome.com/ind...8-hybrid-server-on-ebay-150.29619/post-297898 )
Initial testing and promising results
When I open up my unit completely and remove the fan, I of course get the "fan failure" error when trying to boot.
Out of curiosity, and perhaps stupidity, I have concluded that if I short to Ground the fan header pin that sits next to Ground, I bypass the fan error and can boot without a fan. Current draw is roughly 0.67 mA when I short through my multimeter current measurement mode, so it seems safe enough. If I stop shorting the pin after boot then the system will detect a fan failure which after 60 seconds unless cleared triggers a shutdown.
I don't like the idea of a permanent short of PWM Signal to Ground, even though the current draw is low. I found that with a 2.2k pull-down resistor I get the same effect of bypassing the fan error detection with reduced current draw, at only 0.47 mA. With a 4.7k pull-down resistor the fan error is still triggered.
With server power disconnected, the PWM Signal pin measures at 4.85k Ohm resistance to ground, which is gone and measures infinite (above 200M on my multimeter) when power is connected to the server. Not sure if this is significant.
With either of the pull-down resistor or short to ground I get a positive current reading with negative lead to ground and positive lead to the PWM Signal pin; current flows from PWM pin to ground. When I connect a regular PC fan (I only have one 4-pin PWM fan readily available, a Scythe Kaze Flex Slim PWM 92mm) then I get a negative current measurement; current flows to PWM pin from fan. I also tried to pull down the PWM pin to ground while connecting the Scythe fan PWM - it was insufficient pull-down with 2.2k resistor so fan error is triggered, and there is no PWM control for the fan. Lowering the pull-down resistor to 1k again bypasses the fan error, but still no PWM control.
Voltage I can measure from the PWM pin when it's floating/disconnected is just below 3.3V, and at least my multimeter can't detect any change in voltage when left floating regardless of whether I set PWM to 15% or 100%. Not sure if this is relevant, and I don't have better equipment to check the signal nor do I know what to expect when it's otherwise disconnected.
Temperatures with and without stock fan
With the case open and booted into an idle proxmox (no VMs running), with the fan removed and disconnected and shorting the PWM pin to Ground on the motherboard, the system runs fine. At 23 C ambient running (idling) for 60+ minutes without active cooling, the CPU temperature has slowly climbed up to being stable around 80-81 C.
For reference, my system (Xeon D-1518, 2x32GB RAM and a pair of Samsung SM863 SSDs) with the fan mounted and blowing at stock fan curve, the CPU temperature at idle is roughly 51 C and fan speed stays low (roughly 15%). I have not done any repasting of thermal paste yet. Full fan speed (PWM min set to same as stock PWM max, which is 204) brings CPU idle temps down to roughly 38 C.
To check minimum viable cooling required I've performed a max CPU load test with "stress" in Linux ("stress --cpu 8 --io 8 --vm 8 --vm-bytes 6G") and the CPU keeps below 100 C (at 23 C ambient) with roughly 15% fan speed. Bodes well for a fan swap.
Interesting observations
With the fan connected I can force the fan to stop using the modified iLO where I have access to the "fan" command. I set max PWM to 1, fan stops, and system keeps chugging. So, the system has a kind of "zero RPM" mode support.
With the max fan PWM set to something low (e.g. "fan p 0 max 10", where 10 is the minimum for the fan to start in my testing), sufficient for the fan to spin at its lowest, and stopping the fan with my finger, the system detects fan the fan stopped and tries to re-start it after a few seconds. If I keep holding the fan blades to prevent it from starting then the system issues a shutdown after about 60 seconds.
Setting the max fan PWN to a value sufficiently low for the fan to stop on its own (1-7 in my tests) then the system doesn't care that the fan is stopped nor does it trigger any shutdown nor fan failure detection.
Conclusions
Fan speed via RPM / tach sense doesn't have any impact on the fan error detection.
The fan error detection system can be tricked with PWN signal pin pulled down (~2.2k or less) or even short to ground (might be risky).
Fan stopped due to low max fan PWM set from iLO is OK and will not cause a fan error or shutdown (but these settings are not persistent).
I still have no idea how to get the PWM signal to work with a traditional PC fan, but at least it's possible to completely remove and replace the OEM Delta fan.