Antminer – Factory Reset Procedure
Warning — Should be addressed soon
Symptoms
- Forgot the dashboard password (`root`/`admin` or a custom one set by a previous owner)
- Miner boots, hashes briefly, then crashes or reboots on a schedule — pointing at a corrupted config, not hardware
- Dashboard shows a stuck `TEST` pool you can't overwrite (the infamous BHB42 factory firmware — see [related error](https://d-central.tech/asic-troubleshooting/antminer-bhb42-bmminer-version-mismatch/))
- Custom firmware (Vnish / Braiins OS+ / LuxOS / DCENT_OS) left behind a config you can't undo via its dashboard
- Miner's IP is set to a static address you can't guess, and the `IP Report` button doesn't fire on your network
- Second-hand miner arrived with previous owner's pool hard-wired, dashboard locked
- `kern.log` shows `cgminer: config parse error` or the UI hangs at "loading profile"
- Autotune / overclock profile crashed the miner into a boot loop (Antminer Autotune Firmware — [related error](https://d-central.tech/asic-troubleshooting/antminer-autotune-firmware-crash/))
- Post-update: firmware upgraded successfully but the miner never reappears on the network
- Reset button was pressed but nothing happened — you're outside the 2-10 minute valid window
- Dashboard shows the wrong hardware revision or model string after a firmware mismatch
- WPML / UI locale is stuck in a language you can't read
Step-by-Step Fix
Hard power-cycle the miner. Flip the breaker, wait 30 seconds, flip it back. This is the mandatory precondition for the reset button to work — the button handler only registers during the first 2–10 minutes after a cold boot. Don't use the soft "reboot" in the UI; the handler timer doesn't reset on soft reboots. If you only have SSH, `reboot -f` achieves the same result but still count 2 minutes from when the kernel comes up, not from when you typed the command.
Wait exactly 2 minutes. Let the miner come up, start its init daemon, and register the button handler. Too early (under 2 minutes) and the handler isn't loaded yet, so nothing happens. Too late (past 10 minutes) and the handler is unregistered to prevent accidents. Set a timer. Don't guess. During this window the front status LED will typically go from red to green — that's your visual cue the system is live enough to respond to the button.
Hold the `Reset` button for 5 seconds. Not 3, not 10. On S9 / S17 / S19 boards, this is a small recessed button on the edge of the control board — you may need a paperclip to reach it. The factory reset flag gets written to `/config/.reset` (or equivalent) on button-up. Release, and the miner will autonomously reboot within 30 seconds. Full reset-and-restart takes another 4 minutes. Don't unplug during this — interrupting a reset mid-write can leave `/config/` in a half-wiped state that behaves worse than no reset at all.
Find the miner on DHCP. After the reset, the miner boots with network in DHCP mode and the default password (`root` / `root` on stock pre-2022 firmware, or a model-specific sticker password on newer boards). Use `nmap -sn`, your router's DHCP lease table, or Bitmain's [IP Reporter tool](https://service.bitmain.com/support/download). On S9, you can also press the `IP Report` button to broadcast the current IP to any IP Reporter running on your subnet. Re-configure the pool, worker name, and password in the UI.
Web UI factory reset (if UI is reachable). Log in → `System` → `Factory Reset` → confirm. This is the cleanest path when you have UI access but want a clean slate. On Braiins OS+ / Vnish / LuxOS / DCENT_OS, the equivalent is `Settings` → `Factory Defaults` (exact wording varies). Both achieve the same config-wipe-only result as the button — the firmware image stays in place.
Prepare a 16 GB or smaller MicroSD card. Format as FAT32, MBR partition table, single partition. Larger cards won't boot on most Bitmain control boards — 16 GB is the documented cap. If you have an SD card with an existing `recovery.img` or `boot.img` from a previous use, wipe it completely before copying the new firmware; stale files in the root confuse the bootloader.
Download the correct firmware for your exact hardware revision. Go to [service.bitmain.com/support/download](https://service.bitmain.com/support/download), filter by model and revision (printed on the control board silkscreen — e.g., `BHB42601`, `BB01`, `Amlogic S905`). Download the `.tar.gz` or `.bin` image. Do not use a firmware image from a different revision of the same model — an S19 Pro BHB68001 image on an S19 Pro BHB68601 board bricks the control board. This is the single most common operator-error brick at D-Central's repair bench.
Copy the firmware image to the SD card root. Do not unzip it unless Bitmain's release notes for that specific image tell you to. Eject cleanly (`sync && umount` on Linux/Mac, "Safely Remove" on Windows). Power the miner off at the breaker.
Insert the SD card into the control board's MicroSD slot. Power on. The miner's onboard bootloader checks for an SD card during the first 10 seconds of boot — if it finds one with a valid image, it flashes the image to eMMC and wipes `/config/` as a side effect. LED patterns during flash vary by model; on S19 the green LED typically blinks at 1 Hz during write and stays solid when flash completes. Flash time: 3–6 minutes. Do not power off during flash.
Remove the SD card and reboot. The miner boots from the newly-flashed eMMC, comes up in DHCP mode with factory defaults, and registers on your network. If you leave the SD card in, the miner may re-flash on every boot — pull the card once the first successful boot completes.
SSH config reset. If the miner is network-reachable but UI is locked or misbehaving, `ssh root@<miner-ip>` with default creds (`root` / `root` on legacy; `admin` / `admin` or sticker-password on newer firmware). On stock Bitmain, `cfg_util reset` (S9/S17) or `/etc/init.d/bmminer stop && rm /config/cgminer.conf && reboot` (generic) wipes config without a firmware flash. On Braiins OS+: `bosminer config default && reboot`. On DCENT_OS: `dcentctl reset --config-only`. On Vnish: `vnish_reset` or the equivalent dashboard toggle. Each of these is faster than the button because you skip the 2-minute boot window and the 4-minute post-reset reboot.
UART serial console access. Requires a USB-TTL adapter (FTDI FT232RL, CP2102, or CH340-based) at `3.3 V` logic. Connect `GND` first, then `TX` (adapter) → `RX` (board), `RX` (adapter) → `TX` (board). UART header location on S19: 3-pin unpopulated header near the SoC, labelled `J4` or `UART` on the silkscreen. Open `minicom` / `screen` / `PuTTY` at `115200 8N1`, no flow control. Power-cycle the miner and watch the boot log stream. Interrupt U-Boot with the keystroke it prompts for (usually any key during the 1-second pre-boot pause).
U-Boot recovery operations. From the U-Boot prompt you can `env default -a` to wipe bootloader env, `mmc erase <start> <size>` to wipe eMMC partitions by hand, or `tftp <addr> <filename>` to pull a recovery firmware over the network from a TFTP server on your desk. This is how you unbrick an eMMC-only S19 XP or S21 when the SD card trick isn't available. Not for the faint of heart — a wrong `mmc erase` bricks the control board harder than you started. Have the correct partition table for your revision on hand before running.
Clean re-flash via U-Boot TFTP. Set up a TFTP server on your laptop (`tftpd-hpa` on Linux, `SolarWinds TFTP Server` on Windows). Put the correct firmware image in the TFTP root. From U-Boot: `setenv ipaddr 192.168.1.100; setenv serverip 192.168.1.10; tftp 0x10000000 antminer_s19_v1.0.3.bin; mmc write 0x10000000 <offset> <size>; reset`. Exact offsets depend on control board family — reference Bitmain's recovery doc or the community wiki for your board.
Cross-flash to DCENT_OS as part of reset. If you're already at the UART level with a working TFTP chain, this is the ideal moment to cross-flash [DCENT_OS](https://d-central.tech/dcent-os/) — D-Central's own open-source Antminer firmware — and get per-chip HW% visibility, autotuning, Stratum V2, and all the features Vnish / LuxOS / Braiins OS+ charge for, open-source, maintained publicly on [GitHub](https://github.com/DCentralTech/DCENT_OS). Same flash path as stock, different image. Alternatives: Braiins OS+, LuxOS, Vnish. We recommend DCENT_OS first because it's open-source, Mining-Hacker-maintained, and doesn't phone home.
When to stop DIY. You've tried Tier 1–3 and the miner either (a) won't accept an SD flash because the eMMC is corrupt, (b) doesn't respond on UART, (c) shows physical damage on the control board — burnt PMIC, cracked crystal, swollen cap, or (d) refuses to boot to U-Boot even with a known-good SD / TFTP image. Any of these = the control board needs bench work or replacement. Stop pressing buttons. [Book a D-Central ASIC Repair slot](https://d-central.tech/services/asic-repair/) with a note on what you've already tried — it cuts our diagnostic time and your bill.
What D-Central does at the bench. Bench test fixture with programmable PSU to rule out power-rail damage; JTAG / UART console recovery on eMMC-only boards using the correct firmware image for the exact silkscreen revision; control board replacement with matched-revision stock when eMMC is dead; full post-repair 24-hour burn-in at nameplate before return shipping. For `BHB42` test-firmware locks specifically, we maintain an internal library of BHB42-compatible recovery images that the public Bitmain download portal doesn't serve.
Ship safely. Control board alone is fine in a padded anti-static bag inside a box with 5 cm of foam all around. If shipping the whole miner chassis, remove the hashboards from the slots first (they damage each other in transit when the chassis flexes) and pack them separately. Include: firmware version last known working, what you tried, what you observed. Canada-wide shipping from D-Central; US/international welcomed.
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.
