Avalon4

From Bitcoin Wiki
Jump to navigation Jump to search

Pictures

A3222

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:
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.

Avalon4 connection

JTAG Port

PMU

HU

Power & GND

LED


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)

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

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
4.1 350:325:300 7500 800G ? Watt
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

AUC

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

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

RPi/703N Firmware

Daily Building

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

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

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

Links