diff --git a/.gitignore b/.gitignore index b947668..8f11f84 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ /build /lib /local.make -/*.code-workspace diff --git a/docs/circuit-netlist.txt b/docs/circuit-netlist.txt deleted file mode 100644 index 53e620a..0000000 --- a/docs/circuit-netlist.txt +++ /dev/null @@ -1 +0,0 @@ -'microcontroller #5:4 #7:5 #19:2 #23:0 header=Arduino Micro sz=34 p0=13 p1=12 p2=+3V p3=11 p4=AREF p5=10 p6=18 p7=9 p8=19 p9=8 p10=20 p11=7 p12=21 p13=6 p14=22 p15=5 p16=23 p17=4 p18=NC p19=3 p20=NC p21=2 p22=+5V p23=GND p24=RESET p25=RESET p26=GND p27=0 p28=VIN p29=1 p30=14 p31=17 p32=15 p33=16 p34= p35= p36= p37= p38= p39= diff --git a/docs/circuit.svg b/docs/circuit.svg deleted file mode 100644 index bd73013..0000000 --- a/docs/circuit.svg +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - female fan connector 1 - female fan connector 0 - male fan header 1 - male fan header 0 - - GND - - - +12V - - - TACH - - - PWM - - - GND - - - +12V - - - TACH - - - PWM - - - GND - - - +12V - - - TACH - - - PWM - - - GND - - - +12V - - - TACH - - - PWM - - - - Arduino Micro - - - - 13 - - 12 - - +3V - - 11 - - AREF - - 10 - - 18 - - 9 - - 19 - - 8 - - 20 - - 7 - - 21 - - 6 - - 22 - - 5 - - 23 - - 4 - - NC - - 3 - - NC - - 2 - - +5V - - GND - - RESET - - RESET - - GND - - 0 - - VIN - - 1 - - 14 - - 17 - - 15 - - 16 - - - - - \ No newline at end of file diff --git a/kulifuli-arduino.code-workspace b/kulifuli-arduino.code-workspace new file mode 100644 index 0000000..41025d4 --- /dev/null +++ b/kulifuli-arduino.code-workspace @@ -0,0 +1,10 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": { + "makefile.configureOnOpen": true + } +} \ No newline at end of file diff --git a/readme.md b/readme.md deleted file mode 100644 index d9a110b..0000000 --- a/readme.md +++ /dev/null @@ -1,61 +0,0 @@ -# Kulifuli — The Arduino Half - -Kulifuli is an Arduino Micro based PC fan controller with the option to send a fake tachometer PWM -signal back to the motherboard. This is useful for for example server motherboards that refuse to -operate unless such a signal is received. (Such as the one in my HP Proliant that always spins its -fans at 100% after the latest firmware update. Thank you HP, very cool of you to do that.) - -This repository contains the Arduino side of the software, in addition to information about the -hardware. For the software to run on the host see -[this repository](https://kernelmaft.com/forgejo/zedfrigg/kulifuli-host). - -## Building - -Requirements: GNU Coreutils, GNU Make, -[Arduino CLI](https://docs.arduino.cc/arduino-cli/), -[GCC for AVR](https://www.microchip.com/en-us/tools-resources/develop/microchip-studio/gcc-compilers) - -This project uses the standard Arduino core library obtained via Arduino CLI, but we do not use it -as a build tool. - -To obtain said library: - -```sh -arduino-cli core update-index -arduino-cli core install arduino:avr -``` - -To build the project: - -```sh -make build -``` - -The firmware image for the Arduino Micro should now be present as `build/kulifuli.hex`. - -## Flashing - -Additional requirement: [AVRDUDE](https://github.com/avrdudes/avrdude) - -Connect the Arduino Micro to your computer over USB. If USB serial support is set up correctly the -device should now have a path it can be referenced by, e.g. `/dev/ttyACM0` on Linux. Create a file -named `local.make` in the root of the project containing `arduino_serial_port =` followed by this -path. - -Now flash the firmware image to the device: - -```sh -make upload -``` - -## Hardware - -The hardware design is extremely simple, it contains no active components other than the Arduino -Micro. Two case fans can be connected to the male fan headers, and the female fan connectors should -be connected to their original headers on the motherboard. The fan controller sits in between the -fans and the motherboard, passing through the power and ground but intercepting the control -signals. - -![Circuit diagram of the hardware, see below for a structural representation](docs/circuit.svg) - -You can obtain a netlist file of this circuit [here](docs/circuit-netlist.txt).