---
name: fan-kickstart-approach
description: "Doze fan-kickstart = ramp from min-stable-PWM ~35, NOT the fan-sticktion branch (which is for debris-stuck fans)"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 5600518d-ea58-44ca-8950-24c360b5c0d4
---

For the M5 doze fan-kickstart (every doze-wake re-spins the fan from rest), use a **fixed min-stable-PWM floor ~35**: when the fan ramps up from `current_fan_speed==0`, jump to ~35 before the normal 1%/10ms target-seek ramp. Below ~35 the fan won't reliably start spinning from a dead stop. 35 is just under HMDUtility `fan_speed_min=40` (gen-2 ÷2 applies); tuned by-ear A/B. Edit `task_fan` ramp-up in `beyond_synaptics/src/test_and_debug.c` (~line 333).

**Why:** The `origin/fan-sticktion` branch (commit 280916c, "run fan fast to prevent sticking") blasts 100% PWM for 50ms on spin-up. Brandon: that branch was to unstick fans with **physical debris** jamming them — a different problem. Do NOT blast 100% at every startup; it's the wrong mechanism and unnecessarily loud/abrupt.

**How to apply:** Ignore fan-sticktion as prior art for doze. The fan-kickstart is purely a low-PWM-stiction floor, not a debris blast. See [[hmd-bench-rig]] for the doze validation bench.
