Avalon4

= Pictures =
 320px 320px 320px
= Design Files =
* The Hardware design files: http://downloads.canaan-creative.com/hardware/A3222/avalon4/
* A3222 ASIC Datasheet: http://downloads.canaan-creative.com/hardware/A3222/datasheet/
 Package: QFN56-8X8, 0.5mm pitch
 Process node: 28nm
 Core voltage: 0.65 ~ 0.8V
 Chip frequency: 400MHz
 Hashrate: 25Gh/s
 Power usage: 0.4-0.6J/Gh on ASIC side
 VDDIO: 1.5 ~ 2.5V
== SPI Example ==
 640px
 a real data:
 1st:
 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}
 
 2nd:
 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}
 
 3rd:
 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;
= Avalon4 =
Each module carry 40 A3222 ASICs, the module should be working at 1TH/S and using ~680W power.
 320px 320px
 320px 320px
 320px 320px
 320px
== Avalon4 connection ==
 320px
== JTAG Port ==
 320px 320px
== PMU ==
 310px 310px
 310px 310px
== HU ==
 310px
== Power & GND ==
 320px
== Physical Distinction between 4.0 and 4.1 machine ==
=== LED Board ===
 *‘Ver. 4.X’ is marked in the bottom right-hand corner of the lights panel.
 390px 390px
=== PMU ===
 The other way is open the case to check PMU (Power Module Unit)
 * (On the left) Three 270uf 16V and two 820uf 16V blue solid capacitors are used in 4.0 version.
 * (On the right) Four 100uf 16V and four 560uf 6.3V purple solid capacitors are used in 4.1 version.
 390px 390px
=== Controller ===
 * The hardware is the same in 4.0 and 4.1, the only different is the firmware
== LED ==
 390px
LED 	OFF 	ON 	BLINKING 	MEMO
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 ==
== Avalon4 CGMiner Under Ubuntu 14.04 ==
=== Download ===
 Inside your home directory, download Cgminer
 git clone https://github.com/Canaan-Creative/cgminer
=== Compile ===
 cd cgminer
 git checkout origin/avalon4 -b avalon4
 ./autogen.sh --enable-avalon4
 make -j 4
=== Run ===
 sudo ./cgminer --avalon4-fan 60 --avalon4-freq 200 --avalon4-voltage 7125 --lowmem -o http://stratum.pool:3333 -u work -p pass 
 or
 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:192.168.2.1 --api-listen $@ 2>./log
=== Tweak ===
* 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) ===
=== Compile flags ===
Value	BOOTLOADER 	MM41 	DEBUG
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
MM Ver	Chip Freq 	Voltage	Hashrate	Power usage
4.1 	375:300:275	7000 	800G 	419Watt
4.1 	375:350:300	7500 	866G 	457Watt
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 	800Watt
4.1 	570:510:470	8375 	1.3T 	990Watt
= AUC =
Avalon USB2IIC converter, USB VID:PID 29f1:33f2
 
Provided by cybtc
== LED ==
* PWR: Power indicator
* R: AUC response error
* G: IIC Xfer
* B: AUC init
== AUC Firmware ==
=== 20141122 ===
* AUC version: AUC-20141122
* Reset asic when usb config changed(true->false)
=== 20141105 ===
* AUC version: AUC-20141105
* Code cleanup
* Improve for firmware burning
=== 20141103 ===
* AUC version: AUC-20141103
* Add watchdog
* Code cleanup
=== 20141027 ===
* AUC version: AUC-20141027
* Change Manufacturer to CANAAN
=== 20141019 ===
* AUC version: AUC-20141019
* First version of AUC firmware
* Source URL: https://github.com/Canaan-Creative/Avalon-USB-converter
= RPi/703N Firmware =
=== Daily Building ===
* http://build.canaan-creative.com:8080/~mikeqin/build/
=== 20150331 ===
* Add --avalon4-freezesafe option
* Fix hash rate counter
* Change default fan & overheat for separate miningmode
* Update cutoff process when Avalon4 is overheat
* Correct asic workflow when cutoff is off
* Enable voltage adjustment when cutoff is off
* Enable setting LED on/off through API command
* Add upgrade and status button when upgrade mm firmware finish
* Support mm-tools on TL-WR703N
=== 20150213 ===
* 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
=== 20150119 ===
* 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.
=== 20141213 ===
* 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
=== 20141203 ===
* Add module elapsed time
* Modify the decrase offset from 250 to 4*125,increase step to 125
=== 20141127 ===
* Add TL-WR703N support
* Add automatic voltage support
* Add GHS5m and DH%5m for each module
* Fix AUC ADC value
=== 20141124 ===
* 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
=== 20141118 ===
* Adjust module voltage by ascset
* A new theme was added to luci,and use it as default
=== 20141112 ===
* 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
=== 20141029 ===
* First version of Avalon4 firmware
=== NEXT-TESTING ===
* NOTICE: Only for testing
== Issues ==
* 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 ==
* http://build.canaan-creative.com:8080/~mikeqin/mm41/
== 20150312 ==
* Version 411503-9281cd10
* Fix mm firmware revert
* Check pg when mm working
* Fix boot failure(Change bootloader with ila)
== 20150214 ==
* 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
==20150115 ==
* Version 411501-d17f4a10
* Fix negative temperatures
* Support MM Tx reset by CGMiner
==20141231 ==
* 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
==NEXT-TESTING ==
* 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 ==
* http://build.canaan-creative.com:8080/~mikeqin/mm/
== 20150312 ==
* Version 401503-9281cd10
* Fix mm firmware revert
* Check pg when mm working
* Fix boot failure(Change bootloader with ila)
==20150214 ==
* 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
==20150119 ==
* Version 401501-4778d610
* Support voltage adjustion by miners
* Put the frequency table to CGMiner
==20150115 ==
* 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
==20141219 ==
* 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
==20141217 ==
* Version 401412-39242210
* Change api for miner work statistics
* Fix the g_local_work count
* Fix temperautre < 0
* Fix led display when post failed
==20141213 ==
* 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
==20141122 ==
* 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/
==20141111 ==
* Version: 401411-5965e0f0
* Add ntime offset configure from outside
* Reset globe values when idle
* Update ChangeLog, README and MM_VERSION
==20141109 ==
* 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%
==20141104 ==
* 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
==20141101 ==
* Fix the front led display
* Cutoff power after testing
==20141030 ==
* First version of Avalon4 firmware
==NEXT-TESTING ==
= Design file =
* http://downloads.canaan-creative.com/hardware/A3222/
= Links =
* Avalon的第四代BTC挖矿芯片A3222 通过了初步的功能测试
* 阿瓦隆4比特币矿机1T单模组彩云评测
* Review: http://www.cybtc.org/article-70-1.html
* Review: https://bitcointalk.org/index.php?topic=1008726.0
* Review: https://bitcointalk.org/index.php?topic=1008726.msg10946156#msg10946156
zh-cn:阿瓦隆4