{
    "meta": {
        "dataset": "Bitcoin Mining Firmware Feature Matrix",
        "publisher": "D-Central Technologies",
        "url": "https://d-central.tech/data/firmware-feature-matrix/",
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "version": "1.0",
        "dateModified": "2026-06-15",
        "description": "Feature-by-feature comparison of Antminer mining firmware: Stock, BraiinsOS+, VNish, LuxOS, and DCENT_OS [closed beta]. Bible-verified. CC BY 4.0.",
        "notes": {
            "dagger": "† Vendor-documented value; subject to change with firmware updates. Verify at vendor source.",
            "ddagger": "‡ DCENT_OS closed-beta target specification — GPL-3.0, not yet publicly released. Public beta targeted summer 2026.",
            "voltage": "Per-domain voltage is a hardware constraint: no firmware provides per-chip voltage control. BM1366: 11 domains/10 chips; BM1368: 12/9; BM1370: 13/7.",
            "dev_fees": "Dev fees are ranges, not flat numbers. Always verify current rates at vendor documentation.",
            "stratum": "BraiinsOS+ is the only production firmware with native Stratum V2 as of 2026."
        }
    },
    "rows": [
        {
            "category": "chip_management",
            "category_label": "Chip Management",
            "feature": "Per-chip frequency tuning",
            "stock": "N (uniform)",
            "braiins": "Y",
            "vnish": "Y",
            "luxos": "Y",
            "dcent_os": "Y‡",
            "notes": "Write PLL registers per chip via addressed commands. Frequency is addressable per chip; voltage is not."
        },
        {
            "category": "chip_management",
            "category_label": "Chip Management",
            "feature": "Per-DOMAIN voltage control",
            "stock": "N",
            "braiins": "Y†",
            "vnish": "Y†",
            "luxos": "Y†",
            "dcent_os": "Y‡",
            "notes": "Bible-confirmed: voltage is per-domain (one DC-DC converter per group). BM1366: 11 domains/10 chips; BM1368: 12 domains/9 chips; BM1370: 13 domains/7 chips. No firmware delivers per-chip voltage — this is a hardware constraint, not a software limitation."
        },
        {
            "category": "chip_management",
            "category_label": "Chip Management",
            "feature": "Chip health monitoring",
            "stock": "Basic",
            "braiins": "Detailed",
            "vnish": "Detailed",
            "luxos": "Very detailed",
            "dcent_os": "Very detailed‡",
            "notes": "Track per-chip: hashrate, temp, error rate, PLL lock status."
        },
        {
            "category": "chip_management",
            "category_label": "Chip Management",
            "feature": "Weak chip compensation",
            "stock": "N",
            "braiins": "Y",
            "vnish": "Y (throttle comp)",
            "luxos": "Y",
            "dcent_os": "Y‡",
            "notes": "If a chip is weak, boost neighbours to maintain board hashrate target."
        },
        {
            "category": "chip_management",
            "category_label": "Chip Management",
            "feature": "Dead chip detection",
            "stock": "Basic",
            "braiins": "Y",
            "vnish": "Y",
            "luxos": "Y (healthchipget)",
            "dcent_os": "Y‡",
            "notes": "Enumerate chain, detect missing responses, log position."
        },
        {
            "category": "chip_management",
            "category_label": "Chip Management",
            "feature": "Dead chip bypass",
            "stock": "N",
            "braiins": "Limited",
            "vnish": "Y",
            "luxos": "Y",
            "dcent_os": "Y‡",
            "notes": "Skip dead chips in work distribution, adjust addressing."
        },
        {
            "category": "chip_management",
            "category_label": "Chip Management",
            "feature": "Chip binning / grading",
            "stock": "N",
            "braiins": "Y",
            "vnish": "Y",
            "luxos": "Y",
            "dcent_os": "Y‡",
            "notes": "Grade A/B/C chips by max stable frequency; store in EEPROM."
        },
        {
            "category": "chip_management",
            "category_label": "Chip Management",
            "feature": "Core-level monitoring",
            "stock": "N",
            "braiins": "N",
            "vnish": "N",
            "luxos": "Some",
            "dcent_os": "Y‡",
            "notes": "Track per-core hashrate via nonce response core_id field. LuxOS has partial implementation; DCENT_OS targets full per-core stats."
        },
        {
            "category": "autotuning",
            "category_label": "Autotuning",
            "feature": "Auto-tune on first boot",
            "stock": "N",
            "braiins": "Y",
            "vnish": "Y",
            "luxos": "Y",
            "dcent_os": "Y‡",
            "notes": "Frequency sweep per chip: start low, ramp up, find max stable operating point."
        },
        {
            "category": "autotuning",
            "category_label": "Autotuning",
            "feature": "Convergence time",
            "stock": "-",
            "braiins": "~20–30 min†",
            "vnish": "~15–20 min†",
            "luxos": "~20 min†",
            "dcent_os": "Target: 15 min‡",
            "notes": "Aggressive binary search vs conservative linear ramp. Vendor-documented; verify at source."
        },
        {
            "category": "autotuning",
            "category_label": "Autotuning",
            "feature": "Tune target",
            "stock": "-",
            "braiins": "Efficiency (J/TH)",
            "vnish": "Hashrate",
            "luxos": "Power (watts)",
            "dcent_os": "Configurable‡",
            "notes": "DCENT_OS target: user chooses between max hashrate, target watts, or target efficiency. Autotuner values are calculated at runtime per chip — not preset."
        },
        {
            "category": "autotuning",
            "category_label": "Autotuning",
            "feature": "Re-tune on conditions",
            "stock": "N",
            "braiins": "Temp changes",
            "vnish": "Temp + failures",
            "luxos": "Temp + power",
            "dcent_os": "All triggers‡",
            "notes": "DCENT_OS target: re-tune on temp change >5°C, chip failure, PSU voltage drift."
        },
        {
            "category": "autotuning",
            "category_label": "Autotuning",
            "feature": "Profile persistence",
            "stock": "-",
            "braiins": "Flash",
            "vnish": "Flash",
            "luxos": "Flash",
            "dcent_os": "Flash + JSON export‡",
            "notes": "DCENT_OS target: save to flash + allow JSON export/import of tuning profiles across identical miners."
        },
        {
            "category": "autotuning",
            "category_label": "Autotuning",
            "feature": "Overclocking profiles",
            "stock": "N",
            "braiins": "Power target",
            "vnish": "Multiple presets",
            "luxos": "Power target",
            "dcent_os": "Custom + presets‡",
            "notes": "All profile values are runtime operating points calculated by the autotuner — not factory presets. DCENT_OS target: Low/Medium/High/Max presets plus custom per-chip frequency/voltage."
        },
        {
            "category": "power_management",
            "category_label": "Power Management",
            "feature": "Power targeting (watts)",
            "stock": "N",
            "braiins": "Y",
            "vnish": "Y",
            "luxos": "Y (primary)",
            "dcent_os": "Y‡",
            "notes": "Adjust per-domain voltage + per-chip frequency to hit a target wattage. LuxOS uses power targeting as its primary tuning axis."
        },
        {
            "category": "power_management",
            "category_label": "Power Management",
            "feature": "Power metering",
            "stock": "PSU-level",
            "braiins": "PSU-level",
            "vnish": "Board-level",
            "luxos": "Board-level",
            "dcent_os": "Board-level‡",
            "notes": "Board-level metering reads APW12 I2C ADC for voltage/current per output rail — more granular than PSU-level telemetry."
        },
        {
            "category": "power_management",
            "category_label": "Power Management",
            "feature": "Dynamic power scaling",
            "stock": "N",
            "braiins": "Y",
            "vnish": "Limited",
            "luxos": "Y (DPS)",
            "dcent_os": "Y‡",
            "notes": "Adjust power consumption based on external signals (electricity price, grid state, temperature)."
        },
        {
            "category": "power_management",
            "category_label": "Power Management",
            "feature": "Efficiency mode (J/TH)",
            "stock": "N",
            "braiins": "Y",
            "vnish": "Y",
            "luxos": "Y",
            "dcent_os": "Y‡",
            "notes": "Optimise joules-per-terahash rather than raw hashrate. Reduces power at moderate hashrate cost."
        },
        {
            "category": "power_management",
            "category_label": "Power Management",
            "feature": "110V / 120V support",
            "stock": "N",
            "braiins": "N",
            "vnish": "N",
            "luxos": "Y (APW12 bypass)†",
            "dcent_os": "Y‡ (target)",
            "notes": "LuxOS introduced APW12 PSU bypass mode: skips the PFC stage, accepts 120V input directly. Hardware path enabled by firmware. Bible-confirmed: no other production firmware supports 110V."
        },
        {
            "category": "power_management",
            "category_label": "Power Management",
            "feature": "Power ramp-up sequence",
            "stock": "Instant",
            "braiins": "Gradual",
            "vnish": "Gradual",
            "luxos": "Gradual",
            "dcent_os": "Gradual‡",
            "notes": "Ramp voltage domains one at a time to avoid inrush current on startup."
        },
        {
            "category": "power_management",
            "category_label": "Power Management",
            "feature": "PSU watchdog",
            "stock": "Stock",
            "braiins": "Y",
            "vnish": "Y",
            "luxos": "Y",
            "dcent_os": "Y‡",
            "notes": "APW12 I2C heartbeat; ~1 minute timeout triggers PSU shutdown."
        },
        {
            "category": "power_management",
            "category_label": "Power Management",
            "feature": "Watt-anchored mining",
            "stock": "N",
            "braiins": "N",
            "vnish": "N",
            "luxos": "Y†",
            "dcent_os": "Y‡",
            "notes": "LuxOS pioneered maintaining exact wattage regardless of thermal or frequency drift. DCENT_OS targets parity."
        },
        {
            "category": "curtailment",
            "category_label": "Curtailment / Demand Response",
            "feature": "API curtailment",
            "stock": "N",
            "braiins": "Y (gRPC)",
            "vnish": "Y (REST)",
            "luxos": "Y (ultra-fast)†",
            "dcent_os": "Y‡",
            "notes": "Single API call to reduce or restore full power draw."
        },
        {
            "category": "curtailment",
            "category_label": "Curtailment / Demand Response",
            "feature": "Curtailment speed (down)",
            "stock": "-",
            "braiins": "~30 s†",
            "vnish": "~15 s†",
            "luxos": "<5 s†",
            "dcent_os": "Target: <5 s‡",
            "notes": "LuxOS achieves <5 s via frequency drop + immediate voltage reduction. Fastest of any production firmware as of 2026†."
        },
        {
            "category": "curtailment",
            "category_label": "Curtailment / Demand Response",
            "feature": "Curtailment speed (up)",
            "stock": "-",
            "braiins": "~60 s†",
            "vnish": "~30 s†",
            "luxos": "<60 s†",
            "dcent_os": "Target: <60 s‡",
            "notes": "Gradual ramp-up avoids thermal shock after cold restart."
        },
        {
            "category": "curtailment",
            "category_label": "Curtailment / Demand Response",
            "feature": "Grid signal integration",
            "stock": "N",
            "braiins": "Manual",
            "vnish": "Manual",
            "luxos": "Via API†",
            "dcent_os": "API + Home Assistant‡",
            "notes": "DCENT_OS target: native Home Assistant integration for grid-signal-driven curtailment."
        },
        {
            "category": "curtailment",
            "category_label": "Curtailment / Demand Response",
            "feature": "Electricity price awareness",
            "stock": "N",
            "braiins": "N",
            "vnish": "N",
            "luxos": "Via API†",
            "dcent_os": "Built-in‡ (target)",
            "notes": "DCENT_OS target: accept price feed, auto-adjust mining intensity based on electricity cost."
        },
        {
            "category": "curtailment",
            "category_label": "Curtailment / Demand Response",
            "feature": "Scheduled curtailment",
            "stock": "N",
            "braiins": "Via scripts",
            "vnish": "Via scripts",
            "luxos": "Limited†",
            "dcent_os": "Partial‡",
            "notes": "DCENT_OS current beta: scheduled sleep windows + night-mode power-reduction time windows (config.rs). A full arbitrary time-based mode scheduler (mine/eco/off by time window) is planned future work — not yet shipped."
        },
        {
            "category": "curtailment",
            "category_label": "Curtailment / Demand Response",
            "feature": "Space heater / room-temp mode",
            "stock": "N",
            "braiins": "N",
            "vnish": "N",
            "luxos": "N",
            "dcent_os": "Y‡ (target)",
            "notes": "DCENT_OS unique target: room temperature targeting, BTU display, thermostat integration. No other firmware in this comparison targets this use case."
        },
        {
            "category": "connectivity",
            "category_label": "Connectivity & Protocol",
            "feature": "Stratum V1",
            "stock": "Y",
            "braiins": "Y",
            "vnish": "Y",
            "luxos": "Y",
            "dcent_os": "Y‡",
            "notes": "JSON-RPC over TCP; universal baseline for pool compatibility."
        },
        {
            "category": "connectivity",
            "category_label": "Connectivity & Protocol",
            "feature": "Stratum V2 (native)",
            "stock": "N",
            "braiins": "Y†",
            "vnish": "N",
            "luxos": "N",
            "dcent_os": "Y‡ (target)",
            "notes": "Bible-confirmed: BraiinsOS+ is the ONLY production firmware with native Stratum V2 as of 2026. V2 provides encrypted connections, lower bandwidth, and miner-side block template construction via Job Declaration. DCENT_OS targets V2 as a planned feature — not yet shipped."
        },
        {
            "category": "connectivity",
            "category_label": "Connectivity & Protocol",
            "feature": "DATUM / OCEAN protocol",
            "stock": "N",
            "braiins": "N",
            "vnish": "N",
            "luxos": "N",
            "dcent_os": "Y‡ (target)",
            "notes": "DATUM allows the miner to construct its own block templates, enabling true mining sovereignty. DCENT_OS unique target; no production firmware supports this as of 2026."
        },
        {
            "category": "connectivity",
            "category_label": "Connectivity & Protocol",
            "feature": "Pool failover",
            "stock": "Basic (3 pools)",
            "braiins": "Advanced",
            "vnish": "Advanced",
            "luxos": "Advanced†",
            "dcent_os": "Advanced‡",
            "notes": "Priority list + health checking + automatic rotation between pools."
        },
        {
            "category": "connectivity",
            "category_label": "Connectivity & Protocol",
            "feature": "TLS / encrypted connections",
            "stock": "N",
            "braiins": "Stratum V2†",
            "vnish": "N",
            "luxos": "N",
            "dcent_os": "Stratum V2‡",
            "notes": "Noise protocol encryption is native to Stratum V2. Only firmwares with V2 support can provide TLS-equivalent pool encryption."
        },
        {
            "category": "connectivity",
            "category_label": "Connectivity & Protocol",
            "feature": "AsicBoost (version rolling)",
            "stock": "Y (fixed mask)",
            "braiins": "Y (configurable)†",
            "vnish": "Y (configurable)†",
            "luxos": "Y (configurable)†",
            "dcent_os": "Y (configurable)‡",
            "notes": "mining.configure negotiation; default mask 0x1FFFE000. BM1366+ supports 4 midstates per job."
        },
        {
            "category": "thermal",
            "category_label": "Thermal Management",
            "feature": "Fan control",
            "stock": "Fixed curve",
            "braiins": "PID control",
            "vnish": "PID control",
            "luxos": "PID control†",
            "dcent_os": "PID control‡",
            "notes": "PID with configurable Kp, Ki, Kd. BraiinsOS+ defaults: Kp=5, Ki=0.03, Kd=0.015."
        },
        {
            "category": "thermal",
            "category_label": "Thermal Management",
            "feature": "Target temperature",
            "stock": "Fixed",
            "braiins": "Configurable†",
            "vnish": "Configurable†",
            "luxos": "Configurable†",
            "dcent_os": "Configurable‡",
            "notes": "Default ~75°C across third-party firmwares. DCENT_OS targets adjustable range 40–85°C."
        },
        {
            "category": "thermal",
            "category_label": "Thermal Management",
            "feature": "Temperature protection",
            "stock": "Shutdown only",
            "braiins": "Throttle + shutdown",
            "vnish": "Throttle + shutdown",
            "luxos": "Throttle + shutdown†",
            "dcent_os": "Throttle + shutdown‡",
            "notes": "Soft limit: reduce frequency in steps. Hard limit: shut down board. Third-party firmwares add gradual throttle before hard shutdown."
        },
        {
            "category": "thermal",
            "category_label": "Thermal Management",
            "feature": "Immersion cooling mode",
            "stock": "N",
            "braiins": "Limited",
            "vnish": "Y†",
            "luxos": "Limited†",
            "dcent_os": "Y‡ (target)",
            "notes": "Disables fans, raises temperature limits, optimises voltage/frequency for liquid cooling environment."
        },
        {
            "category": "thermal",
            "category_label": "Thermal Management",
            "feature": "Fan failure detection",
            "stock": "Basic",
            "braiins": "Y",
            "vnish": "Y",
            "luxos": "Y†",
            "dcent_os": "Y‡",
            "notes": "RPM monitoring; alert on fan stall; reduce hashrate or shut down on failure."
        },
        {
            "category": "security",
            "category_label": "Security",
            "feature": "Default credentials",
            "stock": "root/root",
            "braiins": "root/root†",
            "vnish": "admin/admin†",
            "luxos": "Varies†",
            "dcent_os": "Generated‡",
            "notes": "DCENT_OS target: unique random password per device displayed on first boot. Verify default credentials at vendor documentation before deployment."
        },
        {
            "category": "security",
            "category_label": "Security",
            "feature": "Web authentication",
            "stock": "Basic HTTP",
            "braiins": "Basic HTTP†",
            "vnish": "Session†",
            "luxos": "Session†",
            "dcent_os": "Session + CSRF‡",
            "notes": "DCENT_OS target: session-based auth with CSRF protection by default."
        },
        {
            "category": "security",
            "category_label": "Security",
            "feature": "API authentication",
            "stock": "None",
            "braiins": "None†",
            "vnish": "API key†",
            "luxos": "API key†",
            "dcent_os": "API key‡",
            "notes": "DCENT_OS target: API key required for all write operations."
        },
        {
            "category": "security",
            "category_label": "Security",
            "feature": "SSH access",
            "stock": "Locked (since 2019)†",
            "braiins": "Y†",
            "vnish": "N†",
            "luxos": "N†",
            "dcent_os": "Y‡",
            "notes": "Stock SSH locked on S19+ generation. DCENT_OS target: public key auth only (no password SSH). Verify current SSH status in vendor documentation."
        },
        {
            "category": "security",
            "category_label": "Security",
            "feature": "Firmware update verification",
            "stock": "SHA256†",
            "braiins": "RSA + SHA256†",
            "vnish": "Proprietary†",
            "luxos": "Proprietary†",
            "dcent_os": "Ed25519 + SHA256‡",
            "notes": "DCENT_OS target: Ed25519 signatures on firmware updates for modern elliptic-curve security."
        },
        {
            "category": "security",
            "category_label": "Security",
            "feature": "SOC 2 Type 2 certification",
            "stock": "N",
            "braiins": "N†",
            "vnish": "N†",
            "luxos": "Y†",
            "dcent_os": "N (not targeted)",
            "notes": "LuxOS (Luxor Technology Corporation) is the only mining firmware with SOC 2 Type 2 certification as of 2026†. Verify at luxor.tech."
        },
        {
            "category": "security",
            "category_label": "Security",
            "feature": "Audit logging",
            "stock": "None",
            "braiins": "Some†",
            "vnish": "Unknown",
            "luxos": "Y†",
            "dcent_os": "Full‡",
            "notes": "DCENT_OS target: log all admin actions with timestamps and user identity."
        },
        {
            "category": "open_source",
            "category_label": "Open Source & Licensing",
            "feature": "Mining binary open source",
            "stock": "N (S11+)†",
            "braiins": "N (BOSminer binary)†",
            "vnish": "N†",
            "luxos": "N†",
            "dcent_os": "Y‡ (GPL-3.0)",
            "notes": "Bible-confirmed: Stock released source for S9-era models; S11+ not published (noted GPL gap). BraiinsOS+ BOSminer binary is proprietary — stored in bos-assets repo, not open. VNish and LuxOS are fully proprietary. DCENT_OS targets GPL-3.0 full open source."
        },
        {
            "category": "open_source",
            "category_label": "Open Source & Licensing",
            "feature": "Control board hardware open source",
            "stock": "N",
            "braiins": "Y (BCB100, GPLv3)†",
            "vnish": "N†",
            "luxos": "N†",
            "dcent_os": "Y‡ (target)",
            "notes": "Braiins open-sourced the BCB100 control board March 2025: schematics, Gerbers, BOM, CAD, Linux kernel + U-Boot source. License: GPLv3 (software) + CERN-OHL-S (hardware). A foundational contribution to the open mining community."
        },
        {
            "category": "open_source",
            "category_label": "Open Source & Licensing",
            "feature": "API definitions open source",
            "stock": "N",
            "braiins": "Y (gRPC protobuf)†",
            "vnish": "N†",
            "luxos": "N†",
            "dcent_os": "Y‡",
            "notes": "Braiins publishes gRPC API protobuf definitions at github.com/braiins/bos-plus-api. DCENT_OS targets open API definitions."
        },
        {
            "category": "open_source",
            "category_label": "Open Source & Licensing",
            "feature": "Developer fee",
            "stock": "0%",
            "braiins": "2–2.5%†",
            "vnish": "2–2.8%†",
            "luxos": "2.8%†",
            "dcent_os": "0% default‡ (configurable)",
            "notes": "Bible-confirmed ranges. Dev fees redirect a portion of hashrate to the firmware developer's pool. DCENT_OS: 0% default; optional user-configurable donation field. Always verify current rates at vendor documentation — fee structures change across firmware versions."
        },
        {
            "category": "open_source",
            "category_label": "Open Source & Licensing",
            "feature": "Base OS licence",
            "stock": "Angstrom/Yocto (open)†",
            "braiins": "OpenWrt (open)†",
            "vnish": "Linux (open)†",
            "luxos": "Linux (open)†",
            "dcent_os": "Buildroot (open)‡",
            "notes": "All firmwares build on open Linux-based foundations. The differentiation is in the mining software layer above the OS."
        },
        {
            "category": "fleet",
            "category_label": "Fleet & API",
            "feature": "CGMiner API (port 4028)",
            "stock": "Y",
            "braiins": "Y (via gRPC bridge)†",
            "vnish": "Y†",
            "luxos": "Y (compatible)†",
            "dcent_os": "Y‡",
            "notes": "Required for pyasic compatibility. All firmwares implement core CGMiner command set: version, summary, stats, pools, devs, config."
        },
        {
            "category": "fleet",
            "category_label": "Fleet & API",
            "feature": "Prometheus metrics endpoint",
            "stock": "N",
            "braiins": "Y†",
            "vnish": "N†",
            "luxos": "N†",
            "dcent_os": "Y‡ (target)",
            "notes": "DCENT_OS target: /metrics endpoint for Grafana/Prometheus monitoring stacks. BraiinsOS+ also provides Prometheus metrics."
        },
        {
            "category": "fleet",
            "category_label": "Fleet & API",
            "feature": "Batch configuration",
            "stock": "N",
            "braiins": "BOS Toolbox†",
            "vnish": "REST API†",
            "luxos": "SDK†",
            "dcent_os": "Web + API‡",
            "notes": "Configure multiple miners in a single operation."
        },
        {
            "category": "fleet",
            "category_label": "Fleet & API",
            "feature": "Network discovery (mDNS)",
            "stock": "N",
            "braiins": "BOS Toolbox†",
            "vnish": "Limited†",
            "luxos": "Limited†",
            "dcent_os": "Y‡ (target, mDNS)",
            "notes": "DCENT_OS target: automatic miner discovery on the local network via mDNS (zero-config)."
        },
        {
            "category": "fleet",
            "category_label": "Fleet & API",
            "feature": "SSH access for fleet ops",
            "stock": "N",
            "braiins": "Y†",
            "vnish": "N†",
            "luxos": "N†",
            "dcent_os": "Y‡",
            "notes": "Full shell access for advanced operators and scripted fleet management."
        },
        {
            "category": "fleet",
            "category_label": "Fleet & API",
            "feature": "OTA firmware updates",
            "stock": "Stock only†",
            "braiins": "Y†",
            "vnish": "Y†",
            "luxos": "Y†",
            "dcent_os": "Y‡",
            "notes": "Over-the-air firmware upload via web interface."
        },
        {
            "category": "fleet",
            "category_label": "Fleet & API",
            "feature": "Firmware rollback (A/B)",
            "stock": "N",
            "braiins": "Y†",
            "vnish": "Limited†",
            "luxos": "Limited†",
            "dcent_os": "Y‡",
            "notes": "DCENT_OS target: dual-partition A/B scheme — safe boot of previous firmware if new version fails."
        }
    ]
}