Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lynix/fanboy
Open Source PWM Fan Controller
https://github.com/lynix/fanboy
arduino fan-controller open-source
Last synced: about 1 month ago
JSON representation
Open Source PWM Fan Controller
- Host: GitHub
- URL: https://github.com/lynix/fanboy
- Owner: lynix
- License: mit
- Created: 2020-01-06T19:51:13.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-07-12T07:32:04.000Z (over 2 years ago)
- Last Synced: 2023-03-10T19:54:00.452Z (almost 2 years ago)
- Topics: arduino, fan-controller, open-source
- Language: C
- Homepage: https://lynix.github.io/fanboy
- Size: 344 KB
- Stars: 30
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FanBoy ![FanBoy Logo](https://github.com/lynix/fanboy/blob/master/artwork/logo.png)
Open Source PWM Fan Controller
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Build Status](https://github.com/lynix/fanboy/actions/workflows/build.yml/badge.svg)](https://github.com/lynix/fanboy/actions/workflows/build.yml)## Summary
*FanBoy* is an Open Source DIY approach to providing a cross-platform PWM fan
controller with temperature sensor support that can easily be modified to fit
your needs.![FanBoy](https://github.com/lynix/fanboy/blob/master/artwork/fanboy.jpg)
## Features
* **Four discrete PWM channels**
Supports multiple fans per channel (up to 40 W max. total power
draw), auto-detection for disconnected fans and RPM sensing
* **Two temperature sensor inputs**
Supports standard 10 kΩ thermistors
* **Based on well-known Arduino platform**
Uses the ATmega32U4 of an Arduino Leonardo as MCU for minimal development
overhead
* **Multiple operation modes per channel**
including *fixed duty*, *linear* and *target temperature*
1
* **Persistent data storage**
Stores all settings as well as last operation mode CRC-protected in EEPROM
* **Simple serial protocol**
Comes with a simple static library for communication abstraction as well
as a command line utility for configuration1 Planned but not implemented yet
## Components
This DIY kit consists of multiple components that are reflected as
subdirectories:| Folder | Description | Platforms |
|:-----------------------------------|:----------------------------------------------------------------------------| :---------------- |
| [pcb](https://github.com/lynix/fanboy/tree/master/pcb) | PCB that can be manufactured very cheap via common PCB fabrication services | Linux, Win32, Mac |
| [firmware](https://github.com/lynix/fanboy/tree/master/firmware) | Firmware based on *Arduino* Core | Linux, Win32, Mac |
| [libfanboy](https://github.com/lynix/fanboy/tree/master/libfanboy) | Static C library that implements serial interface between host and *FanBoy* | Linux, Win32, Mac |
| [enclosure](https://github.com/lynix/fanboy/tree/master/enclosure) | Simple 3D printable enclosure that fits a 2.5" drive slot | - |
| [fanboycli](https://github.com/lynix/fanboy/tree/master/fanboycli) | Command line client based on `libfanboy` | Linux, Win32, Mac |:information_source: In addition to these components there is a Qt based GUI
called [FanMan](https://github.com/lynix/fanman).## Contributing
### Code
The code uses 4-space indentation and K&R style bracing. Usage of Arduino
libraries is kept low to keep the possibility of switching to avr-libc. Code
documentation is done inline (headers) using [Doxygen](http://www.doxygen.nl).### Bugs / Features
Pull requests are always welcome. Feel free to report bugs or post questions
using the *issues* function on GitHub.## License
This project is published under the terms of the *MIT License*. See the file
`LICENSE` for more information.