Hi everyone!
I wanted to share my recent Project TinyMiniMicro build that fixes a very common headache: cooling a passive server GPU inside a micro-PC.
I managed to fit an **NVIDIA Tesla A2** inside my **Lenovo ThinkCentre M920x Tiny** to use it as a compact local AI / media node. Since the card is completely passive and the Lenovo Embedded Controller (EC) is locked (making software fan control via OS impossible), I had to build a hybrid hardware-software solution.
I designed a custom fan shroud, mounted a **5V laptop blower fan** onto the Tesla's heatsink, and wired it to an **Arduino Nano** (wrapped in Kapton tape for insulation).
The best part? The entire setup runs **completely off a single USB port** for both 5V power supply and serial data! No external 12V power bricks or extra cables needed.
On the software side, I co-created a lightweight **C# .NET WinForms background application** that communicates directly with the NVIDIA driver using native **NVML API** (zero-CPU overhead, no `nvidia-smi` polling). It features:
* An animated Task Manager-style tray icon grid tracking GPU Load, Temp, or RPM.
* A streaming real-time double-click monitoring graph.
* An interactive Cooling Curve Editor where you can drag Min/Max target nodes with your mouse.
**Hardware Failsafe:** To keep it bulletproof, the Arduino runs a 6-second watchdog timer. If the Windows app crashes or the OS freezes, the Arduino automatically overrides the signal and spins the fan to 100% to protect the GPU.
It runs whisper-quiet at idle and keeps the Tesla A2 stable at around 60-63°C under a sustained 100% AI/compute load.
I've opened the entire project (full C# source code, compiled standalone .EXE, translated Arduino sketch, and 3D printable files) on GitHub for anyone facing the same cooling limits:
Automatic smart fan controller for passive NVIDIA Tesla GPUs using Arduino and .NET WinForms (NVML). - romkaork-stack/NVIDIA-Tesla-Smart-Fan-Controller
github.com
Hope this helps someone trying to squeeze enterprise compute power into these awesome Tiny nodes!