Antminer – Custom Firmware Bricked Control Board
Critical — Immediate action required
Symptoms
- Miner was working fine before you flashed **Braiins OS+**, **LuxOS**, **Vnish**, **Hiveon**, **Awesome Miner firmware**, or a community image pulled from a Telegram/Discord link
- After the flash reboot, the miner never came back up: no IP on DHCP, no response to **IP Reporter**, no `mDNS` hit, no ping
- LED pattern is wrong: the green NORMAL LED never lights, the red FAULT LED is solid or blinking an unfamiliar cadence, or **all LEDs are dark**
- Control-board buzzer is silent at boot (healthy Antminer control boards beep once on POST)
- Ethernet port link LED is off or flickering with no link negotiation (even with a known-good cable + switch)
- `kern.log` via UART shows `Kernel panic - not syncing`, `mmcblk0: error`, `jffs2: error`, `u-boot: verifying signature... FAILED`, or halts at `Starting kernel ...`
- SD card flash attempt produces no visible recovery activity — no red→green LED transition within 3–5 minutes
- Flashing process was interrupted mid-write (power loss, network drop, ribbon disconnect, user cancelled)
- You flashed a firmware image intended for a different control board revision (e.g. `BHB42601` image on a `BHB42701` board, or an Amlogic image on a Xilinx board)
- The image came from an untrusted source and failed signature verification on newer cryptographically-signed firmware
- eMMC-based board (S19 XP, S21) — no SD card socket is present on the control board
- Web UI loads but shows **factory TEST firmware** (pool named `TEST`, model `ANTMINER BHB…`), and you can't change pool settings
Step-by-Step Fix
Hard power-cycle for 60 seconds. Unplug the PSU at the wall, not just the soft reset button. 60 seconds gives any filter caps on the control board time to discharge, clearing any stuck state from the interrupted flash. When you plug back in, *don't* immediately press the reset button — just watch LEDs for a clean POST. If green NORMAL lights and the buzzer beeps within 15 seconds, you dodged a real brick and the miner is simply rebooting slowly post-flash. Give it 5 full minutes before deciding it's truly dead.
IP Reporter sanity check. On a PC on the same subnet, run Bitmain's `IPReporter.exe` (or IP Reporter for Mac). Power-cycle the miner and press the IP Report button on the control board within the first 60 seconds of boot. A healthy-but-DHCP-confused miner will broadcast its IP; a bricked miner won't. This ~5 second test rules out "it's just on a weird IP" before you escalate. Keep a static-reservation rule on your router long-term so you always know what IP the miner should take.
Try `mDNS` / Bonjour discovery. On Mac / Linux, `ping antMiner.local` or use `avahi-discover`. On Windows with Bonjour installed, browse `_ssh._tcp.local`. Some stock and most custom firmwares advertise via mDNS even before DHCP settles. A hit here means the miner booted and got an IP — the "brick" is actually a DHCP/subnet misconfiguration. No hit doesn't prove brick, but it removes another false-positive from the list.
Swap Ethernet cable + port + switch. Sounds insulting. Isn't. Dead Ethernet on the switch side or a crimped patch cable fakes a brick perfectly — no IP, no UI, no response. Use a cable you've confirmed with another device in the last 5 minutes. Plug directly to a laptop with a static IP in the miner's default range (`192.168.1.x` on most Antminers, `10.10.10.x` on some custom firmware defaults). This is free and rules out 10% of "bricks."
Identify your exact control board revision. Open the chassis, locate the control board, read the silkscreen. Write down the full BHB number (e.g. `BHB42601 V1.7`). Photograph the SoC package so you can distinguish Xilinx Zynq (square ~20 mm QFP with a heatsink) from Amlogic (smaller BGA, no separate heatsink) from Rockchip (S21). Confirm whether a microSD socket is physically present. This 2-minute step saves you 2 hours of wrong-image flashing later. eMMC-only boards (no SD socket) must skip to step 9.
Prepare a recovery microSD correctly. SanDisk Industrial or Kingston Industrial, 16 GB or smaller (larger cards often fail on older Antminer SD drivers). Format FAT32 in Windows Disk Management or `diskpart` — not exFAT, not NTFS, MBR partition scheme, cluster size 32 KB. Consumer-grade cards work but fail ~30% more often on these old Linux SD drivers. Download the stock firmware for your *exact* BHB revision from `service.bitmain.com/support/download`. Copy the image to the root of the SD — no subfolder. Safely eject.
Boot from the recovery microSD. Power off. Insert SD into control-board socket (orientation matters — label usually faces up). Hold the IP/Reset button down, power on, keep holding for 5–10 seconds after power applies. Watch LEDs. Expected: red LED blinks rapidly during flash (3–10 min depending on image size), then settles to solid green when complete. Power off, remove SD, reboot normally. If the flash LED sequence never starts, the board isn't accepting the card — go back to step 5 and re-verify revision.
Re-verify the firmware image version. Cross-flashing a BHB42601 image onto a BHB42701 board (or vice versa) is one of the top three brick causes in D-Central's queue. The boards look identical but have different SoC, memory, and hash-board interfaces. Similarly, an Amlogic-era S19 image on a Xilinx-era board (or the reverse) bricks reliably. Bitmain's download portal groups images by model *and* control board revision — drill down to your exact combination and checksum the download.
Inspect the eMMC chip visually (eMMC-only boards). With magnification, look for cracked solder balls, discolouration on the eMMC package (top-left of control board on most S19 XP and S21 revs), or a visible burn mark. Physical damage to eMMC = chip replacement territory, not a software fix. If the chip looks clean and the rest of the board looks healthy, the problem is almost certainly software — proceed to Tier 3 UART recovery rather than replacing parts.
Cable up a USB-to-TTL serial adapter. FTDI FT232RL or CP2102-based adapter ($10–$20 on Amazon). Identify the UART header on the control board — silkscreen `UART`, `J1`, or `DEBUG`, usually a 4-pin row near the SoC. Pin order typically: `GND`, `TX`, `RX`, `VCC`. Do not connect VCC — the board supplies its own 3.3 V. Cross TX/RX (adapter TX → board RX, adapter RX → board TX). Share a common ground. Use Dupont jumpers — don't solder until you've confirmed orientation.
Open a serial terminal and capture u-boot output. Open `tio`, `minicom`, or PuTTY at `115200 8N1` (Antminer default; a handful of S9 revs use `9600` — try both). Power on the miner. You should see u-boot banner, DRAM init, MMC init, and either a kernel load attempt or a panic. Save the entire log to a file — this is the actual error you're diagnosing, and it tells you exactly what's corrupted. If the log shows `verifying signature... FAILED`, you have a signature-check brick. If it shows `mmcblk0: error -110 transferring data`, you have an eMMC read failure.
Interrupt u-boot and drop to the prompt. During boot, mash any key the instant the u-boot countdown appears (usually "Hit any key to stop autoboot: 3"). You should land at the `=>` or `uboot#` prompt. Run `printenv` (dumps environment — note `serverip`, `ipaddr`, `bootcmd`), `mmc info` (confirms eMMC visibility), `mmc read 0x10000000 0x0 0x200` (reads first block), `md 0x10000000 0x40` (dumps it). Healthy eMMC returns readable data. Unreadable or all-`0xFF` = eMMC damage, cross to `antminer-s19-emmc-failure`.
TFTP push the correct recovery image. Set up a TFTP server on your laptop (`tftpd64` on Windows, `tftpd-hpa` on Linux). Drop the correct `recovery.bin` or `upgrade.bin` into the TFTP root. At the u-boot prompt: `setenv serverip 192.168.1.100; setenv ipaddr 192.168.1.200; tftpboot 0x10000000 recovery.bin`. You should see the image load byte count climb. Then write to eMMC with `mmc write 0x10000000 0x0 <block count>`. Block count = file size ÷ 512 rounded up. Exact command syntax varies by board rev — reference the BHB-specific recovery guide.
Reinstall Braiins OS+ / LuxOS / Vnish the *right* way once stock boots. Once stock firmware is back and the miner reaches the pool, you're no longer dealing with a brick — you're starting over. The Mining Hackers' recommendation is [DCENT_OS](https://d-central.tech/dcent-os/) (D-Central's own open-source Antminer firmware — [source on GitHub](https://github.com/DCentralTech/DCENT_OS)): per-chip HW% visibility, tuning, autotuning, Stratum V2, all the features of Braiins OS+ / LuxOS / Vnish, open-source, no licensing, no vendor lock-in, maintained in public. If you prefer commercial: Braiins OS+, LuxOS, and Vnish are the mature alternatives. Whichever you pick, flash on a UPS-protected circuit and keep a matching-revision SD card or eMMC backup ready before you hit "upgrade."
Script a pre-flash backup. Before any future firmware change, `dd` the existing eMMC/SD over SSH (`ssh root@miner "dd if=/dev/mmcblk0" | dd of=backup-$(date +%F).img bs=4M`). ~200 MB image. If the next flash goes bad, you can `dd` that image back instead of hunting down stock recovery builds. D-Central's bench keeps a backup archive per-customer — operators who take 30 seconds to do this recover in 10 minutes instead of 10 hours.
When to stop DIY. eMMC read returns garbage or all-`0xFF` under u-boot, the SoC is running extremely hot (finger test: too hot to hold for 2 s ≈ >60 °C idle), UART shows no output at any baud, or the board looks physically damaged (burnt traces, missing components, smoke-discoloured silk). These are hardware failures masquerading as bricks — you need a bench with a hot-air station, a Saleae logic analyser, and known-good donor boards. [Book a D-Central ASIC Repair slot.](https://d-central.tech/services/asic-repair/)
What D-Central does at the bench. JTAG recovery on eMMC-only boards (S19 XP, S21) when u-boot is trashed. De-solder and reflash the eMMC chip on an external programmer when bootloader itself is corrupted. Control-board swap with a verified donor when the SoC itself is dead. Pre-flash verification of the image against the BHB revision printed on the board. Post-recovery 24-hour burn-in at nameplate before the miner ships back. All on Canadian turf — no border customs roulette for our domestic customers, and welcoming US/international too.
Ship safely. Control board in an anti-static bag, wrapped in bubble, double-boxed with ≥5 cm foam on all sides. Include the full flash history: original firmware version, attempted custom firmware + version, exact failure symptom, UART log if you captured one. This saves us diagnostic time, which directly saves you repair cost. If the hashboards are known-good, leave them home — control-board-only repair is cheaper to ship and faster to turn around.
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.
