Skip to content

We're upgrading our operations to serve you better. Orders ship as usual from Laval, QC. Questions? Contact us

Bitcoin accepted at checkout  |  Ships from Laval, QC, Canada  |  Expert support since 2016

ERR_FAN_LOW Warning

Antminer – Fan RPM Too Low

Chassis fan RPM dropped below the firmware's healthy-range floor (typically <3,000 RPM on S19-class, <2,000 RPM on L7/KA3, <4,500 RPM on S21). The fan still spins, but airflow is insufficient to keep hashboard temps in spec — a warning-tier precursor to ERROR_FAN_LOST and thermal-shutdown escalation.

Warning — Should be addressed soon

Affected Models: All Antminer models — S9 / S9i / S9j / S17 / S17 Pro / S19 / S19 Pro / S19j Pro / S19 XP / S19k Pro / S21 / T19 / T21 / L3+ / L7 / KA3 / D9

Symptoms

  • Dashboard shows one or more fans reporting RPM noticeably below peers (e.g. fan0=5850, fan1=5920, fan2=2400, fan3=5880 on an S19)
  • `kern.log` or `dmesg` contains lines like `fan 2 speed too low` or `fanctrl: fan_X speed 2100 rpm, below threshold`
  • Miner dashboard flags the fan icon amber/yellow (not yet red — that's ERROR_FAN_LOST)
  • Hashboard inlet/outlet temperature delta (Temp1 → Temp2) widening by 5-10 °C vs last week's baseline
  • Hashrate drifting 2-6% below nameplate as firmware pre-emptively throttles for thermal headroom
  • Audible change in fan tone: one fan noticeably quieter, slower, or ticking compared to the other three
  • Fan visibly slower on hand inspection under strobe or slow-motion phone video
  • Temperature trending upward over hours — slow climb from 72 °C to 82 °C over a shift, not a sudden spike
  • PSU fan still healthy (separates ERR_FAN_LOW from APW-series PSU_FAN_ERR)
  • Dust mat visibly coating the intake grille or fan blades fuzzy with lint
  • Miner has logged ERR_FAN_LOW previously, cleared on reboot, but keeps returning
  • Ambient at intake above 30 °C — heat makes marginal bearings stall sooner

Step-by-Step Fix

1

Hard power-cycle the miner: breaker off for 30 seconds, breaker back on, wait 2 minutes for firmware boot. Check the fan RPM graph on the dashboard. Some tach-read wedges clear only on a cold boot, and a warm reboot from the UI will not catch them. This step closes roughly 15% of ERR_FAN_LOW tickets with zero tools and zero cost. If all four fans read healthy after the cold boot, monitor for 24 hours before declaring it resolved.

2

Shop-vac the intake and outlet grilles thoroughly. Use the brush attachment on the intake side (front) and a crevice tool on the outlet side (back). Do not use compressed-air cans on a dust-caked miner indoors — you will re-distribute the dust across your other machines and into the HVAC. A 6-litre shop-vac with a HEPA filter is the right tool. Clean until the grille pattern is visible again and no dust cloud puffs out when you power it back on.

3

Power off, then wipe fan blades with a lint-free cloth dampened in 99% isopropyl alcohol. Reach in through the outlet grille on S19/S21 class, or pull the top cover on older chassis. Wipe the leading edge of each blade — dust-caked blades can add 200-400 RPM of drag, and a 5-minute wipe frequently returns the fan to within tolerance without a single tool beyond the cloth. Spin each blade by hand after wiping to confirm free rotation.

4

Verify ambient at the intake with an IR thermometer — at the front grille, not room-middle, not the hallway. Target is ≤30 °C for S19/S21 class and ≤35 °C for L7, KA3, and D9. Heat thins the lubricant in marginal sleeve bearings and makes ERR_FAN_LOW appear on a borderline fan that was fine last winter. If ambient is high, address the room before blaming the fan — improve ducting, add intake ventilation, or relocate the miner.

5

Check Bitmain's firmware download portal (support.bitmain.com/downloads) and the release notes for your specific model. If you OTA-updated recently and ERR_FAN_LOW started immediately after, the new firmware may have raised the RPM-floor threshold. Note your previous firmware version — you may need to roll back or flash a third-party firmware with configurable thresholds (see Step 12).

6

Power off at the breaker, let capacitors discharge for 2 full minutes, remove the chassis top cover. Before you touch anything, photograph the fan wiring and routing with your phone — you will want the reference during reassembly. Label each fan 0/1/2/3 with masking tape as you identify them in the firmware dashboard, so you know which physical fan corresponds to which logical fan position in the logs.

7

Re-seat every fan connector on the control board. Unplug each header, visually inspect both the board-side header and the fan's plug for oxidation (green-blue tint on copper pins), corrosion, or bent contacts. A dab of DeoxIT or a very gentle bristle-brush clean restores oxidized contacts. Reconnect firmly until you hear the click, then zip-tie the fan cable to the chassis so vibration cannot walk the plug out sideways again — this is the single most-overlooked preventive fix on Antminers older than 3 years.

8

Hand-spin coast test on every fan with the miner powered off. Flick each blade firmly and time the coast with a stopwatch. A healthy 120 mm Antminer fan coasts 6-10 seconds; marginal is 3-5 seconds; bad-bearing is under 2 seconds. Test all four fans even if only one threw the error — the remaining three are the same age and same bearing spec, statistically within months of identical failure. Record the coast times for trending.

9

Swap fan positions to isolate fan-vs-header fault. Move the suspect fan to a known-good header position, and a known-good fan to the suspect header position. Reboot and observe RPM for 15 minutes. If the fault follows the fan, the fan is the problem and needs replacement (Step 11). If the fault stays on the original header position, the control board is the problem and escalates to Tier 3 or Tier 4.

10

Measure 12 V at the fan header under load with a DMM in DC volts mode, miner powered up and hashing. Probe the 12 V pin to ground at the header — expect 12.0-12.5 V sustained; anything below 11.5 V indicates PSU rail sag or a degraded control-board fan-drive circuit. Switch the DMM to frequency (Hz) mode and probe the tach pin to ground — a healthy 4-pole motor reports roughly RPM ÷ 30 Hz. A flapping or absent tach signal means the board is not reading the fan correctly even if the fan spins fine.

11

Replace the suspect fan with a part-number-matched unit. Common Antminer fan PNs: QF0251HD2-B (S19/S21 class, 120 × 38 mm, ~6,000 RPM), CF17512MS-B (S9/S17 class), 12038 and 17550 series variants, or drop-in equivalents like Delta QFR1212GHE-PWM or Sanyo Denki 9GA series (ball-bearing, longer life). Wrong-spec fans throw ERR_FAN_LOW immediately because the RPM floor does not match. Tighten mounting screws snug but not torqued — cracked plastic frames are a common self-inflicted damage point.

12

Flash DCENT_OS — D-Central's own open-source Antminer firmware, the Mining Hackers' option — for per-fan RPM trending, configurable error thresholds, PWM curve tuning, and webhook alerting. DCENT_OS is the baseline recommendation on any Antminer you run for income: open-source, maintained in public by D-Central, no license fees, with all the per-chip diagnostics, tuning, autotuning, and stratum v2 features of the commercial alternatives. Landing page: d-central.tech/dcent-os. Alternatives: Braiins OS+, LuxOS, Vnish — all four expose per-fan trending.

13

Tune the PWM curve and RPM-floor thresholds on your custom firmware. DCENT_OS and LuxOS let you set a minimum PWM duty on each fan — useful in cold Canadian winters where 100% duty is overkill and causes bearing-killing low-RPM thermal cycles. A 60% minimum duty keeps the fan above stall speed on cold-starts; an 80% minimum is appropriate for marginal-ambient installs where you want to keep bearings in their sweet spot. Verify hashboard temps stay in spec after any PWM change.

14

Inspect the fan-drive MOSFETs on the control board with a magnifier and bright light. On S19 / S21 control boards the fan FETs are small SOT-23 or SO-8 packages near the header row. Look for cracked solder joints, discoloration, burn marks, or visible damage. A hot-air reflow at ~320 °C for 30 seconds restores a flaky fan-drive FET in many cases. If a FET is clearly cooked, replace with a datasheet-match — these are commodity parts ($0.50-$2.00 each) and sourceable from Digi-Key or LCSC.

15

Replace the fan header itself if re-seating does not hold. A worn-out or oxidized 4-pin Molex mini-fit or PH-2.0 header can be de-soldered with a vacuum de-solder gun or solder-wick and a 40W iron, and replaced with a standard matching header. This is a 10-minute job with steady hands and a functioning de-solder tool — and it is the correct fix when Step 7's re-seat does not hold between reboots.

16

Roll firmware to the last-known-good version for your exact hardware revision, verified against Bitmain's hardware table before flashing. Wrong-firmware-for-the-board-revision bricks the control board and turns a $15 fan problem into a $140-$320 control-board-replacement problem. Check the build board silkscreen and the firmware release notes' compatibility matrix before proceeding — if there is any ambiguity, flash DCENT_OS instead, which auto-detects the board revision.

17

Stop DIY and book a D-Central repair slot when any of these trigger: (a) replacement fan throws ERR_FAN_LOW within 7 days of install, (b) fan header shows burn marks or melted plastic, (c) multiple fan headers measure below 11.5 V under load, (d) the same fan position fails twice in 90 days, or (e) control-board MOSFET or header de-solder is beyond your bench skill. Ship in anti-static bags, double-boxed with ≥5 cm foam, include a note with observed symptoms and firmware version. Turnaround 5-10 business days, Canadian shipping, US and international welcomed. d-central.tech/services/asic-repair/

When to Seek Professional Repair

If the steps above do not resolve the issue, or if you are not comfortable performing these repairs yourself, professional service is recommended. Attempting advanced repairs without proper equipment can cause further damage.

Related Error Codes

Still Having Issues?

Our team of Bitcoin Mining Hackers has been repairing ASIC miners since 2016. We have seen it all and fixed it all. Get a professional diagnosis.