There are two supported ways to flash new firmware onto a Canaan AvalonMiner: a single-machine upgrade through the miner’s own web interface, and a batch upgrade across a whole fleet using Canaan’s management tooling. Which path you take depends on how many units you run — but the discipline is the same either way: match the firmware to the exact model, keep power stable through the entire write, and verify the result before you walk away. Get any of those wrong and you turn a five-minute update into a bench-repair job.
Before You Flash: Get the Right File
AvalonMiner firmware is not interchangeable between models or hardware generations. Downloading “the latest firmware” and pushing it to the wrong board is the single most common way owners brick a unit. Sort this out first.
- Identify the exact model and hardware generation. Industrial units (the A11xx–A15xx line) run Canaan’s Module-Manager firmware paired with a CGMiner build and take an
.aupupgrade package. The home Nano series ships signed.swuimages with RSA verification — a signed image cannot be swapped onto a different model, and tampered or downgraded images are rejected. Grab the file that names your model. - Download only from Canaan’s support portal: support.canaan.io. Do not flash random firmware pulled from forums.
- Record your current pool configuration and MM firmware version. Note the pool URLs, worker names, and the version string before you touch anything — an upgrade can reset settings, and you want a known-good baseline to compare against.
- Stabilise the environment. Flash over a wired connection where possible, on a machine that will not drop the miner mid-write. A dropped link or a power blip during the write is what corrupts the image.
Method 1: Single-Machine Upgrade via the Web Interface
Best for one or a handful of units. The AvalonMiner serves its control panel on port 80.
- Find the miner’s IP address (from your router’s DHCP table, or by pressing the unit’s IP-report button if fitted) and type it into a browser on the same network.
- Log in. Factory credentials are
root/rootfor both username and password. If you changed them, use yours. - Open the Upgrade page. On older builds this is a direct “Upgrade” link; on the newer backend it lives under the system/maintenance menu.
- Click Browse (the file selector box), choose the firmware file you downloaded, and click Upload.
- Let it run. The miner writes the image and reboots on its own. Do not close the page, reload, or cut power until it reports success and comes back online — interrupting the write is how units get bricked.
Method 2: Batch Upgrade Across a Fleet
When you are running rows of AvalonMiners, flashing them one browser tab at a time does not scale. Canaan’s fleet tooling pushes the same image to many units at once over the CGMiner API on port 4028.
Note that Canaan’s original desktop FMS batch tool is legacy — it was retired years ago in favour of the AvalonMiner mobile app and the modern fms-core command-line pipeline. Use whichever current tool Canaan links from the support portal for your generation. The workflow is consistent:
- Download the correct firmware package from Canaan’s support page.
- Launch the management tool and let it discover the miners on your subnet.
- Select the units to upgrade — confirm they are all the same model, since one image will be pushed to every selected machine.
- Point the tool at the firmware file and start the upgrade.
- Watch the report. On completion you get a success confirmation; any units that failed are listed by IP so you can retry them individually rather than re-running the whole batch.
The command-line equivalent is a single per-host call — fmsc upgrade --ip <address> --port 4028 --file <firmware> — which is worth scripting if you manage a large room.
Verify the Upgrade Worked
A reboot is not proof of success. Confirm the miner actually took the new image and is hashing clean:
- Check the reported firmware version. In the web UI it appears on the status/overview page. From a terminal you can query the CGMiner API directly:
echo '{"command":"version"}' | nc <miner-ip> 4028returns the running MM and CGMiner version strings. - Confirm all hash boards are detected and the accepted hashrate has climbed back to the model’s nominal figure — a board that dropped out after the flash points to a bad write or a pre-existing fault the reboot exposed.
- Reapply and confirm your pool settings. If the upgrade reset them, re-enter the pool URLs and worker names you recorded earlier, and watch for accepted shares.
- Watch temperatures and fan behaviour for the first few minutes to be sure the thermal control loaded correctly.
Common Mistakes and Recovery
- Wrong firmware for the model. The number-one brick cause. Double-check the filename against your exact model before uploading.
- Power or network loss mid-write. Never flash a unit you are about to move, and never share the circuit with something that might trip during the write.
- Trying to downgrade a signed home unit. The Nano series’ signature check will refuse older or unsigned images — that is by design, not a fault.
- Assuming a lost pool means lost firmware. If a unit stops hashing after the reboot, check pool config and board detection before you re-flash — most “failed upgrades” are just wiped settings.
If a unit will not boot after a flash, re-upload the correct firmware through the web interface or the batch tool; a partial write can usually be recovered by simply flashing again cleanly. If the control panel is unreachable and the miner shows no network, it has likely failed the write hard and needs hands-on recovery or a hardware inspection rather than another blind flash attempt.
Related: Keep the matching model documentation on hand from our AvalonMiner manuals library, run a structured diagnosis with the ASIC fault finder if a board drops out after upgrading, brush up on the terminology in our firmware glossary entry, and if a unit is bricked or a hash board is dead, start a repair with D-Central rather than risking further damage.
