Difference between revisions of "Avalon4"

From Bitcoin Wiki
Jump to: navigation, search
(mm-tools for Raspberry Pi (Model B) , Update mm upgrade firmware)
Line 492: Line 492:
* [http://www.yibite.com/article-4731-1.html Avalon的第四代BTC挖矿芯片A3222 通过了初步的功能测试]
* [http://www.yibite.com/article-4731-1.html Avalon的第四代BTC挖矿芯片A3222 通过了初步的功能测试]
* [http://www.cybtc.com/article-1508-1.html 阿瓦隆4比特币矿机1T单模组彩云评测]
* [http://www.cybtc.com/article-1508-1.html 阿瓦隆4比特币矿机1T单模组彩云评测]
* http://www.cybtc.org/article-70-1.html

Revision as of 09:08, 24 February 2015


AvalonA3233chips.jpeg Avalon4-a3222-1.jpg Avalon4-A3222-3.jpg


Package: QFN56-8X8, 0.5mm pitch
Core voltage: 0.65 ~ 0.8V
Chip frequency: 400MHz
Hashrate: 25-30G (Normal,0.75V)
Power usage: 0.45-0.55W/G on ASIC side
VDDIO: 1.5 ~ 2.5V

SPI Example


a real data:
work n chip1
{576'hc16801619d8d4242e06e5fab25a54bbe222e8b877848c34beea79cd6528caf7e33cde02a983dab158119ce2a1c9fc4eddac8ce296d0fd9da6e18f645087e051a2d547050e8dc86b1, 64'ha, 32'h1, 32'h1, 32'h1} 
work n chip0
{576'h1bed3ba0a2cb45c1d8f8ef6712146495c44192c07145fd6d974bf4bb8f41371d65c90d1e9cb18a17fa77fe7d13cdfd7b0063910762a5f25c06b168ae087e051a895170504ac1d001, 64'h5, 32'h1, 32'h1, 32'h1}

work n+1 chip1
{576'h0, 64'hb, 32'h1, 32'h1, 32'h1}
work n+1 chip0
{576'h0, 64'h6, 32'h1, 32'h1, 32'h1}

work n+2 chip1
{576'h0, 64'hc, 32'h1, 32'h1, 32'h1}
work n+2 chip0
{576'h0, 64'h7, 32'h1, 32'h1, 32'h1}

then get nonce 32'h1beebba0 for chip0, 32'hc1698161 for chip1;


Each module carry 40 A3222 ASICs, the module should be working at 1TH/S and using ~680W power.

Avalon4-BP-1.jpg Avalon4-BP-2.jpg Avalon4-HU-1.jpg Avalon4-HU-2.jpg Avalon4-MM-1.jpg Avalon4-MM-2.jpg Avalon4-PW-1.jpg

Avalon4 connection



Avalon4-JTAG-PIN.jpeg Avalon4-XILINX-Cable.jpeg


Avalon4-PMU-Connector.jpeg Avalon4-PMU-Connector-Header.jpeg

Avalon4-PMU-P1.jpeg Avalon4-PMU-P2.jpeg



Power & GND



Avalon4 FPLed.png

ERR - POST failed or One module dead Manual
WARN Hashing Idle mode Fan is 0 or Overheat
TXD/RXD No data - Data transferring
N1/N2 No nonce - Found one nonce
PG1/PG2 - Power good Some of small PMU failed


IIC Link Avalon4.png

Avalon4 CGMiner Under Ubuntu 14.04


Inside your home directory, download Cgminer
git clone https://github.com/Canaan-Creative/cgminer


cd cgminer
git checkout origin/avalon4 -b avalon4
./autogen.sh --enable-avalon4
make -j 4


sudo ./cgminer --avalon4-fan 60 --avalon4-freq 200 --avalon4-voltage 7125 --lowmem -o http://stratum.pool:3333 -u  work -p pass 
sudo ./cgminer --avalon4-fan 60 --avalon4-freq 200 --avalon4-voltage 7125 --lowmem  -o http://stratum.pool:3333 -u  work -p pass --api-allow W:192.168.2,W: --api-listen $@ 2>./log


  • Led
 Format: ascset|ASCN,led,modularid
 eg: cgminer-api "ascset|0,led,1"
  • Fan
 Format: ascset|ASCN,fan,fanmin[-fanmax]
 eg: cgminer-api "ascset|0,fan,10" or cgminer-api "ascset|0,fan,10-100"
  • Voltage
 Format: ascset|ASCN,voltage,MMID-value[-miner_id-val_offset]
 eg: cgminer-api "ascset|0,voltage,1-7750"
     cgminer-api "ascset|0,voltage,1-7750-0-125"

Technical details

  • The auc take 1~2ms betwwen write and read. even the polling delay is 0 (4800 means 1ms)
  • The cgminer each polling takes ~20ms. even the polling delay is 0ms

MM Notes

mm-tools for Raspberry Pi (Model B)

mm-tools is a program to upgrade Avalon4 mm firmware through Raspberry Pi.

Support mm versions(MM-4.0: >= 401412-7ef4ab10, MM-4.1: Any one)

Ugrade file link: For MM-4.0 For MM-4.1

Method 1:Upgrade it through CLI

In order to use mm-tools, you should use RASPBIAN image on your Raspberry Pi.

  • How to use mm-tools
1. Enable iic on Raspberry Pi

a. Commit "blacklist i2c-bcm2708" in raspi-blacklist.conf under /etc/modprobe.d first.
the example of raspi-blacklist.conf:
       # blacklist spi and i2c by default (many users don't need them)
       blacklist spi-bcm2708
       #blacklist i2c-bcm2708

b. Add i2c.conf under /etc/modprobe.d.
the example of i2c.conf:
      options i2c_bcm2708 baudrate=400000

c. Load i2c-dev module from start
      echo "i2c-dev" >> /etc/modules
2. Clone & Compile & Run
git clone https://github.com/Canaan-Creative/Avalon-extras.git
cd ./Avalon-extras/mm-tools;make
sudo su
make download && ./mm_tools

Method 2:Upgrade it through LuCI

Use the latest avalon firmware for Raspberry Pi(Model B) openwrt-brcm2708-sdcard-vfat-ext4.img

You can upgrade mm firmware through the page: Status->MM Upgrade

Compile flags

0 No bootloader Support MM-4.0 Disable debug
1 Support bootloader Support MM-4.1 Enable debug

User manual

Hashrate Refrence

MM Ver Chip Freq Voltage Hashrate Power usage
4.0 420:390:360 8000 980G 594Watt
4.0 450:390:370 8125 1T 640Watt
4.0 450:400:390 8250 1.1T 655Watt
4.1 420:390:360 7625 980G 542Watt
4.1 450:390:370 8000 1T 600Watt
4.1 500:450:430 8125 1.14T 710Watt
4.1 550:500:450 8250 1.25T 900Watt
4.1 570:510:470 8375 1.3T 990Watt


Avalon USB2IIC converter, USB VID:PID 29f1:33f2


  • PWR: Power indicator
  • R: AUC response error
  • G: IIC Xfer
  • B: AUC init

AUC Firmware


  • AUC version: AUC-20141122
  • Reset asic when usb config changed(true->false)


  • AUC version: AUC-20141105
  • Code cleanup
  • Improve for firmware burning


  • AUC version: AUC-20141103
  • Add watchdog
  • Code cleanup


  • AUC version: AUC-20141027
  • Change Manufacturer to CANAAN


RPi/703N Firmware

Daily Building


  • Increase the voltage adjustment range for individual PMU
  • Display voltage refrence in CGMiner status when CGMiner run with debug
  • Add mining mode option for Avalon4
  • Fix cutoff for individual voltage adjustment
  • Fix hash counter when used a broken Avalon4 (DH almost 100%)
  • Change voltage adjust interval from 8m to 30s (Support all MM4.1 and MM4.0 >= 401501-4778d610)
  • Add freeze safe mode function
  • Update frequency table (Step:125)
  • Rewrite mm-tools, it will not compatile with the old one


  • Support auto adjust voltage individually(Only support on MM-4.1, MM4.0(>401501-d17f4a10))
  • Support temperature display when it is < 0C.
  • Support mm firmware upgrade through LuCI( Caution:Only for professional users!!!)
  • Fix wifi cann't work on TL-WR703N
  • Add mining mode
  • Update the set_voltage method to one by one
  • Change localwork statistics from software to hardware.


  • Improve the voltage increase modules
  • Fix duplicated local work & error work
  • Fix the default settings of new module
  • Fix MM41 voltage setting
  • Add UI for password change
  • Optimise the process of cgminer-status
  • Fix display on avalon index page


  • Add module elapsed time
  • Modify the decrase offset from 250 to 4*125,increase step to 125


  • Add TL-WR703N support
  • Add automatic voltage support
  • Add GHS5m and DH%5m for each module
  • Fix AUC ADC value


  • Add MM41 support
  • Add mm count value in API status
  • Fix the matching_work error
  • Update dh calculation for luci
  • Change theme name to avalon


  • Adjust module voltage by ascset
  • A new theme was added to luci,and use it as default


  • Support RPi B/B+ version
  • Change default IIC speed from 1M to 400K
  • Add Avalon4 MM rolling ntime offset
  • Update fan adjustment
  • Add a new luci theme for Raspberry Pi
  • Display DNA on cgminer status page


  • First version of Avalon4 firmware


  • NOTICE: Only for testing


  • WIFI cann't work on TL-WR703N
This issue was caused by ubus, We can enable or disable it through the button in  the webpage, 
but the display is invalid when wifi was opened.
Work around method: https://github.com/openwrt/luci/commit/ecb0c2f11b861e5035b0397d2396ee4b5e9b3c3e
  • Local hashrate count lower than pool or actual.
Change localwork statistics from software to hardware.

MM Firmware (For MM-4.1)

Daily Building


  • Version 411502-d517e210
  • Add a bootloader feature, auto reboot after download
  • Feed watchdog when get package because it's a block function
  • Fix system crash when modify the miner_id by unintentionally
  • Change compile flag from MBOOT to BOOTLOADER
  • Support mm config load & save


  • Version 411501-d17f4a10
  • Fix negative temperatures
  • Support MM Tx reset by CGMiner


  • Version 411501-08e45110
  • Based on MM-4.0 401412-d31c2c10
  • Turn down cpu frequency(100MHz -> 50MHz)
  • Adjust clk of three domains.
  • Fix LED warning blink when get new stratum
  • Support voltage adjustion by miners
  • Put the frequency table to CGMiner
  • Miner's localwork statistics by HW


  • Reboot mm automatically after upgrade
  • Drop mboot,use a method to upgrade
  • Store extra info for MM

MM Firmware (For MM-4.0)

Daily Building


  • Version 401502-d517e210
  • Add a bootloader feature, auto reboot after download
  • Feed watchdog when get package because it's a block function
  • Fix system crash when modify the miner_id by unintentionally
  • Change compile flag from MBOOT to BOOTLOADER
  • Support mm config load & save


  • Version 401501-4778d610
  • Support voltage adjustion by miners
  • Put the frequency table to CGMiner


  • Version 401501-d17f4a10
  • Turn down cpu frequency(100MHz -> 50MHz)
  • Adjust clk of three domains.
  • Fix LED warning blink when get new stratum
  • Miner's localwork statistics by HW
  • Fix negative temperatures
  • Support MM Tx reset by CGMiner


  • Version 401412-d31c2c10
  • Fix temperautre read. read once per second not 200 times per second
  • Compile MM under Virtual Machine may cause unknown problem. this version compile under ubuntu 14.04


  • Version 401412-39242210
  • Change api for miner work statistics
  • Fix the g_local_work count
  • Fix temperautre < 0
  • Fix led display when post failed


  • Version 401412-7ef4ab10
  • Support MBOOT
  • Keep the nonce2_offse and nonce2_range since g_module_id didn't change
  • Keep mm working when temp is greater than IDLE_TEMP
  • Add parameter for test core count
  • Warning when no fan connect


  • Version 401411-cad52ec0
  • Fix the type on DEFAULT MDOULES
  • Fix the led status when warning
  • Add MM4.1 defines
  • Add new power module in test/


  • Version: 401411-5965e0f0
  • Add ntime offset configure from outside
  • Reset globe values when idle
  • Update ChangeLog, README and MM_VERSION


  • Version: 401410-c6ba5180
  • Big Code cleanup, Update MM protocol.
  • Update timeout value to 90% the theory value.
  • Fix the hashrate couning.
  • Fix watchdog issue. enable watchdog.
  • Remove g_module_id check since we use I2C
  • Move adjust fan in polling package.
  • Update MM idle default fan speed to 10%


  • Version: 401410-223a1c50
  • Update idle timeout from 5s to 3s
  • Display ID on controller LEDs for debug
  • Fix the automatic module detect
  • Disable watch dog
  • IDLE check when both (new stratum) and (module id) was configured


  • Fix the front led display
  • Cutoff power after testing


  • First version of Avalon4 firmware


Design file