SUPPORTED DEVICES

Currently supported devices include the Avalon, the Butterfly Labs SC range
of devices and the ASICMINER block erupters.

The BFL devices should come up as one of the following:

BAJ: BFL ASIC Jalapeño
BAL: BFL ASIC Little Single
BAS: BFL ASIC Single
BAM: BFL ASIC Minirig

BFL devices need the --enable-bflsc option when compiling cgminer yourself.

Avalon will come up as AVA.

Avalon devices need the --enable-avalon option when compiling cgminer.

ASICMINER block erupters will come up as AMU.

ASICMINER devices need the --enable-icarus option when compiling cgminer.


GETTING STARTED WITH BUTTERFLY LABS ASICS

Unlike other software, cgminer uses direct USB communication instead of the
ancient serial USB communication to be much faster, more reliable and use a
lot less CPU. For this reason, setting up for mining with cgminer on these
devices requires different drivers.


WINDOWS:

On windows, the direct USB support requires the installation of a WinUSB
driver (NOT the ftdi_sio driver), and attach it to the Butterfly labs device.
The easiest way to do this is to use the zadig utility which will install the
drivers for you and then once you plug in your device you can choose the
"list all devices" from the "option" menu and you should be able to see the
device as something like: "BitFORCE SHA256 SC". Choose the install or replace
driver option and select WinUSB. You can either google for zadig or download
it from the cgminer directory in the DOWNLOADS link above.

When you first switch a device over to WinUSB with zadig and it shows that
correctly on the left of the zadig window, but it still gives permission
errors, you may need to unplug the USB miner and then plug it back in


LINUX:

On linux, the direct USB support requires no drivers at all. However due to
permissions issues, you may not be able to mine directly on the devices as a
regular user without giving the user access to the device or by mining as
root (administrator). In order to give your regular user access, you can make
him a member of the plugdev group with the following commands:

 sudo usermod -G plugdev -a `whoami`

If your distribution does not have the plugdev group you can create it with:

 sudo groupadd plugdev

In order for the BFL devices to instantly be owned by the plugdev group and
accessible by anyone from the plugdev group you can copy the file
"01-cgminer.rules" from the cgminer archive into the /etc/udev/rules.d
directory with the following command:

 sudo cp 01-cgminer.rules /etc/udev/rules.d/

After this you can either manually restart udev and re-login, or more easily
just reboot.


AVALON DEVICES

Currently all known Avalon devices come with their own operating system and
a preinstalled version of cgminer as part of the flash firmware, based on the
most current cgminer version so no configuration should be necessary. It is
possible to plug a USB cable from a PC into the Avalon device and mine using
cgminer as per any other device. It will autodetect and hotplug using default
options. You can customise the avalon behaviour by using the --avalon-options
command.

eg:
--avalon-options 115200:24:10:45:282

The values are baud : miners : asic count : timeout : frequency.

Baud:
The device is pretty much hard coded to emulate 115200 baud so you shouldn't
change this.

Miners:
Most Avalons are 3 module devices, which come to 24 miners. 4 module devices
would use 32 here.

Asic count:
Virtually all have 10, so don't change this.

Timeout:
This is how long the device will work on a work item before accepting new work
to replace it. It should be changed according to the frequency (last setting).
It is possible to set this a little lower if you are trying to tune for short
block mining (eg p2pool) but much lower and the device will start creating
duplicate shares.

Sample settings for different frequencies (last 2 values):
43:300
45:282 (default)
47:270
50:256

Frequency:
This is the clock speed of the devices. Only specific values work, 256, 270,
282 (default) and 300.

If you use the full curses based interface with Avalons you will get this
information:
AVA 0: 22/ 46C  60%/2400R

The values are:
ambient temp / highest device temp  set fan % / lowest detected fan RPM.

Use the API for more detailed information than this.

---

This code is provided entirely free of charge by the programmer in his spare
time so donations would be greatly appreciated. Please consider donating to the
address below.

Con Kolivas <kernel@kolivas.org>
15qSxP1SQcUX3o4nhkfdbgyoWEFMomJ4rZ
