Skip to content

Instantly share code, notes, and snippets.

@johnwbyrd
Created June 14, 2025 19:32
Show Gist options
  • Select an option

  • Save johnwbyrd/2a1b78c8ee8445b54484e00164bcab38 to your computer and use it in GitHub Desktop.

Select an option

Save johnwbyrd/2a1b78c8ee8445b54484e00164bcab38 to your computer and use it in GitHub Desktop.
fan2go configuration for ASRock X670E Taichi Carrara
# Working fan2go configuration for ASRock X670E Taichi Carrara
# Only uses controllable fans from nct6799 (nct6686 is monitoring-only)
# Database and polling configuration
dbPath: /var/lib/fan2go/fan2go.db
runFanInitializationInParallel: true # Process fans one at a time for safety
# Fan controller settings
fanController:
adjustmentTickRate: 1000ms
# ONLY use the 3 working fans from nct6799 (ignore nct6686 - read-only driver)
fans:
# Main case fan (1421 RPM)
- id: case_fan_main
hwmon:
platform: nct6799
rpmChannel: 2
pwmChannel: 2
neverStop: false
curve: balanced_curve
# CPU/Case fan (1073 RPM) - Keep running for safety
- id: cpu_case_fan
hwmon:
platform: nct6799
rpmChannel: 4
pwmChannel: 4
neverStop: true # Critical for CPU cooling
curve: cpu_focused_curve
# Exhaust fan (1238 RPM) - Focus on storage cooling
- id: exhaust_fan
hwmon:
platform: nct6799
rpmChannel: 5
pwmChannel: 5
neverStop: false
curve: nvme_cooling_curve
# Use reliable sensors (exclude nct6686 to keep it simple)
sensors:
# Most accurate CPU temperature
- id: cpu_temp
hwmon:
platform: k10temp
index: 1 # TSI0_TEMP equivalent
# System/Case temperature
- id: system_temp
hwmon:
platform: nct6799
index: 1 # SYSTIN (50°C)
# VRM/Power delivery temperature
- id: vrm_temp
hwmon:
platform: nct6799
index: 3 # AUXTIN0 (52°C)
# Hot NVMe drives (the critical ones at 60-66°C)
- id: nvme_hot1_temp
hwmon:
platform: nvme-pci-05100
index: 3 # Sensor 2 - hottest (66.8°C)
- id: nvme_hot2_temp
hwmon:
platform: nvme-pci-05600
index: 3 # Sensor 2 - also hot (66.8°C)
# Cooler NVMe drives for comprehensive monitoring
- id: nvme_cool1_temp
hwmon:
platform: nvme-pci-04a00
index: 1 # Composite (43.8°C)
- id: nvme_cool2_temp
hwmon:
platform: nvme-pci-05b00
index: 1 # Composite (46.8°C)
# Optimized fan curves
curves:
# CPU-focused curve for the critical fan
- id: cpu_focused_curve
linear:
sensor: cpu_temp
steps:
- 35: 80 # Always some airflow
- 50: 120 # Current temp range
- 65: 180 # Ramp up significantly
- 80: 255 # Full speed for high temps
# Aggressive NVMe cooling - those drives are too hot!
- id: nvme_cooling_curve
function:
type: maximum # Respond to hottest drive
curves:
- nvme_hot_curve1
- nvme_hot_curve2
- system_curve
# Individual curves for the critically hot NVMe drives
- id: nvme_hot_curve1
linear:
sensor: nvme_hot1_temp
steps:
- 40: 120 # Start aggressive cooling early
- 55: 170 # Your drives are already in danger zone
- 65: 220 # Very aggressive cooling
- 70: 255 # Emergency full speed
- id: nvme_hot_curve2
linear:
sensor: nvme_hot2_temp
steps:
- 40: 120
- 55: 170
- 65: 220
- 70: 255
# System temperature curve
- id: system_curve
linear:
sensor: system_temp
steps:
- 30: 60
- 45: 100 # Your system is at 50°C
- 55: 150 # Needs attention in this range
- 65: 200
- 75: 255
# Balanced curve considering multiple factors
- id: balanced_curve
function:
type: maximum
curves:
- system_curve
- vrm_curve
- moderate_cpu_curve
- moderate_nvme_curve
# VRM temperature curve
- id: vrm_curve
linear:
sensor: vrm_temp
steps:
- 35: 60
- 50: 120 # Your VRM is at 52°C
- 60: 170
- 70: 220
- 80: 255
# Moderate CPU assistance curve
- id: moderate_cpu_curve
linear:
sensor: cpu_temp
steps:
- 40: 50
- 50: 100 # Current CPU temp area
- 65: 150
- 75: 200
# Moderate NVMe monitoring curve
- id: moderate_nvme_curve
function:
type: maximum
curves:
- nvme_cool1_curve
- nvme_cool2_curve
# Curves for the cooler drives
- id: nvme_cool1_curve
linear:
sensor: nvme_cool1_temp
steps:
- 35: 60
- 45: 100 # Current range
- 55: 150
- 65: 200
- id: nvme_cool2_curve
linear:
sensor: nvme_cool2_temp
steps:
- 35: 60
- 45: 100 # Current range
- 55: 150
- 65: 200
# Optional monitoring
statistics:
enabled: false
port: 9000
api:
enabled: false
host: localhost
port: 9001
# Logging
logging:
level: info
colored: true
# Configuration Notes:
# REMOVED: auxiliary_fan (nct6686 is read-only, causes crashes)
# FOCUS: NVMe cooling priority - drives at 60-66°C are critical
# STRATEGY: 3-fan setup with aggressive storage cooling
#
# Fan assignments:
# - case_fan_main: Balanced cooling for general airflow
# - cpu_case_fan: CPU-focused with safety (neverStop: true)
# - exhaust_fan: Dedicated to aggressive NVMe cooling
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment