Inside every ASIC miner, hundreds of individual chips work in parallel to compute SHA-256 hashes. But not all chips are created equal. Due to natural variations in the semiconductor manufacturing process — what the industry calls the “silicon lottery” — each chip has a slightly different optimal operating point. Per-chip frequency tuning is how modern mining firmware extracts maximum performance from every single chip on your hash board.
This guide explains the silicon lottery, how per-chip tuning works at the register level, why voltage is per-domain while frequency is per-chip, and how autotuning algorithms maximize your efficiency without manual intervention.
The Silicon Lottery: Why Every Chip Is Different
When semiconductor fabs produce ASIC chips like Bitmain’s BM1366, BM1368, or BM1370, the manufacturing process introduces microscopic variations. Even chips cut from the same silicon wafer will differ in:
- Transistor threshold voltages: Tiny variations in doping concentration mean some transistors switch faster or slower than the design target.
- Interconnect resistance: Metal routing layers vary slightly in thickness and width, affecting signal propagation speed.
- Defect density: Some chips may have minor defects that do not cause failure but affect performance at high frequencies.
The practical result is that some chips are “winners” — they can run at higher frequencies while remaining stable — and others are “losers” that need to run at lower frequencies to avoid producing errors. On a typical Antminer hash board with 110+ chips, there can be a 10-15% spread between the best and worst chips.
The Problem with Uniform Frequency
Stock Bitmain firmware takes the simplest approach: set every chip on the hash board to the same frequency. This is safe, but it leaves performance on the table in two ways:
- Good chips are underutilized. If the uniform frequency is set low enough for the worst chip to be stable, the best chips could have been running 50-100 MHz faster.
- Bad chips are overstressed. If the uniform frequency is set to a moderate target, the weakest chips may produce excessive errors, which wastes power computing hashes that get rejected.
Per-chip frequency tuning solves both problems by assigning each chip its own optimal frequency based on observed performance.
How Per-Chip Frequency Tuning Works
PLL Registers: The Frequency Control Mechanism
Each ASIC chip contains a Phase-Locked Loop (PLL) circuit that generates the internal clock signal from a reference clock. The PLL has configurable divider registers that determine the output frequency. By writing different values to a chip’s PLL registers, firmware can set that specific chip to any supported frequency within its operating range (typically 100-800 MHz for modern Bitmain chips).
The process works through addressed commands on the chip chain:
- Chip addressing: Each chip on the hash board has a unique address. The control board communicates with individual chips via a serial chain (SPI/UART).
- PLL register write: The firmware sends an addressed command to a specific chip, writing the desired frequency divider values to its PLL registers.
- PLL lock: The chip’s PLL circuit adjusts to the new frequency. The firmware monitors the PLL lock status to confirm the frequency change was successful.
- Verification: The firmware checks the chip’s hash output at the new frequency to verify it is producing valid results without excessive errors.
Because each chip has its own PLL, frequency can be set independently for every chip on the board. This is a fundamental hardware capability — the firmware just needs to be smart enough to use it.
Per-Chip vs. Per-Domain: Understanding the Distinction
This is one of the most misunderstood aspects of ASIC tuning, so let us be precise:
- Frequency is per-chip. Each chip has its own PLL and can run at its own frequency independently of neighboring chips. This is controlled via addressed register writes to each chip’s PLL.
- Voltage is per-domain. Chips are grouped into voltage domains — typically 7-12 chips share a single DC-DC voltage converter. When you change the voltage, every chip in that domain is affected equally. You cannot set different voltages for individual chips within the same domain.
Here is how domains work on current Bitmain chips:
| ASIC Chip | Cores per Chip | Chips per Domain | Domains per Board | Typical Voltage |
|---|---|---|---|---|
| BM1366 (S19 XP) | 112 | ~10 | 11 | ~0.4V |
| BM1368 (S21) | 112 | ~9 | 12 | ~1.2V |
| BM1370 (S21 XP) | 128 | ~7 | 13 | ~0.4V |
| BM1362 (S21+) | 128 | ~3 | 42 | ~0.32V |
The trend in newer chip generations is toward smaller voltage domains (fewer chips per domain), which gives firmware finer-grained voltage control. The BM1362, for example, has 42 domains with only 3 chips each — approaching near-per-chip voltage control.
Why This Distinction Matters for Tuning
Because voltage is shared across a domain, the firmware faces a constraint: the voltage for a domain must be set high enough for the weakest chip in that domain to operate, even if the stronger chips could run at lower voltage (and therefore lower power consumption).
However, frequency can compensate. Within a voltage domain running at a fixed voltage, the firmware can:
- Run the strong chips at higher frequency (getting more hashrate from the same voltage).
- Run the weak chips at lower frequency (maintaining stability without needing higher voltage).
This combination — per-domain voltage optimization plus per-chip frequency optimization — is what delivers the best possible efficiency from a given hash board.
How Autotuning Algorithms Work
Modern mining firmware does not expect users to manually set frequencies for 110+ chips. Instead, it uses autotuning algorithms that automatically find each chip’s optimal operating point.
The Tuning Process
Here is what happens when autotuning runs (the details vary by firmware, but the general approach is consistent across BraiinsOS+, VNish, and LuxOS):
- Initial frequency sweep: The algorithm starts each chip at a conservative frequency (well below maximum) and gradually increases it in small steps (typically 25 MHz increments).
- Error rate monitoring: At each frequency step, the algorithm monitors the chip’s hardware error rate. As long as errors remain below a threshold, the frequency continues to increase.
- Stability boundary detection: When the error rate exceeds the threshold, the algorithm has found the chip’s maximum stable frequency. It backs off by one or two steps to provide a stability margin.
- Voltage domain optimization: Once all chips in a domain have been individually characterized, the algorithm determines the optimal voltage for the domain — high enough for stability, low enough for efficiency.
- Power target convergence: If the user has set a power target (e.g., “run at 2,400W”), the algorithm adjusts frequencies across all chips proportionally to hit the target while maintaining optimal per-chip ratios.
Runtime Autotuning vs. One-Time Presets
There is a critical difference between true autotuning and preset-based tuning:
- Preset-based tuning: The firmware ships with predefined frequency/voltage profiles for each miner model (e.g., “S19 XP Low Power,” “S19 XP High Performance”). These are one-size-fits-all settings that do not account for your specific chips.
- True autotuning: The firmware actively measures each chip’s performance on your specific hardware and continuously adjusts. This accounts for the silicon lottery, ambient temperature variations, PSU voltage fluctuations, and chip aging over time.
True autotuning runs at runtime — not just once at first boot, but continuously. As ambient temperature changes (which affects chip behavior), as the PSU ages (which affects voltage stability), or as chips degrade over time, the autotuning algorithm adapts. This continuous optimization is one of the primary reasons custom firmware outperforms stock firmware by such large margins.
Convergence Time
The time required for autotuning to converge (find optimal settings for all chips) varies by firmware:
- BraiinsOS+: 20-30 minutes for initial tuning, with continuous refinement ongoing.
- VNish: 15-20 minutes, with a more aggressive search algorithm.
- LuxOS: Approximately 20 minutes initial convergence.
Faster convergence is generally better, especially after reboots or power cycles, because every minute spent tuning is a minute of reduced hashrate.
The Efficiency Gains: What Per-Chip Tuning Delivers
The performance improvement from per-chip tuning compared to stock uniform-frequency operation is substantial:
- Hashrate improvement: 5-15% higher hashrate at the same power consumption, because strong chips run faster.
- Efficiency improvement: 10-29% better J/TH (joules per terahash), because chips run at their optimal voltage/frequency curve rather than a one-size-fits-all setting.
- Reduced error rates: Weak chips produce fewer errors because they run at a frequency they can actually sustain, reducing wasted power on invalid hashes.
- Hardware longevity: Chips running at their optimal point (rather than being pushed beyond their capability) experience less thermal stress and degrade more slowly.
To put the efficiency gains in dollar terms: on a miner consuming 3,000W, a 15% efficiency improvement saves 450W of electricity. At $0.10/kWh, that is $394/year in reduced electricity costs — plus you get the same or higher hashrate.
Advanced: Dead Chip Bypass and Weak Chip Compensation
Per-chip tuning enables two advanced capabilities that stock firmware cannot provide:
Dead Chip Bypass
When a chip fails completely (stops responding to commands or produces zero valid hashes), per-chip-aware firmware can detect the failure and remove the dead chip from the work distribution chain. The remaining chips continue operating normally. Stock firmware typically treats a dead chip as a board-level failure, potentially losing the entire hash board’s output.
Weak Chip Compensation
If one chip in a domain is significantly weaker than its neighbors, the firmware can compensate by slightly boosting the frequency of neighboring strong chips. This maintains the board’s overall hashrate target even with a subpar chip in the chain — a technique called “throttle compensation” in VNish.
Per-Chip Tuning in Practice: What You See in the UI
In firmware with good per-chip visibility, the dashboard shows a chip map — a visual representation of every chip on each hash board with color-coded indicators:
- Green: Chip running at or near maximum frequency, healthy.
- Yellow: Chip running at reduced frequency, still functional.
- Red: Chip with high error rate or significantly reduced frequency.
- Grey/Black: Dead chip, bypassed.
This visual representation lets you immediately identify board health, see which chips are the silicon lottery winners, and make informed decisions about whether a hash board is worth repairing or replacing.
D-Central’s DCENT_OS is being designed with an A/B/C/D chip grading system, where each chip receives a quality score based on its maximum stable frequency relative to the chip model’s specification. This grading data can be exported and used for hardware diagnostics and resale valuation.
The D-Central Approach to Chip Tuning
DCENT_OS brings several innovations to per-chip tuning:
- Configurable tuning targets: Choose whether to optimize for maximum hashrate, target wattage, or target efficiency (J/TH). Most firmwares optimize for one target; DCENT_OS lets you choose.
- Profile export/import: Save your miner’s tuning profile to a JSON file and share it with other miners running identical hardware. Import a known-good profile to skip the initial tuning period after reflashing.
- Full per-chip dashboard: Visual chip map with real-time frequency, temperature, error rate, and quality grade for every chip. Not just summary statistics — the actual per-chip data.
- Silicon quality scoring: Each chip receives a quality grade based on its measured performance, helping you make informed decisions about hardware health and maintenance.
- Open-source tuning algorithm: The autotuning code is fully open-source (GPL-3.0), meaning the community can audit, improve, and customize the tuning logic.
Frequently Asked Questions
Per-chip frequency tuning is a technique where mining firmware sets a different operating frequency for each individual ASIC chip on a hash board, based on that chip’s measured performance characteristics. Each chip has its own PLL (Phase-Locked Loop) circuit that can be independently configured via register writes. This allows strong chips to run faster and weak chips to run slower, optimizing the overall board’s efficiency and hashrate compared to stock firmware’s uniform-frequency approach.
Frequency is per-chip because each ASIC chip has its own internal PLL (clock generation) circuit. Voltage, however, is per-domain because multiple chips (typically 3-12, depending on the chip generation) share a single DC-DC voltage converter on the hash board’s PCB. This is a hardware design constraint — the voltage regulator physically feeds multiple chips through shared power traces. Newer chip designs like the BM1362 use smaller domains (3 chips per domain with 42 domains per board), approaching finer voltage granularity.
Per-chip tuning with custom firmware typically delivers 10-29% better efficiency (J/TH) compared to stock firmware’s uniform frequency settings. The exact improvement depends on the silicon quality spread across your specific chips and how aggressively the autotuning algorithm optimizes. In hashrate terms, you can expect 5-15% more terahashes at the same power consumption, or the same hashrate at 10-25% lower power draw. Over a year, this efficiency gain can save hundreds of dollars in electricity costs.
Initial autotuning convergence typically takes 15-30 minutes, depending on the firmware. BraiinsOS+ takes 20-30 minutes with a conservative linear ramp approach, VNish converges in 15-20 minutes with more aggressive search, and LuxOS takes approximately 20 minutes. After initial convergence, true autotuning continues to refine settings in the background, adapting to temperature changes, PSU voltage drift, and chip aging. This ongoing optimization is why custom firmware consistently outperforms static preset-based approaches.
Related Resources
Bitaxe" width="80" height="80" loading="lazy" style="width:80px;height:80px;object-fit:contain;border-radius:6px;background:#1A1A1A;flex-shrink:0;">
