Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tmsmr/chilld
POC: Thermal controller for the Raspberry Pi Compute Module 4 IO Board.
https://github.com/tmsmr/chilld
compute-module-4 cooling golang
Last synced: about 1 month ago
JSON representation
POC: Thermal controller for the Raspberry Pi Compute Module 4 IO Board.
- Host: GitHub
- URL: https://github.com/tmsmr/chilld
- Owner: tmsmr
- License: mit
- Created: 2021-10-17T12:34:36.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-10-17T17:11:27.000Z (about 3 years ago)
- Last Synced: 2024-06-20T14:28:30.948Z (7 months ago)
- Topics: compute-module-4, cooling, golang
- Language: Go
- Homepage:
- Size: 6.84 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# ChillD
*POC: Thermal controller for the Raspberry Pi Compute Module 4 IO Board.*
### **ChillD is a simple *user space* thermal controller for the [CM4IO](https://www.raspberrypi.com/products/compute-module-4-io-board/). It periodically...**
- Reads the BCM2711's temperature using the Generic Thermal Sysfs driver of the linux kernel
- Calculates the target fan speed in a [linear](https://github.com/tmsmr/chilld/blob/main/fancurve/linear.go) manner
- Controls a fan connected to the PWM fan connector on the CM4IO boardI mainly built this as an application example for https://github.com/tmsmr/cm4iofan. Please note [should-i-use-this-for-my-247-running-project](https://github.com/tmsmr/cm4iofan#should-i-use-this-for-my-247-running-project).
## Requirements
See https://github.com/tmsmr/cm4iofan#requirements## Usage
### Get it
- Clone the Repository and build the `chilld` executable using `go build`, or
- Build the executable using `go install github.com/tmsmr/[email protected]` to find it in `$GOPATH/bin`, or
- Download the latest tagged version from the Release page### Use it
- No configuration needed (nor available at the moment...)
- Execute it: `./chilld`## Comments
### System service
- Feel free to adjust and use [chilld.service](./chilld.service)
- Scripts for OpenRC, SysVinit, ... shouldn't be a big deal### User with access to I2C
ChillD needs a user with access to the I2C bus. If you are using Raspian/RaspiOS, the group `i2c` should be available for that purpose.Otherwise you may:
- Add a user for ChillD: `useradd -r -M -s /bin/false chilld`
- Add the I2C group: `groupadd i2c`
- Add the user to the created group: `usermod -aG i2c chilld`
- Add a udev rule to assign the group: `echo 'KERNEL=="i2c-[0-9]*", GROUP="i2c"' >> /etc/udev/rules.d/10-i2c_group.rules`