cgminer for Mac OS X icon

cgminer for Mac OS X

Download pre-compiled and ready-to-run binaries

cgminer is a combined FPGA and ASIC bitcoin miner written in C, cross platform for Windows, Linux, and Mac OS X, with stratum support, remote interface capabilities, support for multiple simultaneous mining devices, and advanced caching and detection algorithms that maximize cryptocoin mining efficiency.

This page hosts unofficial universal binaries for Mac OS X 10.5 through 10.9 (Intel and PPC), which you can use to run cgminer on your Apple Mac. Original documentation and author notes for cgminer are available here. To support further development of cgminer, please consider a bitcoin donation to the primary cgminer developer, Con Kolivas, at 15qSxP1SQcUX3o4nhkfdbgyoWEFMomJ4rZ.

Download full package

Intended for most users

6.9MB zip file

Includes precompiled versions of all the libraries you need to run cgminer, a modified version of cgminer to point to these libraries, and a launcher script.

Download miner only

Intended for advanced users

2.9MB zip file

Includes only cgminer and library binaries, without my custom launcher. Useful if you are building your own GUI, or prefer to work exclusively in Terminal.
If your are having problems with cgminer recognizing your devices, you may have conflicting third-party USB drivers installed on your Mac. See the included README file for details on how to temporarily disable them.
Current release notes
Version 4.3.3 - May 12 2014
  • Fix for a huge long-standing memory leak with the BXF driver which affected bi*fury, hex*fury and OneString miners.
  • Formatting fixes for miner.php
  • Full changelog here.
Asteroid UI
In addition to providing these binaries for the Mac community, I have written a Mac friendly Bitcoin/Litecoin miner called Asteroid. It features an attractive UI, it's extremely simple to use, and it's free! And of course it comes with cgminer built-in.
Version 0.9.7 now out! (Feb 15, 2014)
Previous cgminer for Mac OS X releases
Version 4.3.2 - May 2 2014
  • There's a workaround in this version to minimise the risk of the man-in-the-middle attack of redirecting you to a different pool you don't want to be hashing on. Stratum reconnect will only honour the request if the reconnect is to a server with the same domain name.
  • Fix for some overflow errors on stats with massive hashrates/shares.
  • Fix a major memory leak which mostly affected hashfast users.
  • Fix for a failed connection after a redirection that would then never return.
  • Devices with unique serial numbers of 4 or more characters will now be displayed by their serial number in the status bar.
  • Support for new firmware for OneStringMiners that will identify themselves as OSM devices.
  • Support for OSM debugging and LED modes.
  • A1 driver updates.
Version 4.3.0 - April 23 2014
  • Spondoolies driver. Note this is for dedicated hardware attached to a beaglebone so the code should not be compiled into a generic use-everywhere binary.
  • Add API output for spondoolies driver.
  • Add temperature to spondoolies API output.
  • Update to bi*fury driver (bxf) to support many chips, it will report up to 6 chips as HXF for hex*fury and more than that generically as MXF which currently is how the onestring miners appear until newer firmware comes out uniquely identifying them.
  • Fixed the output for the proper amount of chips in *XF devices.
  • Fix for solo mining to detect when we are mining on an orphan branch and switch to the correct one.
  • Fix for syslog.
  • Fixes for building on windows.
  • Much faster startup for hashfast devices, the more devices the bigger the speedup.
Version 4.2.3 - April 3 2014
  • During network outages the devices hashrate would appear static, this has been fixed.
  • Did a major rewrite of the code that writes and parses the config files. Now if you choose [W]rite from the [ S]ettings menu it should write most of the options you've given on the command line. Some options were never written correctly and many weren't written at all previously.
  • Changed the toggling display to sit on the most important screen and not toggle by default, but it can be re-enabled via the [D]isplay menu.
  • The hashrate line for per-device also includes the Work Utility at the end now instead of the alternate screen to better fit within 80 columns.
  • Added a --widescreen option by request which does not toggle and shows all information. This can be enabled/disabled via the display menu.
  • The --device and --remove-disabled commands have been removed. They are a hangover from the GPU days and choosing devices with this command does not give any meaningfully reliable way of choosing devices.
  • Added checking for any number of chips on bi*fury (BXF) devices and added the extra output in the API for them.
  • Hexfury USB sticks should now be detected and come up as HXF instead of BXF.
  • BXF bits can now be configured on the command line in case people wish to push the maximum for hardware modded devices (normally 54).
  • Solo miners can now add their own signature of up to 32 characters to the coinbase with the --btc-sig option.
  • miner.php updates.
  • Fixed getwork share submission which was broken for the rare pools remaining that still use it.
  • Other low level bugfixes/improvements.
Version 4.2.2 - March 31 2014
  • Fix for memory leaks when mining solo
  • Fix for a rare corruption possibility with solo mining.
  • Support for a whole lot more USB hubs on windows.
  • Added rules for using cointerra on PC in case anyone besides me actually does this.
  • Revamped the hashrate meter to be far more reliable internally.
  • Added rolling hashrates for 1 min, 5 min and 15 mins to the main display and per device to the API as well.
  • Revamped the display since it was getting too wide: It now is back to the narrower size it was a few versions ago and toggles between the different data at regular intervals based on the opt log interval variable. Toggling can be disabled via the Display menu.
  • Added serial number to the unique identifier on-screen when it exists instead of an arbitrary device number. This currently only tags hashfast, cointerra and BF1 devices which have serial numbers.
  • Support reading configuration files with -c command from web URLs.
  • Fixes for building with libcurl disabled.
  • Other minor bugfixes and trivial changes.
Version 4.2.1 - March 26 2014
  • Bitcoind did not like lots of persistent connections at once meaning it would fall over if more than one cgminer instance was trying to mine at the same time from the one bitcoind instance. Cgminer now opens and closes the connection every time it talks to bitcoind allowing any number of cgminer instances to mine solo from the one instance. Confirmed working with 200TH of miners aimed at the one bitcoind...
  • Big endian hosts (like the antminer S1, avalon) did not work with solo mining.
  • Solo mining setups will not mine unless a btc address is specified now, and the address is displayed on startup if it exists.
  • Solo mining disconnections to bitcoind are handled better, not spawning more polling threads every failure.
  • Low level optimisations for solo mining
  • AntminerS1 fixes to decrease CPU usage and actually honour overheat conditions.
  • Network diff when submitting a block is shown correctly on screen when >2billion.
  • Build fixes for avalon2
  • miner.php improvements
Version 4.2.0 - March 26 2014
  • Low overhead ultra-scaleable solo mining to bitcoind
  • Massive improvements to mining efficiency when using pooled GBT mining.
  • Stratum low level bugfixes that may have caused random corruption/crashes.
  • Miner.php updates
  • Drillbit updates
  • Antminer S1 updates
  • Fix for repeatedly trying to reset a usb device when it has failed.
  • Fix for Icarus devices (such as antminer U1 or block erupters) being switched off and not restarting.
  • More accurate hashrates on cointerra devices, with a more reliable bitmap of working cores and now a count
  • Per core cointerra hashrates
  • Fix for memory leak on hashfast devices.
  • Fix for crashes on multiple failed inits on hashfast devices.
  • Show what quadrant of a hashfast core has failed if possible
  • Fix for hashfast API stats output being invalid json
  • Hashfast api stats output names are unique making them more easily parseable
  • Inputting URLs without a prefix (such as http:// or stratum+tcp://) will now assume stratum to speed up initial connections.
  • On linux we no longer use sysv semaphores to prevent multiple instances of cgminer trying to use the same device, meaning you will no longer run out of semaphore resources or have failures to grab devices on restarting.
  • Numerous other low level fixes and improvements.
Version 4.1.0 - March 8 2014
  • Zero stats will now show the correct average hashrate per device.
  • Fixed the high CPU usage which led to eventually slowing down of hashrates over time.
  • Respect the -Q value by slightly changing its meaning to be the highest value it can reach, defaulting to 9999. Regular users need not do anything with this value.
  • Fixed the hex32 api values (currently only hashfast serial number) returning invalid JSON over the API.
  • New driver - BXM for an upcoming two bitfury chip USB stick courtesy of Goodney, along with an overclocking option with --bxm-bits
  • New driver - merged the bitmain S1 driver
  • Try harder to shut cgminer down fully on quit/restart/--shares end.
  • Fix cgminer shutting down and hanging when a grossly invalid stratum message is received.
  • Fix cointerra hashrate display to show a share based hashrate so that the displayed hashrate should match the pool hashrate.
  • Hashfast improvements:
    • Dramatic decrease in CPU usage for all existing firmwares since they don't internally nroll time.
    • Latest version now works with older 0.2 firmwares
    • Only decrease the clockspeed if a device fails in less than an hour at its current clock speed
    • New feature allows per-device settings
  • Other low level bugfixes and improvements and anticipatory changes.
Version 4.0.1 - February 28 2014
  • Fixed cgminer getting stuck at startup when no pool is valid and getting itself into an endless loop
  • Fixed AMUs being detected as failing and resetting them too early
  • Made the check for failing devices proportional to hashrate to not get false positives
  • Queue size is now adjusted up dynamically when it bottoms out regularly which it may on very high hashrates/many devices
  • Fixed ANU and other icarus devices falsely showing higher hashrates by calculating hardware errors - NOTE this means if you were seriously overclocking it before, your hashrate will appear to be lower now, but it was simply reporting wrong before.
  • Changed the priority of various threads to bias towards work generation instead of giving the mining threads priority.
  • Fixed a crash when a device drops out during an attempt to initialise
  • Ava2 voltage detection
  • Show the device number on the left without padding
  • Fixes for devices that ended in OFF state instead of dropping out to allow them to hot plug
  • Hashfast changes
  • Devices that are re-hotplugged are recognised by their name or serial number if possible and appear back as the same device number on screen
  • More information in API stats
  • Updated udev rules file to allow regular users to update firmware
  • Fixes for corrupt message reading and runs of crc errors
  • Ability to disable the core shedding feature in new firmware
  • Numerous low level fixes
Version 4.0.0 - February 20 2014
  • Cointerra driver
  • Bitmine A1 driver [not included in Mac build]
  • Avalon2U driver
  • Wider status window
  • ANU devices aka AntminerU1 usb sticks will now take any arbitrary frequency with --anu-freq and cgminer will try to find the nearest frequency it can set it to, instead of being restricted to 25MHz increments.
  • Hashfast device failures will be detected sooner
  • Hashfast fan speeds by default will go down to 5%
  • The menu now shows hashfast clock speed as detected by the device (which may be different to the requested speed) and fanspeed%
  • Hashfast board temperature is now taken into consideration when looking for the hottest component and displaying temperature and adjusting fanspeed
  • Hashfast clock speeds per die in the API should more accurately represent what speed they really are.
  • Hashfast restarts should be a little more reliable
  • Klondike, avalon, bab, drillbit will display more info on screen
  • Pools that silently drop stratum shares submitted will not induce a memory leak in cgminer
  • If no connection is present at startup, cgminer will be able to connect to a dead pool later when it comes alive
  • ./autogen.sh from git will not error if given no arguments but will instead not try to configure the build
  • A warning will come up if someone selects system libusb, advising against it (given how few versions of libusb actually work well).
  • Fix a couple of potential hangs
  • Temperature for devices that support it will now show up in the api devs command
  • Icarus and bitfury devices that stop producing shares will now be sent a reset after a minute of no activity, and if they do not respond within another minute will be dropped, allowing cgminer to attempt to re-hotplug them. This has been proven effective at bringing back U1 miners that stop hashing.
  • Fix unresponsive bitfury devices from ending up OFF that would not disappear and/or restart
  • Bab driver updates disabling cores that stop working and reduce the cpu usage substantially
  • miner.php updates
  • Allow benchmarking from a --benchfile
  • Other minor bugfixes and trivial cosmetic differences
Version 3.12.3 - February 8 2014
  • Fix for the sitting idle doing nothing bug.
  • Add temperature to API devs call for hash fast devices
Version 3.12.2 - February 7 2014
  • Fix for the sitting idle doing nothing bug.
  • Brought back USB reset attempts on communication errors.
  • Fixed the need for adding icarus-timing when overclocking antminer U1devices.
Version 3.12.1 - February 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:
    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.
Version 3.12.0 - January 30 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.
Version 3.11.0 - January 25 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 --nfu-bits 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.
Version 3.10.0 - January 9 2014
  • Minion driver.
  • 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.
  • Fixed BXF devices slowing down over time.
Version 3.10.0-jj - January 9 2014 - fork of cgminer supporting AntMiner U1 and GPU/scrypt mining
  • This build is from the jimjag cgminer fork and is NOT from the official cgminer developers
  • Adds Antminer U1 support
  • Adds GPU/scrypt support back in
  • Based upon 3.10.0 of cgminer
Version 3.9.0 - December 23 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
Version 3.8.5 - December 9 2013
  • BFL SC devices will now throttle 3 degrees below cutoff (82 degrees) and cut off work at the lower 85 degrees, restarting when they get below 80. If you wish to aim for a higher maximum, use the --temp-cutoff feature (90 was the old maximum). If you set it to zero it will disable this behaviour. (I'm preparing for our summer here Wink)
  • BFL SC devices will be less aggressive with their fan control now, allowing temps to drift up a little more before going to maximum speed.
  • Fixes for builds with --with-system-libusb enabled not working with older libusbs. (Note that using this option is not recommended unless you can't install udev anyway).
  • Fixes for warnings with ./autogen.sh
  • Code cleanups of unused GPU code
  • Cgminer will now try to issue a USB reset on devices that have failed to hopefully get them back up and running again.
  • Dramatically improved communications for USB1.1 devices on hubs that don't have multiple transaction translators or have none (like USB3 hubs). The USB1.1 devices currently affected are Asicminer Block Erupters and Red/Blue fury USB sticks.
  • Fixes for leaving too many open files problem with repeatedly hotplugging devices on low resource systems (eg RPi).
  • Fix a potential API crash.
  • The build will be much quieter around the jansson part now.
  • More hashfast driver additions (no, the real hardware still doesn't exist).
Version 3.8.4 - December 1 2013
  • More fixes to make usb communications more forgiving and robust which may improve reliability and speeds.
  • Timeout overruns won't show unless you have verbose mode on now.
  • Voltage displayed for BFL SC devices is the 2nd voltage which is allegedly more relevant.
  • API stats for BFL SC devices now show a nonce and hardware error count per core.
  • Json API commands should work again.
  • More fixes for upcoming hashfast hardware.
  • Lowmem mode has been extended to use USB sync transfers
  • BXF devices should align better with other devices on the display.
  • Devices will now initialise before trying to connect to pools.
Version 3.8.3 - November 23 2013
  • Average hashrate shown for BF1 and BXF devices will now rise quickly on startup.
  • The bi*fury device in its release form had different firmware from my development one so the driver has been updated to work with it.
  • Fixed the bxf device to align in the display column if temperature went above 100 degrees.
  • Don't keep displaying json auth failed on stratum pools that are misbehaving except at verbose logging level.
  • Very small improvement in hardware error rate on some USB devices due to the way return messages are handled.
  • Fix a memory leak when json is used to communicate with the RPC API
  • Avalon improvements to fix the sudden drops in hashrate (these fixes are all already in the last avalon firmware I uploaded).
  • Unlimited re-hotplugging of devices that have USB failures and turn into zombies but have had their USB reset by the operating system.
Version 3.8.2 - November 16 2013
  • New driver for bi*fury devices. These will come up as BXF devices. Note that if you have one of these, having 2 bitfury chips they generate a LOT of heat and will need active cooling. The first firmware for them does not have a way to stop them mining so they will get dangerously hot if you don't point a fan at them and stopping cgminer won't even cool them down. This should be fixed in their next version.
  • Set priority of various threads high and low for poor performing hardware (e.g. wrt routers) or operating systems (i.e. windows) to try to minimise the influence of system usage in other ways from causing communication problems.
  • Fixed a problem where it was possible for cgminer to hang after getting notification of a new block when mining via getwork.
  • Low level communication fixes within libusb itself to support sending proper zero length packets on windows for more reliable communications (same as the lulz binary), along with automatically clearing pipe errors and not losing buffered data.
  • More low level avalon fixes.
  • Klondike fixes
  • Hashfast fixes
  • BaB fixes
  • Hardware errors on starting BF1 devices are now minimised
  • Fix for mining directly on a GBT port with --fix-protocol
  • --shares is now scaled relative to diff1 shares instead of absolute number
  • Fix for a rare crash on startup
  • Other low level fixes
  • More verbose documentation
Version 3.8.1 - November 10 2013
  • (Unchanged for Mac users since 3.8.0)
  • Remove all GPU code.
  • Driver for Black Arrow Bitfury hardware (for use on RPi)
  • Updates to make USB writes more reliable. Should help more on windows than anywhere else.
  • Slight improvements to the blue and redfury drivers will decrease duplicates at startup, lost work across block changes, and will now show hardware errors - NOTE the hardware errors are not more than before, they simply weren't being reported before.
  • Numerous tweaks to improve Avalon behaviour (possibly still problematic on wrt hardware but works better on PC).
  • Fixes to prevent Avalons from hanging rarely on block change.
  • Low level clean ups, bugfixes and preparation for more driver code.
Version 3.8.0 - November 10 2013
  • Remove all GPU code.
  • Driver for Black Arrow Bitfury hardware (for use on RPi)
  • Updates to make USB writes more reliable. Should help more on windows than anywhere else.
  • Slight improvements to the blue and redfury drivers will decrease duplicates at startup, lost work across block changes, and will now show hardware errors - NOTE the hardware errors are not more than before, they simply weren't being reported before.
  • Numerous tweaks to improve Avalon behaviour (possibly still problematic on wrt hardware but works better on PC).
  • Fixes to prevent Avalons from hanging rarely on block change.
  • Low level clean ups, bugfixes and preparation for more driver code.
Version 3.7.2 - November 6 2013 - last version to support GPU and litecoin/scrypt mining (see also sgminer)
  • Fix for crashes on startup and hotplug.
  • Fix for hangs doing no further work after a block change.
  • Fix yet again scrypt showing a block solve with every highish diff share.
  • Try to find a compromise between the various ends of the windows+AMU timeout issue spectrum.
  • Write errors will cause a device failure, allowing cgminer to attempt to hotplug them again.
  • Icarus based devices will hopefully align on the display with others.
  • Fix for short periods of no/idled work on avalon devices due to async restarts with block changes.
  • Fix for diff shown on big endian machines
  • Fix for building with curses disabled.
  • Other low level clean ups.
Version 3.6.6 - October 28 2013
3.6.6:
  • Fix for avalon type hardware hanging
3.6.5:
  • OpenCL now needs to be explicitly built into binaries with --enable-opencl; it is no longer built in by default (binaries built by me still include it).
  • Updated the build to not install opencl kernels when cgminer is built without opencl.
  • Added an option to build with the system libusb for when it's difficult to get all the dependencies built (like udev on MIPS) by using the --with-system-libusb option. NOTE: It is recommended to not use this option unless you cannot build udev on linux as the included libusb is the most stable version.
  • Updated klondike driver, now built into linux binary.
  • Improvements to support for BitBurner boards.
  • Lots of fixes for failures to shutdown and restart, including knowing about all USB transfers in flight and waiting till they're complete.
  • Updated the read mechanism on slower USB devices: instead of polling regularly, cgminer can now wait the full length of time to get results (which can be as slow as 15 seconds on some icarus devices), but it can cancel these transfers immediately once a block change is detected. The advantage of this is much less wasted CPU time, and much faster response to block change - i.e. lower CPU when there are many devices, and lower rejects. Currently this feature has been added to bitfury sticks and icarus devices. The stabilising of async transfers in cgminer made this change possible.
  • Timer updates on windows now using the native clocks and timers for higher accuracy timing and tighter control.
  • Fixed a minor timer bug.
  • Made one off I/O errors non fatal for devices now, so only if a device has repeated I/O errors will it consider the device dead.
  • Buffering extra bytes message no longer shows up in verbose mode since it's a routine operation now.
  • More information is now shown when a usb error occurs.
  • miner.php updates
  • api updates
  • Lots of low level features added in preparation for newer drivers in development for upcoming hardware.
Version 3.6.4 - October 18 2013
  • Found the source of the memory leak on windows AND the source of the too many files open error on OSX. Both have been rectified, and fully asynchronous transfers are used on all OSes.
  • Fixed numerous causes of problems on shutdown.
  • Fixed some BFLSC parameters not being read properly.
  • Fixed the problem of lost communications and lots of errors on devices on shutdown and possibly unsuccessful shutdown/reset.
  • Fixed a bug where bogus work was being generated at extreme hashrates.
  • Decreased the overhead in generating more work for queued devices (eg BFLSC).
  • Fixes to klondike driver
Version 3.5.1 - October 11 2013
  • Fixed a couple of hangs when shutting down - you will no longer get temps and fanspeeds in the final status line on shutting down, but at least it won't hang.
  • Failed connect to stratum as a message will only show in verbose logging now.
  • Smoother reporting of hashrate on BF1 devices.
  • Fix for the crash when --usb BAS: or similar commands were used when the relevant driver wasn't actually compiled in.
  • Fixes for CMR
  • Slower USB devices that die/are unplugged will now properly zombie.
  • A few more failure checks on starting BF1 devices.
  • Serious USB read or write errors will now be accompanied by a message during regular logging describing the error.
  • USB errors now use the internal libusb explanations.
  • Fixed a bug where some devices would never start hashing if your PC was up for a few days (specifically BF1 devices).
  • If we switch away from a pool in failover mode, we will now only switch back to it if it's up for at least 5 minutes to avoid reconnecting to pools that are only intermittently up - good for DDoS situations which we've seen a lot of lately.
  • Ztex driver and its bistreams have been REMOVED. No one was maintaining the code, it wasn't working, and it was making release archives much larger than necessary.
  • First draft of klondike driver - note binaries do not have this built in since the devices aren't in the wild yet.
  • When devices are unplugged on windows, cgminer will cleanly remove them now instead of getting into an endless loop of failing to talk to them with IO errors.
  • Statistics on locking delays in usb code (this will be deprecated in 3.6 branch due to changes in the locking design).
  • Other internal changes, fixes, low level code for further development.
Version 3.5.0 - October 4 2013
  • Support for mining on BPMC redfury/bluefury bitfury based devices on linux and windows. Like every other USB device on cgminer, they will use the same WinUSB driver and require the same setting up. Binaries have bitfury support compiled in and if you are building binaries for yourself, they need to be enabled with --enable-bitfury.
  • CMR fixes to get it mining half decently again.
  • Code fixes to support current and devices with multiple USB interfaces.
  • Code changes to make it a lot less work to add new drivers.
  • tty devices will be reattached on shutting down cgminer cleanly on linux now.
  • Bugfixes for use of some usb buffers may lead to less corruption/apparent hw errors.
  • Buffering of extra data no longer appears on regular logging, only verbose and above.
  • Fixes for possible extra delays/stale work across longpolls (depended on driver).
  • Fixes for quota usage in --load-balance.
  • A fix for a bug that would randomly show a high best share that never happened.
  • Added ability to compile for stratum mining only, completely removing dependency on libcurl (must be expressly enabled at compile with with --disable-libcurl)
  • Various other compilation warning clean ups and minor bug fixes.
Version 3.4.3 - September 13 2013
  • Build fixes for cgminer releases to build on OSX (building from git still requires massaging).
  • Fix for an extremely rare cause of crashes.
  • Updated the screen to show when there is block change notification with multipool strategies and stratum.
  • Don't show the "waiting for work" message unless it is longer than it takes to switch pools during lag periods.
  • Cope with trailing slashes being used on stratum based URLs.
  • miner.php updates.
  • Native proxy support on stratum for http1.0, http1.1, socks4, socks4a, socks5 and socks5h proxies without using libcurl for maximum stability.
  • A completely rewritten load-balance strategy that now supports per pool quota support. See the updated documentation to see how it works.
Version 3.3.4 - August 14 2013
  • Fixed the breakage when mining on bit minter.
  • Fixed the performance regression on avalons
  • Added extra % counts to devs fields in API
  • This binary only: now using libusb-1.0.2 for better USB compatibility for Macs
Version 3.3.3 - August 12 2013
  • Avoid reproducing work as much as possible when generating work on stratum by storing a midstate of sorts on each stratum notification update.
  • Cache some of the work to decrease work duplication on GBT.
  • Fix a potential bug if a pool uses a nonce2 size bigger than 4 bytes.
  • Fix a (very low) potential data corruption on work generation.
  • Add more useful debugging for when low level crashes in semaphore and mutex operations occur.
  • Fix the intensity vs --scrypt bug introduced in 3.3.2
Version 3.3.2 - August 12 2013
  • There are new sanity checks to prevent too high/low intensities for sha versus scrypt mining.
  • Benchmarking, which didn't work on scrypt, is no longer allowed.
  • New BFLSC command --bflsc-overheat allowing you to specify or disable the throttle temperature.
  • Bitburner (BTB) avalon clone device support
  • BTB voltage can be set
  • Avalon frequency and BTC voltage can now be set via the API.
  • Minor fix which could lead to less duplicate shares on avalons.
  • More usb debugging information
  • Fix a problem where a slow to respond pool would lead to cgminer simply disconnecting, leading to unnecessary disconnects. This has also sped up some communication operations when the other side doesn't respond.
  • Extra BFLSC stats visible via the API.
  • Numerous avalon changes improving dramatically its behaviour (compared to official 3.3.1 release, not the last firmware posted), and supporting new features: --avalon-auto Adjust avalon overclock frequency dynamically for best hashrate --avalon-cutoff <arg> Set avalon overheat cut off temperature (default: 60) --avalon-fan <arg> Set fanspeed percentage for avalon, single value or range (default: 20-100) --avalon-freq <arg> Set frequency range for avalon-auto, single value or range --avalon-options <arg> Set avalon options baud:miners:asic:timeout:freq --avalon-temp <arg> Set avalon target temperature (default: 50)
  • Made the 5 second hashmeter dramatically smoother, being a true exponential decay based on time now.
  • Accepted and Rejected counts on screen now show shares scaled to difficulty, so each 10 diff share for example will increase accepted by 10. This should fix an awful lot of confusion regarding accepted/rejected/hw error ratios.
  • Reclaimed screen real estate by doing away with increasingly irrelevant U: figure since so few people run diff 1 now.
  • Numerous performance and stability fixes under the hood.
  • This binary release only: Fixes support for 10.5 PPC
Version 3.3.1 - June 25 2013
  • Add an avalon-auto option which enables dynamic overclocking based on hardware error rate for maximum effective hashrate.
  • Add an --avalon-cutoff feature which puts the avalon idle should it reach this temperature, defaulting to 60, re-enabling it when it gets to target temperature.
  • Change default avalon target temperature to 50 degrees.
  • usbutils - incorrect test for * in bus:dev
  • Redo +1 fix in bflsc.
If it's a mac-specific problem or an issue with these builds, feel free to contact me directly using the methods below or start a dialog in the forums here. If your comments are regarding cgminer in general, you can contact the developers here.