Avalon nano

From Bitcoin Wiki
Revision as of 07:51, 14 July 2015 by Mikeqin (talk | contribs)
Jump to navigation Jump to search

It's a usb dongle, using only one A3233.

Hardware version 1.0

Features

  • VID/PID: 0x1FC9/0x0083
  • Icarus protocol support
  • It use USB CDC, without need driver installation under Linux
  • Smart LED indicator
  • Overheating protection. (>= 65℃)
  • Adjust the hashrate automatically by temperature

Software

It can support CGMiner, BFGMiner and AvalonMiner(Based on BFGMiner) for now.

CGMiner Under Ubuntu 14.04

  • Download / Compile / Run
Download
Inside your home directory, download CGMiner
git clone https://github.com/Canaan-Creative/cgminer
Compile
cd cgminer
git checkout origin/avalon-usb -b avalon-usb
./autogen.sh --enable-icarus
make -j 4
Run
sudo ./cgminer --icarus-options 115200:1:1 --icarus-timing 0.22 -o http://stratum.pool:3333 -u  work -p pass 
or
sudo ./cgminer --icarus-options 115200:1:1 --icarus-timing 0.22 -o http://stratum.pool:3333 -u  work -p pass --api-allow W:192.168.2,W:192.168.2.1 --api-listen $@ 2>./log
  • Patches
Patch for Canaan Creative's CGMiner: 001-avalon3-nano.patch
For what: CGMiner patch.
From where: Based c5ec1171@https://github.com/Canaan-Creative/cgminer/tree/avalon2
Comments: 
 	Support avalon3 nano in cgminer.
 	Support Icarus protocol.

BFGMiner

  • Run
 Run under Linux
 ./bfgminer \
       -S ICA:/dev/ttyACMx \
       -o stratum+tcp://stratum.ozco.in:80 -O mikeqin.avalon:1234 \
       --set-device ICA:baud=115200 \
       --set-device ICA:reopen=timeout \
       --set-device ICA:work_division=1 \
       --set-device ICA:fpga_count=1 \
       --set-device ICA:probe_timeout=100 \
       --set-device ICA:timing=0.22 \
       --api-listen \
       2>log
 Run under Windows
 bfgminer.exe ^
       -S ICA:\\.\COMn ^
       -o stratum+tcp://stratum.ozco.in:80 -O mikeqin.avalon:1234 ^
       --set-device ICA:baud=115200 ^
       --set-device ICA:reopen=timeout ^
       --set-device ICA:work_division=1 ^
       --set-device ICA:fpga_count=1 ^
       --set-device ICA:probe_timeout=100 ^
       --set-device ICA:timing=0.22 ^
       --api-listen ^
       2>log
 
 Note: See the details about the timing in README. It works ~4GH/s(400 * 11.8) at 400MHz.
 timing = (1 / (4 * 10 ** 9)) * 10 ** 9 (python format)
  • MHS Cur calculation
 MHS Cur = Diff1 Work * (Difficulty Accepted / (Difficulty Accepted + Difficulty Rejected + Difficulty Stale)) * 60/ Elapsed * 71582788 / 1000000
 Note:
 1.if Difficulty Accepted + Difficulty Rejected + Difficulty Stale = 0,then Difficulty Accepted / (Difficulty Accepted + Difficulty Rejected + Difficulty Stale) = 1。
 2.Get all the infomation through ./bfgminer-rpc -o summary
  • BFGMiner release from luck.dashjr
 http://luke.dashjr.org/programs/bitcoin/files/bfgminer/

AvalonMiner

It is developed under Windows with Chinese UI only, You can import the solution and crack it by yourself. It is distributed under UNLICENSE.Source code can be download here: [1]

Release

20140911

  • Avalon3 nano windows miner(20140911)
  • Beautifull GUI
  • Auto detect Avalon nano

20140803

  • Avalon3 nano windows miner(20140803) first version
  • Support bfgminer only
  • Support icarus protocal
Run or Debug with CLI
  1. Copy BfgMiner to a safe place.
  2. Uninstall Avalon GUI Miner
  3. Modify the icadbg.cmd(under BfgMiner folder) with your correct com port.
  4. Double click icadbg.cmd.

Note: BFGMiner location: (C:\Program Files (x86)\Avalon Nano\BfgMiner)

Hardware

Schematics

LPC11U14 Spec

Type Infomation
Processor NXP's Cortex-M0 LPC11U14 microcontroller
Flash 32 kB
Data Memory 6 kB
Clock Crystals 12.000 MHz crystal for CPU

Clock

Type Value
LPC11U14 (External) 48.000 MHz
A3233 XCLK (From LPC11U14) 24.000 MHz

LED

Color Memo
Green Idle status
Red/Blue Working (Frequency high -> low,led red -> blue)
Red blinking Overheating

Programmer

  • SmartPro 5000U-Plus

SWD Debuger

LPC11U14 only support swd debug. The debugger can also be used to program the LPC11U14 chip.

LPCXpresso
  • Installation and Activation
 LPCXpresso download link [2]
 Free Edition is enough. Then activate it. [3]
  • LPC-Link diagnostics
 Diagnostics when connecting to LPC-Link
 
 1.  lpc-link info
 crt_emu_lpc11_13_nxp -info-emu -wire=winusb
 
 2.  target info 
 crt_emu_lpc11_13_nxp -info-target -pLPC11U14/201 -wire=winusb -4
 
 3. burn and run axf file
 crt_emu_lpc11_13_nxp -pLPC11U14/201 -wire=winusb -flash-load-exec nxp_lpcxpresso_11u14_periph_blinky.axf
 
 4. info scan
 crt_emu_lpc11_13_nxp -info-scan -wire=winusb
 
 5. semi_host debug
 use newlib semihost
  • How to debug issues with gdb (Works on OSX)
   Compile the souce with debug, then run gdb with the following commands:
   1.arm-none-eabi-gdb avalon_nano.axf
   2.target extended-remote | crt_emu_cm_redlink -g -2 -vendor=NXP -pLPC11U14/201 -flash-driver=LPC11_12_13_32K_4K.cfx
   3.load
 
  Then you can use gdb as you want
ULINK 2
  • Configure ULINK2 for LPCXpresso
1.Change boot mode to CMSIS-DAP
Use the Boot Mode Utility to change the mode like this: UL2_Configure B1.

2.Set jumper to 3.3V position
See Jumpers

3.Connect Avalon nano to ULINK2
Check SWD Connector Pinout, need connect SCLK,SWIO,GND only.

Firmware

Reflash

  • Avalon3 nano firmware burner [4]

Release

20140523

  • Avalon3 nano firmware(20140523-dd84b993)
  • Support nonce receive timeout check
  • Support adjust freq for 100Mhz to 360Mhz,freq value after reset is 360Mhz

20140519

  • Avalon3 nano firmware(20140519-8c38877c):first version
  • Avalon3 nano test scripts found here:a3233_avalon_usb_testbench.sh
  • Support adjust freq for 360Mhz to 400Mhz,value after reset is 400Mhz
  • Include avalon3 nano module test(avalon_bsp_testben)
  • bfgminer(0676fa314a9cc1491ad2e5f5c6a5e97f38fa67e3),how to run:http://wiki.0xf8.com/index.php/Bfgminer

NEXT-TESTING

  • NOTICE: Only for testing
  • Adjust LED color according to the temperature

Review

Issues

  • OpenOCD is not support ULINK2 (See src/jtag/drivers/ulink.c)

References

Links