cgminer Changelog

What's new in cgminer 4.9.1

Feb 3, 2015
  • If a pool supports full stratum resume (currently only ckpool pools do), which means an interrupted stratum connection can resume and submit any shares worked on in the interim without losing work, a message will now be displayed when the reconnect negotiated a resume.
  • If a dead pool was removed previously there was still a thread in the background trying to connect to it. This has been fixed.
  • Avalon 4 updates to use less power.
  • Fix an intermittent crash with the BFL SC 28nm devices.
  • Fix support for BFL SC 65nm devices failing on last release.
  • Fix the BET driver not being able to restart a new instance when the first fails.
  • Basic FreeBSD compilation support.
  • Other minor build changes and fixes for potential issues.

New in cgminer 4.9.0 (Dec 16, 2014)

  • Avalon 4 driver. This device has a unique usb communication chip and has Manufacturer and product id filled in so it *will* be detected reliably. As per default for cgminer it needs no command line options to work, just remember to copy your udev rules file to enable regular users access to it (or run cgminer sudo). See ASIC-README
  • It comes with the following options (most of which are self explanatory or you shouldn't really touch them):
  • --avalon4-automatic-voltage Automatic adjust voltage base on module DH
  • --avalon4-voltage Set Avalon4 core voltage, in millivolts, step: 125
  • --avalon4-freq Set frequency for Avalon4, 1 to 3 values, example: 45:385:370
  • --avalon4-fan Set Avalon4 target fan speed range
  • --avalon4-temp Set Avalon4 target temperature (default: 42)
  • --avalon4-cutoff Set Avalon4 overheat cut off temperature (default: 65)
  • --avalon4-polling-delay Set Avalon4 polling delay value (ms) (default: 20)
  • --avalon4-ntime-offset Set Avalon4 MM ntime rolling max offset (default: 4)
  • --avalon4-aucspeed Set Avalon4 AUC IIC bus speed (default: 400000)
  • --avalon4-aucxdelay Set Avalon4 AUC IIC xfer read delay, 4800 ~= 1ms (default: 9600)
  • - Added a small change to look for null data being passed to the usb transfer in the hope of avoiding the crash with Yoli boards some are seeing.
  • - Added some basic duplicate share checking to try and capture them per driver and flag them as hardware errors, and filter them out.

New in cgminer 4.8.0 (Nov 26, 2014)

  • Fix for autogen.sh on OSX not liking -f option with readlink.
  • Added an --enable-forcecombo option to allow building of driver combinations with drivers that are normally built standalone.
  • Avalon2 updates to try to detect failing devices and reset them if possible.
  • Avalon2 will no longer loop forever on a failed usb write.
  • Displays for devices with a number in their name will no longer be confused by having a space before their id (eg: AV2 1 instead of AV21)
  • Fixes for understanding share errors from pools that have a non-standard stratum response (i.e. Ghash) which would otherwise have obscured rejects that were occuring for duplicates, etc.
  • Device driver for Antminer U3s:
  • -These require the --enable-icarus option when building a binary and appear as "AU3"
  • -Unlike the bitmain driver, these need no options to work, having sane defaults and accepting the extra options for changing frequency and voltage with the following new options:
  • Code:
  • --au3-freq Set AntminerU3 frequency in MHz, range 100-250 (default: 225.0)
  • --au3-volt Set AntminerU3 voltage in mv, range 725-850, 0 to not set (default: 750)
  • NOTE: These have a tendency of dying if you leave them running at high voltages either at the PSU and/or the device so NOT recommended!
  • The display will show the voltage and frequency configured for antminer U3 and the frequency for U1/2.
  • Numerous improvements to tell apart Icarus devices more reliably (AMU, ANU, AU3, LIN, LIR).
  • Fix for unprefixed IPv6 entries in the api allow command.
  • Fix for misspelt temperature in spondoolies driver.
  • Rockminer driver updates for better support of New R-Box and RK Box:
  • Filter out the bulk of the duplicate shares. This will make the hashrate appear lower, but no pool would have been honouring them as valid shares anyway.
  • Substantially lower hardware errors.
  • Lower CPU usage.
  • Slightly higher effective hashrate.

New in cgminer 4.7.1 (Nov 4, 2014)

  • We used to yield after dropping locks in cgminer to allow low power machines (eg RPi) to work properly with heavily threaded code. Now it only does this on machines where one CPU only is detected otherwise it is wasteful but probably will have no demonstrable effect in anything but microbenchmarks.
  • Changed the configure build system to make it impossible to build more than one device in if the chosen driver was meant to be used standalone, along with more explicit tagging of standalone drivers in the configure help. This should make it easier to choose a more suitable configuration for distribution packaging.
  • Added yet more warnings suggesting not to use the system libusb in configure.
  • Check if pools are alive more frequently if there is only one pool enabled.
  • Don't think that unhandled stratum messages are untracked shares, just filter them out.
  • Added support for mining.ping which is a stratum extension in ckpool.
  • Changed the use of suggest-diff to the newly agreed upon standard of putting the diff in the json parameters.
  • Fixed a crash that happens when write is chosen from the menu and the hashratio driver is built into the binary.
  • We did not stop receiving stratum messages from pools that we disabled from the menu previously.
  • If "restart" was chosen from the menu, any sockets to old pools were not closed down leading to many persistent connections to the pool with each restart. Now these are properly closed (though quit and start again is always more reliable than a restart anyway).
  • Work utility meter was broken in the last release due to maxdiff being set very high for any drivers that didn't set it. Instead maxdiff is assumed to be 1 now unless the driver has it explicitly set showing support for internal driver diff.
  • If the pool priority order is changed while running and we save the config from the menu it will now save the new priority order.
  • Hashfast voltage support for Yoli/Habanero/Bitcrane etc. boards (see ASIC-README)
  • SP30 driver improvements, fixing the hashrate meter.
  • Fixed API taking both an IPV6 and IPV4 address.
  • Fixed OSX build.
  • Added the ability to build libusb without libudev (eg. on BBB)
  • Fixed a small delay in generating more work when queue is set to zero.
  • If different USB devices contain the same communication chip, provided the USB device has a product id set, cgminer will no longer try to use the wrong driver on it (eg LIN vs BFLSC).
  • Added support for more USB3 hubs on windows.
  • Fixed the hashfast driver not building when libcurl is disabled.

New in cgminer 4.7.0 (Oct 16, 2014)

  • IPv6 support for the API
  • Block erupter tube and prisma support
  • Support for the avalon nano usb stick
  • Support for the --suggest-diff stratum option, currently only supported by ckpools
  • Add pool number to addpool response from API
  • Make responses to restart and quit from the API valid json
  • Change spondoolies sp30 hashrate to valid share based meter
  • Add support for a minimum difficulty for slow controllers to not spiral out of control, this will initially make the devices look slow at the pool until vardiff bumps them up properly past the mindiff.
  • Change the default queue back to 1 since increasingly devices are on slow controllers and will inevitably increase their queue size to max
  • Avalon2 tweaks, show max temperature on command line

New in cgminer 4.6.1 (Sep 22, 2014)

  • Fix the BFL Monarchs with their updated firmware naming not being recognised.
  • Fix the BFL Monarchs' overheat throttling not working.
  • Updated avalon2 driver to support nonce2 of 3 bytes' length.
  • On very slow uniprocessor devices (eg RPi) some shares would appear to have "no response from pool" and then later on there will be a response from an "untracked share". This is due to the response coming in from the pool even before the share has been added to cgminer's local database. This change minimises this effect (but does not eliminate it entirely).
  • Fix case sensitivity in API.java
  • Fix ava2 fixed speed option not working on gen2 devices.
  • Api-example fix.
  • Other low level fixes.

New in cgminer 4.6.0 (Sep 8, 2014)

  • BFLSC28, aka BFL Monarch driver.
  • Avalon2 driver updates.
  • Minion driver updates.
  • Allow passwordless workers now.
  • Disconnect connections to unused stratum pools more reliably.

New in cgminer 4.5.0 (Sep 5, 2014)

  • Driver for new device Hashratio, uses direct USB as per all other devices to work generically on any PC platform.
  • Completely rewritten driver for avalon2/3 to use direct USB for generic PC usage, with automatic default voltage and frequency settings if not specified, on screen information, and much smarter fan control.
  • Merged KnC updates for Neptune support.
  • Changed the cointerra driver to not fail on old firmware with checksum errors, allowing people with these devices to easily generically plug them into their PCs.
  • Put lots more documentation into READMEs.
  • Fixed the windows packages to have windows style end of lines again and be readable in notepad.

New in cgminer 3.12.3 (Feb 8, 2014)

  • Fix for the sitting idle doing nothing bug.
  • Add temperature to API devs call for hashfast devices

New in cgminer 3.12.1 (Feb 7, 2014)

  • Dynamic temperature based fanspeed and per-die clockspeed control for hashfast devices with the following new commands.
  • --hfa-fan Set fanspeed percentage for hashfast, single value or range (default: 10-85)
  • --hfa-temp-target Set the hashfast target temperature (0 to disable) (default: 88)
  • Defaults chosen are based on extensive discussion with the design engineers responsible for the silicon and boards and basically it will keep your hashfast devices as close to the starting clockspeed as possible while keeping under~95 degrees by initially increasing fanspeed, and then decreasing the clockspeed on the hottest dies discretely. The output can be watched via the API. Enduring sweltering temperatures of up to 44 degrees here has made for an excellent real world test for this code.
  • Numerous startup/reset/shutdown reliability improvements for hashfast
  • Send a ping to the hashfast device at regular intervals if we don't have any work for it just so it knows cgminer is still alive to try and minimise the dreaded watchdog reboots.
  • Lots of extra information in the hashfast API stats output.
  • Hashfast serial number is shown as a hex value now.
  • Better hashfast flushing of work on restarts new firmware will build further on this.
  • Antminer U1 overclocking support with --anu-freq note:
  • Quote
  • By default, Antminer U1 devices run at a clockspeed of 200. This command allows you to specify a chosen frequency to attempt to run all ANU devices at and the value must be in increments of 25. Note that cgminer reports hashrate ONLY FROM VALID HASHES so if you increase the frequency but your hashrate does not increase or it decreases and hardware errors start showing up, you have overclocked it too much. In the worst case scenario it will fail to start at too high a speed.
  • You basically must use --icarus-timing=short additionally to get the maximum benefit out of the overclocking (at this stage).
  • Keep taking a trickle of work even if it's not being used just to keep an eye on pools and to keep the most recent work time up to date
  • Make the top "window" wider since hashes these days come in the many millions and don't fit into 80 characters
  • In verbose mode, the share above target message shows for which device
  • Rolled back to the last good working libusb the alleged libusb/x merge did not bring improvements and added windows instability with spontaneous exiting
  • Handle better numerous non-terminal errors (the cgsem ones) that were leading to cgminer exiting
  • BAB improvements courtesy of Kano
  • Verbose mode will now show if it takes time to submit a stratum share, or it takes a long time to get a response from pools due to them lagging substantially, to help debug where latencies might be causing high stales.
  • Added a way to zero other stats within each driver when the zero stats command is given (though no driver currently uses it).
  • Fix one stale work item being passed to drivers after a block change.
  • Fix a rare usbutils crash
  • Pool diffs that are fractions only show one decimal place now.
  • In debug mode a message will show up if there are substantial delays in getting work.
  • Fix for massive data over the API
  • Other random fixes.

New in cgminer 3.12.0 (Feb 5, 2014)

  • Antminer U1 support
  • Numerous fixes for behaviour surrounding USB errors - pipe and IO errors, and no more attempting to reset the device since it's rarely helpful and occasionally harmful.
  • Libusb and libusbx have finally reconciled their differences and merged all their fixes together into a new official libusb release, so the main change in this version is updating the core code to include this latest libusb. Hopefully this might increase compatibility with some USB3 hubs on windows and make it more reliable (based on the changelogs I can see in libusb). This is the reason for the minor version number update to 12 as it's quite a substantial code change, hopefully only for the better!
  • Increased the hashfast overheat limit default to 90 after extensive discussions with the engineers who designed the devices.
  • Fixed a crash in the nanofury USB stick code.
  • Fixed the displayed diff shown being wrong when solo mining.
  • bab driver fixes courtesy of Kano.

New in cgminer 3.11.0 (Jan 27, 2014)

  • A proper working hashfast driver tested working on a real device, including the windows version.
  • Substantially updated BAB driver courtesy of Kano. Hopefully he can give us a summary of the changes there.
  • Generic fixes for the reconnect bug on btcguild (unsure if other issues still exist).
  • Work is discarded on a stratum reconnect message from the pool now (as btcguild uses) to avoid working on invalid work on switching URLs.
  • Fixed the stuck line at the top of the log window.
  • Message about block change detected no longer mentions longpoll.
  • API now has a field "Last getwork" in summary which can be used to see that we are still getting work from pools. This is useful if you are trying to determine if a device is dead for device reasons or simply isn't getting work from any pools. It uses the same numbering in seconds with the "Last Valid Work" returned in the device API. If "Last getwork" is not incrementing, there is no work for any devices.
  • Added a nfubits command to allow you to set the clock speed on nanofury/icefury usb sticks. Note that the default was 54 so is now 50 to be in keeping with USB2 power limit standards. This means IT WILL BE SLOWER compared to 3.10.0 unless you change it with this option back to 54. The driver is otherwise unchanged so any other differences you see are pure variance.
  • Threads names have been changed so they will show up with different, consistent names in your process manager of choice.
  • Building will now not include libbitfury on every configuration unnecessarily.
  • The crash on device removal has been fixed.
  • Fixes for lean configurations that failed to build.
  • Hashfast driver changes:
  • Should be more robust with respect to initialisation and dropouts
  • If the device stops returning shares, cgminer will reset the device, and if it cannot, it will drop it, which usually allows it to be rehotplugged again.
  • If a device needs to be reset for not returning shares, and the clockspeed is still overclocked, cgminer will lower the clocks further on every reset.
  • Devices will be throttled if they reach 85 degrees. With water cooling they usually drop in temperature very rapidly. This can be configured with hfatempoverheat
  • Hashrate displayed will be based on valid shares returned so should more accurately represent what the pool will see you hashing at. It will look very unstable initially. Earlier boards do have some loss so the previously displayed hashrate was always over. You can compare the total hashes estimated by this as "Calc hashcount" to compare with "Raw hashcount" the device has worked on in the API stats to see how they differ.
  • Max temp on screen will not show if it's an obvious error showing something like 512
  • The API will show board temperatures
  • Windows builds work Tongue
  • Babyjets show up as HFB while Sierras show up as HFS. Custom devices will come up with the generic HFA name. Note that if you are trying to select them with the usb command, they are all seen as HFA due to the fact that cgminer can only tell them apart after they have been initialised and running.

New in cgminer 3.10.0 (Jan 9, 2014)

  • Minion driver courtesy of Kano. (More info about this from him hopefully).
  • Nanofury driver. These are set up the same as every other USB device is on cgminer. Tested on both windows and linux (sorry no osx to test). Note the hashrate is once again based on only valid shares so may appear lower than other software using this device. No HW errors are currently counted (though they're most definitely there in abundance due to bitfury design). This is a driver based on all the other ones out there with a completely rewritten model to suit how cgminer drivers work.
  • Hashfast driver fixes (no I still don't have one).
  • Fixed BXF devices slowing down over time.

New in cgminer 3.9.0 (Dec 27, 2013)

  • Driver for drillbit ASICs.
  • Fixes for various KnC hardware errors, with improvements to hashrate. Note this is not a comprehensive fix for the hardware errors specific to rEligius - you will find a substantial drop in hardware errors if you start cgminer with the quiet and text only options (-q -T). An updated binary is here: http://ck.kolivas.org/apps/cgminer/kncminer/
  • Updated bi*fury driver with support for the latest firmware. This includes dynamic clocking based on temperature which tries to maintain a constant temperature set intiially to 82 degrees but adjustable with --bxf-temp-target .
  • Much more API output for bxf devices.
  • Less spewing of errors when bxf devices are removed/die
  • Updates to hashfast driver code
  • Fixes for working with proxies that use small nonce2 sizes