k80-linux-cooling/README.md

50 lines
2.6 KiB
Markdown
Raw Normal View History

2022-10-22 20:01:04 -05:00
# Universal K80 Cooling
2022-10-25 15:26:53 -05:00
This is a Linux cooling control software, which uses an Arduino Uno, PWM fan, and Python 3. It was designed for use with a Tesla K80 (a datacenter GPU without fans), but should work with any NVIDIA GPU.
2022-10-25 08:16:55 -05:00
2022-10-22 20:01:04 -05:00
This will determine the speed your fan (connected to your Arduino) should run at based on the highest temperature
between your GPUs, then will send that speed to your Arduino.
2022-10-24 21:57:57 -05:00
Make sure to set the port in the .py file you use!
2022-10-22 20:01:04 -05:00
---
### How to use
1. Connect the Arduino to the fan according to this diagram:
2022-10-22 23:00:05 -05:00
![PWM connected to pin 9, TACH not connected](Images/arduino-fan-diagram.png)
2022-10-25 08:16:55 -05:00
2. **Set the port variable**
2022-10-22 20:01:04 -05:00
1. Instructions for finding the port are in the Python code.
2022-10-25 11:36:05 -05:00
3. Upload `Arduino/rx_speed.ino` to your Arduino Uno, then run `Python/tx_speed.py`.
2022-10-25 09:09:18 -05:00
1. Make sure not to run the Python file until the Arduino sketch is done uploading! It should only take a few seconds.
5. Revel in your success!
2022-10-22 20:01:04 -05:00
1. If you plan to use this constantly, make sure to create a service that starts the Python code on boot.
### My setup
I use [this](https://www.thingiverse.com/thing:4960323) 3D-printed fan adapter for my Tesla K80; I highly recommend it.
2022-10-25 09:02:25 -05:00
Also, I use [this](https://www.amazon.com/8025-DS08025R12U-0-7A-4Wire-Cooler/dp/B08PYLMGVM) fan. I wouldn't recommend buying it, though. I just use it because it's the most powerful fan I already had. It's also pretty loud.
2022-10-22 20:01:04 -05:00
In the long-term, I'm planning to build my own front cover for my PC case (a Corsair 175R), and will have a spot for my
Arduino and wiring in it.
Pictures will be added later once my setup is complete. Don't expect it to happen anytime soon, though.
---
### Notes and Limitations:
- This currently **only supports NVIDIA GPUs**
- This currently **only supports normal PWM**, not delta PWM
- You may need to change some variables in the Arduino code depending on your fan's specifications.
- Try looking up a datasheet
- This was designed for an Arduino Uno, and should work on one. I don't know about running it on anything else, though.
2022-10-24 21:57:57 -05:00
- I'm busy, so a lot of the files are probably still broken. However, the main stuff is working.
2022-10-22 20:01:04 -05:00
---
### Resources I used
- Python-Arduino communications library - [pySerialTransfer](https://github.com/PowerBroker2/pySerialTransfer)
2022-10-25 12:41:45 -05:00
- Thanks for the help figuring this out, [PowerBroker2](https://github.com/PowerBroker2)!
2022-10-22 20:01:04 -05:00
- Arduino PWM fan control - [25 kHz 4 Pin PWM Fan Control with Arduino Uno](https://create.arduino.cc/projecthub/tylerpeppy/25-khz-4-pin-pwm-fan-control-with-arduino-uno-3005a1)
2022-10-22 23:03:34 -05:00
- This is the basis of my arduino-fan diagram
2022-10-25 08:16:55 -05:00
- See NVIDIA GPU temperatures - [GPUtil](https://pypi.org/project/GPUtil/)