Whatsminer M31S+ – PLL Not Locked on Hashboard
Warning — Should be addressed soon
Symptoms
- BTMiner / WhatsminerTool dashboard reports the affected hashboard (`SM0` / `SM1` / `SM2`) as failing chip detection or returning 0 GH/s on that chain
- `system.log` / `miner.log` contains lines like `pll lock fail`, `chip[NN] no pll`, `chain X clock fail`, `freq init aborted`, or `bm_chip_id_read fail`
- Effective hashrate drops by exactly one third (single-board PLL fail); remaining chains hash at nameplate
- BTMiner API `get_miner_status` reports the affected chain `Frequency` as 0 or default base value rather than configured target
- `upfreq_test` aborts with `chain not ready` or similar early-stage error before frequency ramping starts
- Control-board status LED: green-red-red or slow alternating pattern instead of solid green after the boot-scan window
- Environmental sensor values (`intake_temp`, `exhaust_temp`) on the affected board read `--` or `0` rather than real numbers
- Problem appeared after firmware flash, transport shock, lightning/brownout event, wet-cleaning moisture event, or 18-36 months of 24/7 thermal cycling
- Bench oscilloscope on the KF1930 CLK test point reads 0 V (or DC offset only, no oscillation) — normal CLK = 0.15 V peak-to-peak
- Bench oscilloscope on the single board crystal pads shows flat trace — no waveform at the rated frequency (= dead crystal)
- Pattern is intermittent: PLL locks cold but drops as the board warms, or vice versa (cold-joint / temperature-marginal silicon)
- `RST` line measured on bench reads stuck low or stuck high instead of toggling on the boot sequence — clock can't start until reset releases
- Warranty is expired; M31S+ is out of MicroBT's official support window and no factory help is coming
Step-by-Step Fix
Hard PDU power cycle for a full 60 seconds. Cut AC at the wall or PDU outlet — not the control-board soft reboot, not a WhatsminerTool restart. Wait 60 s for the bulk caps on the control board and PSU to drain. Restore power and let the miner complete its ~60-second boot-scan. The BTMiner clock-init logic occasionally wedges after an unclean shutdown or a failed firmware command; a full drain clears the cached state. On M31S+ boards that have run continuously > 90 days, this alone clears apparent PLL faults in single-digit percent of cases.
Pull and read the log bundle. WhatsminerTool → select the miner → Log Export → save the archive. Open `system.log` and `miner.log`; search for `pll`, `freq`, `chip id`, `chain scan`, `upfreq`. Errors clustered at one boot event = single-session fault (mechanical shock, brownout, moisture). Errors recurring on every boot = hard fault (silicon, crystal, LDO, solder). Save the log lines for the repair-shop note if this escalates.
Factory reset via the control-board button. Hold reset for 5 s until the status LED flashes rapidly. This clears pool/network settings and any cached PLL-init flags. Reconfigure pool/worker via WhatsminerTool when the miner returns. If `PLL not locked` clears post-reset and stays clear for a 24 h observation window, call it fixed and monitor.
Verify ambient and airflow. The KF1930 PLL is temperature-sensitive at the analog edge of its lock range. Target inlet ≤ 30 °C, no obstructions within 30 cm of the front grille, intake filters clean. Vacuum filters if dusty. Reboot. Environmental issues are cheap to fix and easy to miss before opening the chassis.
Update WhatsminerTool / BTMiner firmware to the current build for your specific M31S+ hardware revision. Older builds occasionally misreport chain-init failures. Roll forward only if the changelog references chain-init or PLL-init fixes. Do not cross-flash an M30S++ build onto an M31S+ — MicroBT firmware is hardware-keyed and the wrong build can brick the control board.
Open the chassis (Phillips #2 on most M31S+ builds; verify yours) and re-seat every cable on the suspect slot. Power off at the PDU first. Disconnect the UART/data ribbon and the PSU-to-board power connector. Inspect both connector sides under good light — oxidation looks grey-green, arc damage looks black, bent contacts are obvious. Clean with isopropyl 99% on a lint-free wipe. Reconnect firmly until you hear or feel the click on the locking ribbons. Reassemble, reboot.
Slot swap (cheapest 10-minute diagnostic). With the chassis open, physically move the suspect board to a different slot and a known-good board to the suspect slot. Label slots `SM0` / `SM1` / `SM2` with tape. Reboot. PLL fault follows the board → hashboard problem (Tier 3). Stays on the slot → control-board RST / clock-enable / UART path on that slot is the problem (Step 16, Tier 4).
Measure hashboard input rails under load with a multimeter on DC, probing at the PSU-to-board connector while the miner runs. M31S+ expects ~12 V sustained on the main rail; the domain rail is computed from group count (typically ~0.31 V × 37 = 11.47 V for a 37-chip group, scale to your board). If any rail sags below spec under load, the PSU is tired or the cable harness has resistance — swap PSU with a known-good unit before assuming the board is bad.
Visual inspection with magnification. Pull the suspect hashboard. Under a 10× loupe or USB inspection scope, walk the PCB looking for: cracked or missing inter-group resistors (the clock fan-out network), discoloured solder joints around the crystal, bulging or leaking caps near the LDOs, lifted BGA pads on any KF1930, blackened pads, or moisture damage. A surprising fraction of M3x PLL failures resolve here — a visibly cracked clock fan-out resistor is a 10-minute hand-solder fix if equipped.
Swap PSU with a known-good unit if you have one. PSU sag or excessive ripple during the chain-scan and clock-init window can drop a chip's 1.8 V rail below the PLL's locking threshold. Rare but diagnosable — if `PLL not locked` clears on the swap, your original PSU has a sag/ripple problem that needs service or replacement.
Pull the hashboard to a test stand. Mount on a bench fixture supplying the exact rails the board expects (12 V main + computed domain rail). Connect a USB-to-TTL UART adapter on the chain data line for live diagnostics. Power up. Locate the single SMD crystal (it's the master clock for every KF1930 on the board). Probe one of its pads with an oscilloscope on a high-impedance probe (10× attenuation typical). Expect a clean sinusoidal or near-square waveform at the crystal's rated frequency. Flat trace = dead crystal (Step 13). Clean oscillation = crystal is alive, fault is downstream (Step 12).
Scope CLK at each KF1930 group's test point in sequence. Normal CLK = 0.15 V peak-to-peak. Probe group 1, then 2, then 3. The clock fans out group-to-group via dedicated inter-group resistors, so the failure point is the group where the signal first goes flat. If the resistor between the last-good and first-bad group is visually intact, measure it (out-of-circuit cleanest); if open, replace it. If the resistor reads good, suspect a cracked PCB trace — Tier 4 if you're not equipped.
Replace the crystal oscillator if Step 11 found it dead. Desolder with hot-air at ~310 °C, lifting straight up to avoid pad damage. Clean pads with wick + flux. Solder a same-spec replacement (Zeus Mining and similar repair-parts vendors stock M31S/M31S+ crystals — verify frequency rating against your board revision before ordering). Re-test on the stand: scope confirms oscillation at the rated frequency, then verify CLK arrives at every group, then power the chain and confirm chips enumerate and PLL locks.
Reflow or replace the failing KF1930. If Step 12 found CLK arriving cleanly at every group but a specific chip still reports `PLL not locked`, the failure is in that chip's silicon. First attempt a reflow: flux the BGA, preheat the PCB from below to ~150 °C, top-side hot-air at 310-330 °C for 30-40 s until the package settles. Cool naturally, re-apply thermal paste, re-test. If reflow doesn't restore PLL lock, the chip's PLL is silicon-failed — desolder and replace with a graded KF1930 pull from a donor board or parts kit. Delicate work; not a first-attempt project on a $400 hashboard.
Roll firmware to last-known-good if the fault arrived after a flash. If `PLL not locked` showed up across all three slots simultaneously after a firmware upgrade, you have a firmware-hardware mismatch where the new build initializes chip frequency/clock registers incorrectly for your KF1930 silicon revision. WhatsminerTool → Firmware → Upgrade → select the prior build for your specific hardware revision. MicroBT firmware is hardware-keyed; never cross-flash across M30S vs M31S+ vs M32 generations or across hardware revisions within the same model.
Stop DIY and book a D-Central ASIC Repair slot when: multiple KF1930 chips report PLL not locked across multiple groups (PMIC/domain regulator likely), visible cap bulging or burnt smell, you've reflowed a chip once and PLL fault returned within 30 days, control-board GPIO99/RST signaling is suspected and you don't have a spare control board, the board is missing inter-group resistors and you're not equipped for fine SMD hand-soldering, or bench work has revealed a cracked PCB trace. Link: https://d-central.tech/services/asic-repair/
What D-Central does at the bench: programmable test fixture at the M31S+ board's exact rails (12 V main + computed domain), oscilloscope-driven crystal and per-group CLK verification, per-chip UART scan to identify every failing position, KF1930 replacement with graded pulls from our salvaged-grade inventory, full reflow + reseal with fresh thermal paste, control-board diagnostic if slot-vs-board isolation pointed there, and 24-hour burn-in at nameplate before return shipping. Typical CAD turnaround 5-10 business days, Canada-wide + US/international shipping.
Ship safely. Remove hashboards from the chassis, pack each in an anti-static bag, double-box with ≥ 5 cm of foam on every side. Include a note with: observed log signatures (`pll lock fail`, etc.), firmware version (run `get_version` from BTMiner / WhatsminerTool), how long the miner has been deployed, any failure pattern (cold-only / hot-only / random / post-flash), and your contact info. The note saves diagnostic time, which directly saves you money on the repair invoice. Ship the control board too if slot-vs-board isolation pointed there.
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.
