Bitcoin Forum
April 19, 2018, 04:19:29 PM *
News: Latest stable version of Bitcoin Core: 0.16.0  [Torrent]. (New!)
   Home   Help Search Donate Login Register  
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 »
Author Topic: CGWatcher 1.4.0, the GUI/monitor for CGMiner and BFGMiner to prevent downtime  (Read 179675 times)
Sr. Member
Offline Offline

Activity: 434
Merit: 250

CGWatcher & CGRemote

View Profile WWW
April 23, 2013, 08:36:22 PM

CGWatcher - a GUI/monitor for CGMiner and BFGMiner

Latest version: 1.4.0
Latest version release date: June 29, 2014

New in this version:
  • Improved support for SGMiner 4.2.x.
  • New setting to prevent CGWatcher from modifying config file to enable API in case this causes problems with new miners.
  • SGMiner pool property settings better handled, able to use or not use "pool-" prefix depending on what names are used in the config file. Also a setting has been added to specify whether pool settings should begin with "pool-" by default.
  • "Disable temporary config file creation" setting not being saved correctly fixed.
  • Other minor fixes and improvements.

CGWatcher is a GUI for bitcoin miners CGMiner and BFGMiner. Along with giving a graphical interface to the miner, it has several options to monitor the miner and correct problems when they are detected. It helps to minimize downtime while providing something a little easier to look at.

It works via the miner's API, which was created for this purpose - to allow other software to communicate with the miner. While there are several web applications to allow remote monitoring of these miners, that is not the purpose of CGWatcher. It is designed to run on the same computer as the miner, and will watch for the conditions you set to determine if the miner is working properly. If it is not, CGWatcher takes the appropriate actions to correct the problem (usually restarting the miner.) The idea is to create a program that does the monitoring for you, so you don't have to use those web applications to constantly check on your miners.

CGWatcher is a small and portable .NET application. It will run as a 32-bit application in 32-bit Windows, or a 64-bit application in 64-bit Windows so it can work with 64-bit miners. It can be run inside sandbox environments like Sandboxie if you don't trust it (although settings may not be saved after closing.) Included in the archive is the ReadMe text file, and libraries (links to library information are on the CGWatcher download page.) The program creates its own config file (CGWatcher.exe.ini), log (cgwatcher.log) and a couple data files once started to store profile and config file data. It also creates miner.log that records some mining-specific information like pool changes, hardware errors, GPU or pool status changes, etc. You can start CGWatcher while the miner is running, or use it to launch the miner (preferred).



Screenshots of each tab in CGWatcher as of version 1.2.0

CGWatcher allows you to create mining profiles using different miners, config files, and/or arguments. When you first use it, it will create a default profile and try to locate a miner if one is running or one is located in the same directory or subdirectories of CGWatcher. If it cannot find a miner, you will have to manually specify where it is located and (optionally) a config file and/or arguments you want to use. You can do this by clicking the 'Manage Profiles...' button in the Settings tab. You can create as many profiles as you'd like for the different crypto-currencies you mine. You can also rename the default profile if you'd like, it just names the first one Default because I had to name it something. When you switch to a new profile ("activate" a profile), CGWatcher will use that profile's settings any time it starts or restarts the miner. However, if you switch profiles while a miner is running, you will obviously need to restart the miner in order for the new profile to be used. You can see which profile a currently running miner is using on the Status tab. Ideally it would always be the same as the active profile you've set... but if you changed profiles while mining and chose not to restart the miner when prompted, keep in mind that the miner will still be running on the previous profile until it is restarted (or stopped and started).

The main purpose of CGWatcher is to keep the miner running properly. To do this, the monitor must be enabled (default). You can enable it by checking the first option on the Monitor tab, and set the interval (seconds) for how often it checks the miner's status and refreshes information. Monitor options include:
  • Restart the miner if the total hashrate falls below X <Khs/Mhs/Ghs> for a specified number of seconds.
  • Restart the miner after X hours of continuous mining to cover any problems that other checks may have missed. That ensures that should all other checks fail to detect a temporary problem, at worst the downtime should be limited to the number of hours you set here.
  • Restart the miner if accepted shares or total shares do not increase for X number of minutes.
  • Restarting the miner or computer when a sick or dead GPU is detected since sometimes the miner is unable to restart it itself.
  • Restart the miner if it had full API access but now only has read-only (in the same miner process), as I've learned this usually indicates a problem. It will also restart if it had any API access to the miner process but now it has none.
  • Ensure the miner stays running unless you pause or stop it inside CGWatcher. If this option is enabled and the miner is closed for any reason outside of CGWatcher (including you closing the miner window), it will be restarted.
  • Scheduled mining - Scheduled actions give you complete control over what your miner does and when. Actions include start mining, stop mining, restart mining, restart computer, change intensity, switch profile, etc. Along with creating actions to run at specified times, you can create actions that run at set intervals.
    You can create profiles for each coin you mine, then set CGWatcher to switch to whatever is most profitable at the times or intervals you specify.
    You can also set CGWatcher to increase GPU intensities when the computer is idle or at certain times or intervals, and have it return them to their original values once you start using the computer again. You set the intensity, you set how long the computer must be idle before intensities are changed.

These miners provide a lot of information. CGWatcher attempts to present it in an easier-to-read interface, using tabs to separate information. Ultimately I'd like it to record some data so you can see statistics over a given time period.

You can easily change miner settings while it is running. Change GPU core, memory, voltage, or intensity. Re-prioritize and enable/disable pools. A large Pause/Resume button allows you to easily stop and resume mining (using "exit" command so GPUs and fans are returned to normal values.) Changing miner settings while it is running is temporary, as the changes will be lost when the miner closes. If you want to make the changes permanent, you can change the profile's settings or use the Config File Editor (or Notepad) to edit the profile's config file.

Overheat Protection
CGMiner provides overheat protection for AMD cards. Using the temp-target, temp-overheat, and temp-cutoff settings, it can adjust fan and clock speeds to maintain a target temperature and disable devices that get too hot (if auto-gpu is enabled.) CGWatcher now also provides similar protection for cards not protected by the miner (including Nvidia cards) by adjusting intensity to maintain the target temperature and disabling GPUs that get too hot. It will enable and/or slowly raise intensity back to their original values once temperatures cool down back into the target range. I'm not sure if anyone mines with Intel HD integrated graphics since modern CPUs have better OpenCL support. Currently CGWatcher does not support overheat protection for Intel devices, but I will be doing some tests to see whether the CPU temperatures it is now capable of getting are enough to provide similar support for these devices. You can see if the miner or CGWatcher is providing overheat protection for a GPU in the GPU tab next to the temperature.

For GPUs that miner is providing overheat protection for (AMD), CGWatcher takes a hands-off approach except for when the miner disables them for exceeding temp-cutoff. Although the miner tries to re-enable them once they return to target temperatures, this usually isn't successful so CGWatcher will restart the GPU once it has returned to temp-target temperature.

You can disable CGWatcher's overheat protection in the Monitor tab if you don't want it to perform any of these actions.

Config File Editor
The Config File Editor attempts to make editing your miner's configuration easier. To start, it displays the config file in a grid allowing you to see all available settings and a description of each. Settings that can only be enabled or disabled will have a true or false option. Settings that allow numbers only (not including lists of numbers) will only allow numbers. The 'Validate' button attempts to check your settings for errors that may prevent the miner from starting or working correctly. Some things to know about the Config File Editor:

  • Settings that are set to default values are not written to the config file upon saving. They are also not converted to arguments, because they are set to default values and don't need to be explicitly set.
  • To add, edit, or remove pools, locate Pools in the config file grid. (There may be a Pools category heading as well in Category view mode), but you want the Pools that says '(Collection)' in the cell next to it. Click on the word '(Collection)' and a small [...] button will appear in the cell. Click on this [...] button to open the pool window. If you've ever used a property grid in Microsoft or similar software, you will recognize this type of grid and the accompanying collection editor.
  • When editing pools, you can create names for them as well so they are more easily identifiable when editing them later on. Pool names are saved inside the config file, but will not cause a problem with the miner. To change pool priorities, use the up and down arrows in the pools window to move pools up and down the list. The top of the list is the first priority, the bottom of the list is last priority.
  • 'Name #' textbox - You can name your config files so when you're using them in profiles they will be easier to access. Enter a name for the config file in the Name textbox. Then when managing your profiles, you can select a Named config file from the Config File textbox drop-down instead of needing to browse your computer for it. After clicking out of the Config File textbox, it will be converted to the config file path automatically.
  • 'Validate before saving' : By default, the Config File Editor will check most settings to make sure the values are valid and in the correct format. If you experience problems with validation failing due to your operating system's culture settings and are sure the values are correct, you can un-check this box to bypass validation.
  • 'Ensure API is enabled upon saving' : If enabled, the API access needed by CGWatcher will always be enabled when saving the config file, regardless if these settings were enabled in the grid. It will not affect other groups/IP address in the api-allow setting, it only makes sure api-listen is enabled and that is included in the W: group of api-allow.
  • The Config File Editor Menu
         ■ File -> New - Create a new config file.
          ■ File -> Open - Open an existing config file.
          ■ File -> Save (As) - Save the current config file.
          ■ File -> Close - Close the Config File Editor.
          ■ Tools -> Import Settings -> From Config File... - select an existing config file to import settings from. The current settings will be overwritten, but will not be permanent until you save the config file.
          ■ Tools -> Import Settings -> From Named Config File -> <select> - if you've set names for config files using the Name textbox in Config File Editor, these config files can be loaded quickly by just this name, both in Config File Editor and in the Mining Profiles window. This is the same as the previous menu item, but quicker and easier.
          ■ Tools -> Import Settings -> From Arguments - enter or paste miner arguments to have them converted to a config file. If you have a config file open, you will be asked if you want to overwrite only the settings listed in the arguments, or if you want to create a new config file using only the settings listed in the arguments.
          ■ Tools -> Export Settings -> To Arguments - converts the current config file to miner arguments.
          ■ Tools -> Open this Config File in Notepad - opens config file in Notepad. There is also a button next to the config file's Path to open in Notepad.
          ■ Tools -> Validate this Config File - checks the config file for errors in the settings' formats or values.

Coin Profitability
See what coins are currently most profitable to mine and create scheduled actions to switch to mine those coins at specific times, days, or intervals.

CGWatcher runs on Windows and requires the .NET framework 4.0. You can download the .NET framework using the link on the CGWatcher download page. It should work with the latest versions of CGMiner and BFGMiner, although changes to those miners may require changes to CGWatcher. Testing with most recent versions of both has worked without issue.
In order for CGWatcher to work properly, it needs full access to the miner's API. While you had to do this manually in previous versions, and forward do this automatically. If the correct API settings are not set in the config file or arguments, CGWatcher will still make sure the API is enabled without modifying the profile's arguments or config file. This obviously only applies to miners started from CGWatcher using the Start Mining or Start button. If you start the miner outside of CGWatcher you will need to ensure the API is enabled for CGWatcher to detect and use it.

Remote Monitoring and Control

CGRemote (click image to go to CGRemote page for more information and screenshots)


CGRemote allows you to monitor and control your miners remotely, with or without CGWatcher. This includes miners on the same computer, on the same network, or in different locations over the Internet. All the control of CGWatcher for all of your miners in one program. CGRemote is currently in beta, more information can be found here:

Latest version: 1.4.0 (Download)

More information and download link can be found at the CGWatcher page:


New in version 1.4.0
  • "Do not modify original config file to enable API during miner start" setting will further prevent CGWatcher from modifying config files, but requires the user to ensure the API is properly enabled.
  • SGMiner pool settings now use whatever name was found in config file (with or without pool- prefix). A setting has also been added to indicate the default - whether pool- prefix should be used by default for new settings that did not appear in the config file.
  • Bug causing "Disable temporary config file creationg..." setting to not be saved after CGWatcher restarted has been fixed.

New in version 1.3.9
  • "Disable temporary config file creation during miner start" setting added. If enabled, CGWatcher will not use a temporary config file when launching the miner, meaning it is less likely to have issues with new settings. Disabling the temporary config file may cause problems if sharing config files between miners, as one miner may modify the config file before launch thus affecting another miner using that file at the same time. It also means arguments do not get used over config files if the same setting is set in both, as CGWatcher applies arguments to the temporary config file to ensure arguments get priority.
  • SGMiner pool settings added (e.g. pool-algorithm, pool-nfactor, etc.)

New in version 1.3.8
  • UPnP Port Mapping improved. Adding port map will not remove other port maps. Removing port maps can be done for the current computer or for all computers.
  • Fixed create new profile using CGRemote returning 'missing data' error if using a URL as config file.
  • Fixed (completely re-wrote) increase/decrease text sizes in Settings -> Display
  • Fixed bug causing coin data to not retrieve algorithm correctly when data is from CoinWarz
  • Improved CGWatcher startup entry creation when CGWatcher restarts the computer and startup option is disabled to work on Windows 8/8.1 systems.
  • Improved support with BFGMiner returning 'devs' response without numbering PGA devices.
  • Added new ASIC config settings to Config File Editor, better organized existing settings.
  • Additional ASIC device name support.
  • Other minor fixes and improvements.

New in version 1.3.7 (experimental)
  • Pool Guard feature added to help protect against miner hijacking.

New in version 1.3.6
  • Fix CPU priority settings when using a batch file.
  • Added vertminer to known miner names
  • New 'Startup Batch file' option added for setting CGWatcher to start with Windows. This is recommended for Windows 8/8.1 where the other settings have known issues.
  • Monitor setting to set maximum hashrate threshold
  • New start mining failure option to restart computer if failed starts exceed threshold.
  • Remove scrypt settings when miner is sgminer.
  • Default gpu-thread value of 2 can now be disabled in Settings -> Miner tab.
  • Xintensity,rawintensity, and cl-filename settings support added (no longer under Misc. Options)
  • New troubleshoot mode setting will help start miner in such a way that it is easier to see errors and debug info.
  • Force close other programs on computer restart setting in Settings -> CGWatcher
  • Fixed Windows startup entries not being removed when changed to a different method.
  • Startup entries now given identifiers in filename so in cases of multiple instances, one doesn't overwrite the other.
  • Experimental increase/decrease text size is now a setting in Settings -> Display and persists through restarts.
  • Coin 'never remove' flag and 'adjustment' field can now be imported from CGRemote during coin updates.
  • Additional fields available for edit in Coin Manager.
  • Additional support for VertMiner
  • Email settings tab added, setting for default email address for use in notifications where email is not specified.

New in version 1.3.4
  • Data output option in Settings -> Data tab to output stats to a file at a specified interval for creating reports in other software.
  • api-network config setting changed to boolean data type (had been set as a string data type)
  • Resizable main window and increase/decrease text sizes (drop-down list in Tests tab, considered beta) to accommodate Windows text
sizes larger than 100%. Changes do not persist until feedback is collected.
  • Miner startup threshold (seconds) setting created/added to UI
  • Kill miner process during restart (instead of sending quit command) option added to improve stability
  • Option to always kill miner process instead of quit command for GPUs that bluescreen during miner shutdown (270, 290 series)
  • Coin profitability data improvements to reduce api calls
  • Coin data can now be sent from CGRemote, allowing all miners running CGWatcher to be updated with one API call.
  • GPU-related numeric config settings changed to strings to accommodate variables.
  • Create individual coin profitability adjustments in Coin Manager
  • New (optional) feature to switch profiles without restarting the miner in possible.
  • CGWatcher can show which coin you're mining on some multi-coin pools (additional pools support coming soon - min 5 minute updates)
  • Fixed email not working if active profile did not have a coin assigned to it.
  • Accepted/Rejected/Stale share count last change time reset if pool changes.
  • Fixed api-allow not putting W: in front of localhost IP if it did not have it and other addresses were present.
  • Fixed scheduled action failure threshold not being honored when actions were not successful.
  • Coin symbol max length increased from 3 to 5 to allow new coins using 4-character symbols.
  • Fixed start miner attempts and thresholds not working correctly in some scenarios.
  • Fixed issue with coin profitability data formatting, and added an option to disable formatting in Coin Manager.
  • Other fixes and improvements and stuff I forgot to write down.

New in version 1.3.3
  • CoinWarz added as optional coin data provider (API key required, see for more info)
  • Do not show CGRemote ads if user is using CGRemote.
  • Drop-down list of coins in Coin Manager -> Custom Field -> Test sorted.
  • Coin algorithm added to custom field value expression variables. Returns 1 for sha256, 2 for scrypt.
  • On Status tab, Efficiency replaced with custom stat. You can leave it at Efficiency, select a different statistic, or create your own statistic.
  • Fixed "when highest/lowest custom field value changes" event description not displaying correctly in scheduled actions list.
  • Added "Device elapsed" to GPU and USB devices as added in miner API 1.32.
  • Unrecognized remote commands will be tested by being sent to miner (if running) rather than just reporting that the command is unrecognized. This will allow new miner API commands to be used manually without necessarily requiring a CGWatcher update.
  • Fixed "Manage Pools" button opening temporary config file instead of actual profile config file.
  • Fixed causing "Switch Profile" in CGRemote to not start miner using new profile.
  • Add "log" and "report" commands for CGRemote to get log and report data.
  • Add "New Block average (seconds)" and "Found Block average (seconds)" values for custom profitability formula field and custom value expression.
  • Add "Utility" and "Work Utility" values for custom profitability formula field.
  • Current and average hashrates added to window title bar.
  • Fixed icarus-timing option incorrectly mirroring usb option in Config File Editor.
  • Tests tab reorganized, additional debug reports and utilities moved to drop-down list.
  • 'Clear all Windows autorun entries' in Tests tab (drop-down) will remove all CGWatcher entries from Windows startup as a way to get a clean slate. It also disables the "Run when Windows starts" setting, which can be re-enabled afterward.
  • Chart on Status tab now shows mining devices only, including FPGA/ASIC devices that report temperature.
  • Setting created to ensure CGWatcher & miner are relaunched automatically after CGWatcher-initiated computer restart.
  • "Restart CGWatcher" scheduled action created, which may help in situations where CGWatcher stops responding or crashes after running for X consecutive days on low memory computers. This has only been reported once, and I often check for memory leaks, but this is a simple alternative (temporary) solution.
  • "Restart CGWatcher" command added for CGRemote.
  • Miner auto-launch delay setting added to UI (Monitor -> Other -> Continuous Mining)
  • Displayed hashrate formatting improved for consistency.
  • CGRemote command to have CGWatcher automatically check and update itself added.
  • Other minor fixes and improvements.

New in version 1.3.2
  • Desktop folder added to protected directories list to notify user that CGWatcher, miner, and config files should not be stored there.
  • Advanced Profile options to set CPU affinity and priority for miner process. Additional options to come in future versions.
  • Profile matching relaxed during miner launch to reduce risk of miner being ignored (rare).
  • Fixed ads only reloading after restarting CGWatcher.
  • Button added to Tests tab to list all installed .NET updates for troubleshooting purposes.
  • Option to restart computer if CGWatcher is unable to close or kill miner processes. Although rare, this indicates a more serious problem (Task Manager is also unable to kill the processes) and usually leads to a BSOD (crash). The only way to resolve this is to restart the computer.
  • Pools truncated from miner's API response (~Pool 35+) will get info from config to avoid chinese-looking characters being shown for url/username/password. No stats are available for these pools though because the data is cutoff from the miner's response, which has a fixed maximum length.
  • Fixed pools set in arguments being added twice to temp config file before miner starts.
  • Added scheduled action to send specified API command(s) to miner.
  • Settings tab added to Coin Manager, 'Remove coins no longer on CoinChoose' option moved to Settings tab of Coin Manager.
  • Coin profitability data refresh interval setting now in Settings tab of Coin Manager.
  • Setting created to base coin profitability on bitcoin or litecoin, located in Settings tab of Coin Manager.
  • New coin notification option moved to Settings tab of Coin Manager.
  • Scheduled action frequency added - 'When event occurs...' allowing you to select from a list of events that will trigger the action being run. Events currently consist of miner events, profile events, and coin profitability events. More events will be added in future updates.
  • Create your own profitability formula in a custom coin field that can be used when creating scheduled actions that switch profile based on profitability. Instead of using an existing field (profitability, difficulty, etc) you can create your own mathematical expression using all existing fields and mathematical functions.
  • Fixed CGWatcher not trying to start the miner indefinitely when the 'Keep trying indefinitely' failure option was selected. (It will try up to 2147843647 times.)
  • Miner process not added to checked process list until it has been running for 60+ seconds to prevent incorrectly ignoring it.
  • Added 'Send email' scheduled action. You can specify an email address for each action, the last used will be filled in automatically. Emails are currently limited to 25 per computer per day, but this may increase or decrease over time depending on usage. Counter is reset at midnight EST/EDT (U.S. Eastern). Emails will be coming from, and you will need to ensure you can access for email to work correctly.
  • More scheduled action events will be added, with additional options like 'when hashrate drops below/%', 'when miner restart fails X consecutive times, etc. I figured I'd add them in groups instead of trying to do it all at once.
  • If CGWatcher is set to try starting the miner indefinitely (and it keeps failing), it will wait one second per 10 attempts in between attempts over 10, up to 60 seconds. So after 600 attempts it will wait one minute between each attempt.
  • CGWatcher restarting GPUs that cgminer has disabled due to overheat no longer requires CGWatcher's overheat protection to be enabled. It will do this for all GPUs since the miner usually fails at re-enabling them.
  • Before restarting computer, CGWatcher will temporarily set itself to start with Windows and launch miner at startup if these options are not enabled. It will reset the options back to their original settings the next time CGWatcher is started.
  • Restart computer prompt changed to always use CGWatcher's prompt only, which provides a cancel option, rather than the Windows notification that the computer is restarting. This was already how scheduled computer restarts were handled, but is now done for all computer restarts.
  • Profitability-based scheduled actions (switch profile based on profitability) will update coin data before selecting a profile unless it had been updated within the past minute instead of within the past 5 minutes.
  • Added average time per share to Monitor tab to help in setting appropriate number of minutes without share increase for this monitoring option.
  • Added "% of Avg" to Hashrate Cutoff monitoring option, which will restart the miner if the current hashrate drops below the specified percentage of the current average hashrate. This is in addition to being able to set actual hashrate values.
  • Elapsed mining time added to Stats tab.
  • In Pools tab, pool drop-down will default to current pool and revert to current pool if user has not selected a different pool to view within the last 5 minutes.
  • Added support for pool quota option in CGMiner 3.4.3+
  • Added config file and argument options up through CGMiner 3.5.0 and BFGMiner 3.2.1.
  • Select a different value to display on the Status tab in place of Efficiency, or create your own value using existing values and mathematical functions to create a custom expression.

New in version 1.3.1
  • add bitburner code/name to default mining devices.
  • improved automatic API enabling to fix issues with api-allow option being modified incorrectly and locking out other API monitoring applications.
  • thread sync locking on remote socket collection handling.
  • fix default profiles and variables file paths being saved to CGWatcher.exe.ini which caused profiles and variables to not save correctly if the CGWatcher folder was moved or copied to another location because the paths would still point to the original location. These are now left blank unless you change them manually to non-default paths.
  • CGRemote file explorer commands expanded to allow full directory navigation, file copy, file info, and existing commands improved.
  • CGRemote commands to add, modify, and delete profiles improved.
  • Ads may be displayed occasionally (30 seconds per hour, can be closed by clicking X) on CGWatcher's main window with the exception of donation miners.
  • Update and version data backup sites added to (hopefully) get around the main site being blocked in certain countries.
  • Pool elapsed time now recorded per pool, available in the Pools tab and Report tab. Also includes a percentage to see which pools were used and how much.
  • Remote options window created to provide additional options for CGRemote in the future, and allow for setting a default miner path (which defaults to your most-used miner executable) to use with global profiles.
  • Several other improvements (I lost track at some point).

New in version 1.3.0
  • FIXED: CGWatcher closing unexpectedly without any error messages during hardware refresh. I believe I found the cause, please let me know if I haven't.
  • FIXED: Ignore profile switching if profile being switched to is already active.
  • CHANGED: Max wait time for miner to start doubled (30 seconds for exe, 60 seconds for batch files). This is the maximum wait time for API to initialize. If it initializes sooner or the miner window closes, it stops waiting.
  • ADDED: Coin Manager allows you to add, edit, and remove coins and exchanges.
  • ADDED: Scrollbars to tabs if necessary (if Windows text size is set to > 100%). It will still look ugly, but at least you can get to all controls.
  • ADDED: Notifications when new coins appear on coinchoose, showing name, algorithm, and profitability info. This can be disabled by changing NotifyOnNewCoins=True to NotifyOnNewCoins=False in CGWatcher.exe.ini. (default is enabled).
  • FIXED: Incorrect profile being shown for miner after prompted to create new profile (again).
  • FIXED: Some minor issues fixed that may have caused API access failure in certain (rare) circumstances, particularly when starting CGWatcher while a miner was already running.
  • ADDED: Additional logging when changing intensity on idle so the result is logged regardless of what happens, even if skipped. Remember that the intensity on idle is only changed if the idle intensity is higher than the current intensity, or either of the values are "D".
  • CHANGED: Failed scheduled actions no longer disabled, but marked as Failed when their consecutive failures meet the limit set in Monitor tab. They will not be triggered when Failed=True. Failed flag is reset when the miner is successfully started/restarted or the action is modified or enabled.
  • ADDED: Events created in preparation of creating scheduling options based on miner events.
  • FIXED: pools using -userpass/-O option being applied to config file correctly.

New in version 1.2.9
  • ADDED: settings for customizing how CGWatcher handles miner start failures.
  • ADDED: setting for how many times a scheduled action should be tried if it fails the first time.
  • ADDED: "start miner if not already running" option for certain scheduled actions.
  • FIXED: spaces in config file path bug
  • FIXED: variables not being replaced in arguments in some sitatuions.
  • FIXED: scheduler logic part II. This may require additional work, but it's getting there.
  • ADDED: Prompt for pool if no pool has been specified rather than trying to wait for user to enter in miner prompt.
  • ADDED: coins to profile drop-down list in Settings tab.
  • CHANGED: GPU status getting updated sooner after miner restart to ensure scheduled actions that modify a GPU's settings are not skipped because the GPU is thought to be inactive.
  • ADDED: several more commands added for CGRemote.
  • CHANGED: When data is requested from CGRemote while CGWatcher is in the middle of starting, restarting, or stopping the miner, a busy response is returned until the action is completed to avoid unnecessary messages.
  • FIXED: hashrates showing XXX.9999 or XXX.0001 rounded to nearest whole number. This is caused by using single variables to store hashrates, which promote speed and therefore may slightly lose precision. This still may occur for some numbers, but less often. It is only a visual quirk and does not negatively affect mining.
  • FIXED: Several other improvements or fixes were made that I forgot to write down. There are some new items on the to-do list as well, it's just a matter of getting to them.

New in version 1.2.8
  • FIXED: Scheduler almost completely re-written to ensure new options peacefully coexist with old options.
  • CHANGED: Scheduled actions will not persist through restart if they have a stop time that will occur within before the next estimated monitor check time.
  • CHANGED: Scheduled action notifications are standardized for all options, and now followed by a result notification (green or red depending on success or failure).
  • CHANGED: Scheduled actions set to persist through restarts will still persist if Pause Mining button is clicked by user. Stop button and Restart button cancels persistance.
  • CHANGED: All monitor checks will not be performed during the first 30 seconds of mining or after CGWatcher starting to ensure the miner is able to start properly. Any actions that fall within this time frame will be performed immediately following this grace period.
  • CHANGED: CGremote notifications changed from gray to purple to make more visible.
  • CHANGED: Variables moved from CGWatcher.exe.ini to variables.ini, whose file path can be changed in CGWatcher.exe.ini [Settings] VariablesDataFile=<path>
  • FIXED: Variables not working correctly if you included the surrounding %...% in their names when creating them.
  • FIXED: Bug causing variables not to be applied correctly to web config files.
  • FIXED: Bug causing config file load error if pool names contained brackets.
  • FIXED: Pool passwords not displayed when pool specified in arguments (no config file). This did not affect mining.
  • ADDED: -v <port> command line argument allows setting miner API override port (miner will only use this port). This applies only while CGWatcher is running with this command used at launch or until user saves settings (it is not saved to INI file by using command alone).
  • FIXED: Scheduled actions set to run on specific date not being triggered correctly.
  • FIXED: Scheduled actions set to run on specific date that also have a stop time set are not deleted until after stopped.
  • FIXED: Start mining and restart mining routines re-written to use temporary config files and batch files to ensure originals are not altered in case they are being shared by multiple miners.
  • FIXED: Batch files given twice as long startup time since they can take a little longer to get going depending on other commands.
  • CHANGED: "Restart miner when sick or dead GPUs detected" monitor option will now apply to FPGA and ASIC devices by default. Previously this was disabled by default to get some feedback without causing any problems.
  • FIXED: "Hashrate cutoff" monitor option bugging you if you left the sha256 or scrypt hashrate at zero.
  • ADDED: (Updater v1.2) MD5 Hash Check in Auto-Update utility to ensure auto-update files have not been modified.
  • ADDED: If 2> log argument is found and miner not using batch/command file, a temporary one is created and used to launch the miner to fix .NET's problem with this argument.
  • CHANGED: Minutes of inactivity before computer is considered idle on Schedule tab applies to all settings (included scheduled actions) so changed interface to make this clearer.
  • CHANGED: Scheduled actions "program starts" and "program stops" changed to "program is running" and "program is not running" to make it clearer that these may be applied as long as the specified program is running/not running if action is set to persist through restarts.
  • CHANGED: Scheduled action frequencies "is idle" and "is not idle" wording changed to better indicate these actions will be applied any time these conditions are true.
  • FIXED: Scheduled actions resorted after each check in which actions are triggered to ensure they are always performed in chronological order.
  • ADDED: Scheduled action "run program" that will launch a specified program (with optional specified arguments). This action can have a stop time, and like other actions can be triggered when a program stops running. (e.g. "run TeamViewer" when "TeamViewer" stops running). If a stop time is set, it will only close the instance it created and no other instances.
  • CHANGED: Scheduled actions that are set to run when the computer is idle, not idle or when a program is running or not running are no longer persistable through restarts. These actions are applied any time the condition is true, including after restarts.
  • FIXED: Notification that GPU was restarted after being disabled from overheat when it had actually been re-enabled by scheduler.
  • CHANGED: Restart miner/computer when sick or dead GPU is detected now also includes FPGA and ASIC devices by default. Previously this had to be enabled manually in the ini file.

New in version 1.2.7
(some of these changes were made in
  • FIXED: When prompted to create new profile if miner found not matching one, new profile created successfully but miner assigned to wrong profile.
  • TEST: Added ability to restart miner if sick or dead FPGA or ASIC is detected. Not sure if these devices are reported as sick or dead and if so, if restarting the miner is the best option (compared to restarting device). Can be enabled by changing [Monitor] RestartOnSickDeadUSBDevice=False to True.
  • TEST: For 40+ devices, check that no devices have been truncated from devs command resulting in them not being reported. For these devices a separate command is sent to get data for each device. Some data is still unavailable for these last devices, specifically data that is truncated in the stats command.
  • FIXED: thread-concurrency in arguments not being applied correctly to config file if it was a comma-separated list of values.
  • ADDED: recent additions to config related to ASIC and FPGA devices now available in Config File Editor.
  • ADDED: Certain scheduled actions can have stop times.
  • FIXED: Scheduled action logs reporting actions were persisted through a restart when they weren't.
  • FIXED: Notification showing miner command failed even when it succeeded.
  • FIXED: Scheduled Action form showing wrong profile when editing scheduled action that switches to a specific profile (not profitability-related)
  • ADDED: CGRemote capabilities extended to include modifying schedule and settings.
  • ADDED: Option to set stop time for applicable scheduled actions. At stop time the action will restore item to its previous state.
  • TEST: a bug was reported that when a scheduled action to stop mining occurred and the 'Ensure miner stays running' option is enabled, the miner would be restarted. I didn't find anything obvious that would cause this but rewrote some of the code involved, blew in it, and hit it a few times like an old Nintendo cartridge. In subsequent tests the issue seemed to be resolved.
  • FIXED: Other minor bug fixes and improvements.

New in version 1.2.6
  • Significant improvements when communicating with CGRemote.
  • CGWatcher considers stop mining request from CGRemote as user initiated so if the "Ensure miner is running" option is enabled, it will not restart the miner.
  • CGWatcher considers stop mining scheduled actions as user initiated so if the "Ensure miner is running" option is enabled, it will not restart the miner.
  • Note added to acknowledge local IP address may be incorrect if more than one network adapter is present. I did change the method for getting the local IP to hopefully work better.
  • Convert decimal place to period any time a decimal value is sent to CGRemote (not often as most data comes this way right from the miner and is passed on to CGRemote)
  • Change Intensity When Idle option fixed so that if the miner is restarted while the computer is still idle (via CGRemote), the intensities will be changed again after the miner has been running for at least 30 seconds.
  • New "Persist through miner restart" option available for certain scheduled actions like changing intensity or enabling/disabling a device and certain frequencies like on idle/off idle so if, for example, you create a scheduled action to raise intensity when the computer becomes idle, this intensity will be carried over if the miner is restarted by the Monitor, Scheduler, or CGRemote. This does not apply to user-initiated restarts like a user clicking the restart button.
  • Miner can now be controlled using the following key combinations (to hopefully make it easier to stop the miner if intensity is set too high and mouse won't move):
            - Shift+M  start the miner
            - Shift+T  stop the miner
            - Shift+R  restart the miner (no confirmation prompt)
            - Shift+P  pause/resume miner
  • For 'Change Intensities on Idle' option and 'Change Intensity/ies' scheduled actions, you can now specify two values separated by a backslash for SHA256/Scrypt. CGWatcher will use the value for the current algorithm.
  • 'Restart miner if hashrate falls below' monitor option now has values for SHA256 and Scrypt, so the option doesn't have to be changed when switching algorithms.
  • Fixed GPU reported as inactive if disabled by the miner for overheating and then the miner was restarted.
  • Reduced need for modifying config files before miner start when using batch files to only when necessary to enable API or change api-port.
  • Fixed autorun when Windows starts not being saved if auto-start miner was disabled.
  • Preset and custom variables can be used inside batch/command files, arguments, and config files. (e.g. %USER% replaced with username)
  • Increased potential value for difficulty since alt-coins may produce bizarre values
  • Added new block and found block minute averages on Status tab
  • Option to hide FPGA and ASIC devices if being reported incorrectly by the miner after device is unplugged and plugged back in. Open the device detail, click Hide in bottom left corner.
  • Improved support for batch and command files, including additional time when waiting for start. Improved parsing also.
  • Other improvements and fixes. Does anyone read these things? At a certain point I stopped writing down changes.

New in version 1.2.5
  • Auto-update utility fixed
  • Fixed Profile Manager open web config file/URL in Notepad 'file not found' error
  • Minor fixes related to CGRemote

New in version 1.2.4
  • Minor fixes related to CGRemote

New in version 1.2.3
  • Fixed enable/disable GPU that may have changed incorrect GPU in certain cases.
  • Fixed difficulty overflows caused by ridiculous amount of decimal places in difficulty values.
  • Added {highest reward}, {lowest difficulty}, {lowest network hashrate}, and {lowest network hashrate (average)} to scheduled action profile options.
  • When creating scheduled actions that switch to conditional profiles (e.g. most profitable), you can now select 1st, 2nd, 3rd, etc. to switch to 1st most profitable, 2nd most profitable, etc.
  • Added edit device option to correct devices being reported incorrectly by miner (e.g. ASIC reported as FPGA). Click Edit this Device link in bottom left corner of device detail to edit the device's properties.
  • Added average temperature to GPU data textbox in GPU tab. Currently this is a test for accuracy and will later be used to diagnose GPU issues where temperature drops suddenly because of problems with the miner.
  • Changed cgwatcher to force close programs on restart (after giving 30-second countdown with cancel button).
  • Improved program initialization speed (starts quicker).
  • Improved performance of interface updates when the miner's status has changed.
  • Coins no longer listed on coinchoose are now deleted *IF* they are not assigned to a profile in order to keep the coin list relatively clean as altcoins come and go.
  • Scheduled action last run times are saved so if CGWatcher is closed and re-opened, they will not be reset and will attempt to run N hours after the last run time. If last run time + N hours is in the past, time will be added in increments of N hours until the next run time is in the future (or now).
  • GPUs, FPGAs, and ASICs not enabled with status of ALIVE now have current hashrate set to 0 to give an accurate hashrate, even though a number may still be reported by the miner. Please let me know if this has unintended consequences.
  • Scheduled actions are not performed during a miner restart. If a restart is taking place at the time a scheduled action is triggered, it will be performed after the restart is completed.
  • Option to restart computer if accepted or total share counts do not change for N minutes added.
  • Allow for URLs when setting profile config files. More information in Profiles section above.
  • Rearranged schedule options to allow for more options and also create room for future options.

New in version 1.2.2
  • Fixed bug preventing profiles from saving correctly that I introduced in changes to 1.2.1

New in version
  • Profiles can now be sorted by the user or sorted automatically (alphabetically)
  • Fixed 'Start with Windows' issue where autorun entry was duplicated in certain cases causing two instances to start with Windows. The first time you run version 1.2.1 (as well as future versions) the issue will be fixed automatically.
  • Coins you mine are now bolded in black text to distinguish them from coins you don't mine in Coin Profitability window. You can also filter coins to just show the coins you mine (coins you have assigned to profiles).
  • Miner detection relaxed to allow for Windows 8 permission issues causing Access Denied errors when CGWatcher attempts to get a process's filename. The best solution for this is to run CGWatcher as Administrator if you experience these problems. I will continue to look for a better solution once I get a Windows 8 miner setup.
  • CGRemote improvements, including removal of 'coming soon' message and enable CGRemote option in preparation for upcoming closed beta. This version and future versions will be compatible with CGRemote, though future versions may have additional features.
  • Misc. improvements and additional debugging info added for new features to help with any future troubleshooting.

New in version
  • Created Scheduled Actions option to replace and improve upon existing scheduling option.
  • Improved socket code in preparation for CGRemote beta.
  • Added Schedule and CGRemote notification types (blue and gray respectively).
  • Added coin option to profiles, allowing user to assign to profiles which coin they are mining to allow for determining profitability.
  • Added coin profitability window showing data from (see above).
  • Fixed overheat protection only re-enabling or raising intensity on overheated GPU when its temp returns to under temp-target. Now this occurs once temp is under temp-overheat.
  • Fixed issue with overheat protection not properly raising intensity in certain cases.
  • GPUs disabled by overheat (by CGWatcher or the miner) will now show OVERHEAT (disabled) as a status. Clicking Enable button in GPU tab will restart the GPU to re-enable it (although if the temp is still above temp-cutoff, it will be disabled again if overheat protection is enabled.
  • Overheat protection info has been made clearer in the GPU tab.
  • Added support for new ASIC API options in cgminer 3.3.1 (API 1.26), and asc|N option in ASIC device test to improve future support.
  • Added debug logging to help resolve permission issues with Windows 8 related to accessing process info.
  • Notification added on startup if you are running CGWatcher from within Program Files, Program Files (x86), ProgramData, or Windows folder without running as Administrator as this could cause permission issues when writing to files.
  • Removed prompt on Stop button unless without full API access.
  • Command arguments (-m start minimized, -s start miner on launch, -p NAME activate profile on launch). If profile NAME has spaces in it, surround the name with quotation marks.
  • Fixed auto-start with Windows issue that may have prevented successful creation of HKCU startup entry if HKLM entry failed due to invalid permissions.
  • Disabling auto-start will check both HKCU and HKLM and remove from both if necessary to ensure it is not ran at startup.
  • Additional information regarding new features added to the Report tab.

Pre-1.2.0 changelog removed to stay within forum post character limit. This information is still available in the readme.

CGWatcher, a GUI/monitor for CGMiner & BFGMiner:
CGRemote, a remote mining dashboard for all of your miners:
BTC: 12TAYjmSrdDHLNpmix2MG6y3R868SMM7Fx    LTC: LM6Un6hZvPzLBggJWiAVG6E6w2GfaHukXY
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
Offline Offline

Activity: 1134
Merit: 1000

View Profile
April 25, 2013, 05:02:55 AM

I am getting errors
[4/24/2013 11:58:40 PM]   Begin Process--------------------------------------------------------
[4/24/2013 11:58:41 PM]   CGMiner instance found.
[4/24/2013 11:58:41 PM]   Exception occurred during Refresh: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

Trading MtGox USD for Dwolla/ACH deposit/Chase cash deposit
Buy/Sell Call/Put Bitcoin options
Sr. Member
Offline Offline

Activity: 434
Merit: 250

CGWatcher & CGRemote

View Profile WWW
April 25, 2013, 07:59:36 AM

You'd have to be running CGMiner with no pools or with no GPUs to get this error. Up until now I assumed at least one of each for anyone who used the program. It does not yet support FPGA or ASIC. I have fixed this error so it will at least expect you don't have any GPU or pool, although you may not see hashrates or other data. You can download the update using the same download link, I did not change version numbers.

The update also includes GPU temps on the Status tab and displays them in the same graph as the hashrate, since that is something I had already added. Anyone who wants this feature now can re-download using the same link as well.

CGWatcher, a GUI/monitor for CGMiner & BFGMiner:
CGRemote, a remote mining dashboard for all of your miners:
BTC: 12TAYjmSrdDHLNpmix2MG6y3R868SMM7Fx    LTC: LM6Un6hZvPzLBggJWiAVG6E6w2GfaHukXY
Offline Offline

Activity: 13
Merit: 0

View Profile
April 26, 2013, 01:59:07 PM

I just downloaded this and its really sharp.  I've been looking for something like this.  I'm currently using Anubis but it can be kind of clunky for changing settings for the miner.  Good work.

Jr. Member
Offline Offline

Activity: 31
Merit: 0

Hardware Developer

View Profile
April 29, 2013, 03:18:46 PM

First of all thanks a lot for creating this tool. Especially for LTC mining, where I get a lot of times sick/dead GPUs, this might turn out handy Smiley If I end up using this tool productively, for sure some donation will come your way...

■ Restart the miner if shares (accepted, rejected, discarded, and stale) do not increase for X number of minutes.

Maybe a newbie question, but what do those "discarded" shares that are also shown on the status page refer to?

I was not aware that CGMINER shows any discarded shares. Except for the ill-named "SS" of course, which according to the documentation refers to "stale shares detected and discarded before submitting". But in my case the "SS" value in CGMINER shows 0, while the discarded value in CGWatcher shows something like 15-25%... o it can't be the same I guess.

Any hint how this value relates to the info available in the CGMINER text interface?

Sr. Member
Offline Offline

Activity: 434
Merit: 250

CGWatcher & CGRemote

View Profile WWW
April 29, 2013, 07:00:31 PM

Yes, discarded and stale are two different things.

From the CGMiner 2.9 ReadMe...

SS is stale shares discarded (detected and not submitted so don't count as rejects)

DW is discarded work items (work from block no longer valid to work on)

DW is no longer displayed in newer versions of CGMiner and therefore is not mentioned in the latest ReadMe.

I've seen an increased discarded rate on my miners and believe it is either a result of using the stratum protocol or using a pool that does merged mining. I haven't been able to find much information on it, but I want to say that I read somewhere stratum may result in more discarded work but reduces rejected or stale shares so ultimately it is better. Hopefully someone more knowledgeable can correct me if I'm wrong or provide more information. My discarded rate is usually around 20% with BitMinter, but rejected and stale are always 0 or at worst < 1%.

I will put the codes used in CGMiner into the info boxes (tooltips) that appear when you put your mouse over a value in CGWatcher, though as I mentioned some may no longer be displayed in new versions of CGMiner.

Admittedly I have quite a bit to learn about how mining software works so there may be a better monitoring option than checking to see if accepted, rejected, stale, or discarded don't increase over x minutes (all four have to not increase to trigger the restart.) My thinking was a problem with the pool would cause these numbers to not change, and I've remoted into my own miners and have seen them stuck because the pool went down/had issues and CGMiner did not switch to the backup pool correctly. So as I find problems with my own miners, I try to add options to catch them. As I learn of better ways to check for problems, these options may change in future versions.

CGWatcher, a GUI/monitor for CGMiner & BFGMiner:
CGRemote, a remote mining dashboard for all of your miners:
BTC: 12TAYjmSrdDHLNpmix2MG6y3R868SMM7Fx    LTC: LM6Un6hZvPzLBggJWiAVG6E6w2GfaHukXY
Full Member
Offline Offline

Activity: 133
Merit: 100

View Profile
April 29, 2013, 10:55:20 PM

I would just like to say thank you, and well done on a well designed piece of software.

I was initially looking for a way to reboot a SICK card and stumbled across this and It has that and all the functionality I could ever want.
I am really looking forward to the remote app, as I just have all my rigs open in different teamviewer sessions on my main PC.


Jr. Member
Offline Offline

Activity: 31
Merit: 0

Hardware Developer

View Profile
April 30, 2013, 12:16:15 PM

Yes, discarded and stale are two different things.

From the CGMiner 2.9 ReadMe...

SS is stale shares discarded (detected and not submitted so don't count as rejects)

DW is discarded work items (work from block no longer valid to work on)

[...] stratum may result in more discarded work but reduces rejected or stale shares so ultimately it is better.

Aaaah, thanks a lot! So my assumption would be that "discarded work items" have not actually been worked on, so they are nothing to worry about much - it's not lost computing time.

I hope someone can chime in and confirm whether or not that is correct.

Jr. Member
Offline Offline

Activity: 31
Merit: 0

Hardware Developer

View Profile
May 01, 2013, 06:36:58 PM

May I suggest including all your donation addresses also here in your signature, not only on the website?

BTC: 19msnBddmcaHnbTTQgFgzPDuy6PqfBgFJh
NMC: NJjD4rP5xy2mgSK8gXXsZwFkdknbvtvy3q

Anyway, sent you BTC0.1 for this great tool. Thanks a lot, this is indeed helping a lot to earn more money by mining and spending less time worrying - increasing quality of life  Grin

And it will become even more awesome once the remote part is done. Fortunately donating with BTC is so easy. I hope many people honor your great work, for which probably many people would charge.

PS: one very minor issue I found is that when using 6 GPUs not all temperatures are shown. Sometimes the first 5 are shown, with "..." below them, sometimes only the "...". Just for info, not bothering me at all Smiley

Offline Offline

Activity: 1316
Merit: 1004

View Profile
May 01, 2013, 08:20:19 PM

Been there, done that.

My watchdog monitors ADL, GPU/FPGA rates, slowdowns, pool performance, crashes in AMD drivers, handles WER errors, sends email notifications, has HTTP interface to control the miner and OS, smart metering etc.
No limit on number of devices, written in C, blah, blah...

I like your logo though.
Sr. Member
Offline Offline

Activity: 434
Merit: 250

CGWatcher & CGRemote

View Profile WWW
May 01, 2013, 09:44:41 PM

grottenolm: Thanks, it is greatly appreciated. Even small donations can provide a boost to motivation. This is my first experience with writing free software - and soon to be my first open-source project - and the number of requests vs. donations can be discouraging. My goal wasn't to make money from it, but it is impossible to keep it a priority and add the features that everyone is asking for when I still have to take projects to make a living. This experience has definitely caused me to give even more to developers of free software I use.

The information on the Status tab is what I check most often, particularly hashrate, temperatures, and accepted/rejected/etc. share totals. I want to display that info as least intrusively as possible so may end up creating a small window or overlay you can switch to that sits in the corner or stays on top of other windows. I'll also work on increasing the chart height in the Status tab to display more GPU temps without making the text too small.

I'm making good progress on CGRemote, and it will allow remote monitoring of miners with or without CGWatcher. Having CGWatcher on the mining computer is preferable and will still focus on keeping the miner working properly, but won't be necessary. If the mining computer doesn't have CGWatcher running, CGRemote will communicate with the miner directly. However, in these cases if CGRemote loses API access or unexpectedly closes after you send it a restart command, you would have to relaunch the miner yourself because CGWatcher won't be there to do it.

af_newbie: I'd say congrats to you, but your comment seems to already do that. I hadn't heard of it. If I had, I may not have went through the trouble of creating one. The now ~100 downloads/day I am getting indicates that at least a small group of miners haven't heard of it either, or that there is enough room for both. I don't think the fact that you created something similar means it should be the only one, and with over a year of development (vs. a month for me) I'm sure it does things mine doesn't - including some things on my to-do list. I'm in the process of open-sourcing as well so others can contribute or customize it to their needs. When I no longer mine or have users, then I'll stop development.  

As to "been there, done that", I never claimed I had invented the wheel or created something never done before. It was something I wrote for myself and decided to share with others.

CGWatcher, a GUI/monitor for CGMiner & BFGMiner:
CGRemote, a remote mining dashboard for all of your miners:
BTC: 12TAYjmSrdDHLNpmix2MG6y3R868SMM7Fx    LTC: LM6Un6hZvPzLBggJWiAVG6E6w2GfaHukXY
Offline Offline

Activity: 1316
Merit: 1004

View Profile
May 02, 2013, 05:14:16 AM

af_newbie: I'd say congrats to you, but your comment seems to already do that. I hadn't heard of it. If I had, I may not have went through the trouble of creating one. The now ~100 downloads/day I am getting indicates that at least a small group of miners haven't heard of it either, or that there is enough room for both. I don't think the fact that you created something similar means it should be the only one, and with over a year of development (vs. a month for me) I'm sure it does things mine doesn't - including some things on my to-do list. I'm in the process of open-sourcing as well so others can contribute or customize it to their needs. When I no longer mine or have users, then I'll stop development.  

As to "been there, done that", I never claimed I had invented the wheel or created something never done before. It was something I wrote for myself and decided to share with others.

Sorry, I did not want to discourage you from writing your own thing.  Just review the features of akbash.  You'll find that some hung scenarios CANNOT be detected by just looking at cgminer process or its APIs.  You have to poke the cards directly through ADL, look at the pools, network card, memory, handles among other things to determine whether to restart the process or reboot the machine.  Be careful though, too many false positives and you'll be restarting miner process where you shouldn't be.  When you get WER popups, you have to dig down and find the process IDs that belong to cgminer process that just died and close them all.

cgminer APIs are all good when everything is running smoothly, but when things go haywire they cannot be trusted.

Sometimes, you'll find that cgminer APIs will be reporting everything is fine, but some GPUs will be unresponsive or APIs will not be responding but cgminer will be mining ok.  Make sure you cover those cases.  Otherwise, your watchdog will be just displaying API stats and checking the miner status. There are better apps for that: ANUBIS is a good example.  No need to re-invent the wheel.

If you want a real watchdog, at least implement the features I put into akbash.
Jr. Member
Offline Offline

Activity: 31
Merit: 0

Hardware Developer

View Profile
May 02, 2013, 06:14:11 AM

af_newbie, thanks a lot for pointing out the other tools. I would have been surprised if anything like this hasn't been tried a few times before. Knowing other tools seems good both for reference as well as people looking for other functions/priorities. Both tools you mentioned look very useful, and Anubis even seems open source by virtue of being a PHP script (unless it's obfuscated or something like that, didn't check yet).

I guess CGWatcher still would have its place in this world, though, even if it was 100% redundant in functionality to those two tools: With a GUI (no frightening  Grin console app) and no messing too much with config files, PHP etc., it seems especially Windows newbie friendly. Which is not to say that to many, including me, a non-GUI tool is absolutely fine, if not preferable.

Thanks also for pointing out some of the general but very critical issues you encountered while writing your tool. Since milone admitted being very new to this topic, hints like that might save him lots of grey hair hehe. At least it's good to know about possible limitations and previously found issues as well as potential work ahead... in case milone wants to go the whole nine yards.

Offline Offline

Activity: 13
Merit: 0

View Profile
May 06, 2013, 02:10:16 AM

Been there, done that.

My watchdog monitors ADL, GPU/FPGA rates, slowdowns, pool performance, crashes in AMD drivers, handles WER errors, sends email notifications, has HTTP interface to control the miner and OS, smart metering etc.
No limit on number of devices, written in C, blah, blah...

I like your logo though.

I've looked at Akbash and it looks like an in depth application that provides a lot of functionality.  It sounds like you've put a lot of technical work into insuring miners are only restarted when absolutely unnecessary.  I'm not above editing a config file or working in command line but there is a lot to be said for a nice GUI and an app that just works.  I dropped CGWatcher in with my cgminer folder, it found my cgminer config file and and just worked.  Its been reliable, restarted my GPU and cgminer when needed and has worked really well with a nice informative interface that makes editing miner settings a snap.  It also starts cgminer hidden and minimizes to the tray which keeps it out of the way and is helpful in keeping anyone from accidentally shutting down the miner.  Just my two bitcents on why I prefer CGWatcher over Akbash. 


Jr. Member
Offline Offline

Activity: 51
Merit: 0

View Profile
May 08, 2013, 12:36:12 AM

Just send you 0,2 btc for:
"- CGRemote (in development)..." Smiley
Jr. Member
Offline Offline

Activity: 31
Merit: 0

Hardware Developer

View Profile
May 08, 2013, 04:27:49 PM

Quick feedback after a few days testing on Win7 64bit:

Works great Smiley

Small issues:

- When restarting the system, the message "do you really want to close CGwatcher..." prevents successful restart. You have to click it away, else it won't restart.

- Once a miner was out of action for a few hours. I have to look at the logs to see what exactly happened, but basically CGWatcher was trying to restart CGMIner again and again because the total shares didn't increase. But it kept restarting, and the restarted CGMiner would just hand. Reason was that in the background a CGMiner window was still open, but stuck/hung.

- HW errors seemingly were not reported in CGWatcher, even CGMiner showed a lot (I can try to duplicate this if it helps)

And one idea:

- restart card and/or cgminer if temperature suddenly drop significantly. I am not sure if this is maybe already covered by the "total shares not increasing", but I had a situation right now where everything looked fine, just the temperatures n all cards in a miner rig dropped - as if the cards suddenly were not really working much any more.

Sr. Member
Offline Offline

Activity: 434
Merit: 250

CGWatcher & CGRemote

View Profile WWW
May 08, 2013, 07:07:22 PM

Thanks for the feedback. A few things that have been changed in 1.1.4 that are related to each of your issues:

- Instead of watching for total share counts to stop increasing, it now only watches accepted share counts. Those are the only shares that matter so if those stop increasing, a restart is probably a good idea. Users will need to modify this setting as necessary (increase the number of minutes), because accepted share counts may not increase as often as all share counts combined were increasing. The Utility value on the Status tab (as well as the Report tab) shows accepted shares/min so this should help you determine a good estimate for how often accepted share count increases.

- Someone else has reported that the miner sometimes fails to close completely, or hangs. I had never seen this but am learning more about the quirks of the miners every day. I've corrected this to watch the miner after sending the quit command, and if necessary killing the process. When killing the process, it will attempt to kill it every second for up to 10 seconds before giving up. Hopefully this is enough to remedy this situation.

- If you can provide more information on the HW errors, I will see if there is anything I can do to fix this. Right now there is not much to reporting this, it is a number that comes straight from the miner and is shown in CGWatcher without modification.

The idea you mentioned would definitely indicate a problem, but I believe when temperatures drop suddenly and significantly, the miner will soon report the GPUs as sick or dead. This usually takes 5 - 10 seconds or so. If you see this happen and the GPUs do not become sick or dead (causing a restart by CGWatcher), please let me know. Also, the accepted share count not increasing check should catch this as well, as this number should stop increasing if the miner is not working correctly.

I've re-written most of the monitoring code and have made a lot of improvements and fixes, with a lot of testing. 1.1.4 will also introduce profiles and some other new features. It has a new option to ensure the miner stays running, meaning if CGWatcher is open with this turned on... it will start the miner if it is not running. I had to make this an option because it is impossible to determine if the miner was closed outside of CGWatcher by the user, or if the miner closed because of a problem. If the user happened to close the miner by clicking the X for example, I didn't want CGWatcher immediately re-launching it when the user didn't want it to. Trying to anticipate what the user is going to do and why is the challenging part of this project, because there is a very wide range of experience levels and I think that software should adapt to the how the user works instead of the user adapting to how the software works... as much as possible anyway.

I am hoping to have 1.1.4 ready by this weekend.

CGWatcher, a GUI/monitor for CGMiner & BFGMiner:
CGRemote, a remote mining dashboard for all of your miners:
BTC: 12TAYjmSrdDHLNpmix2MG6y3R868SMM7Fx    LTC: LM6Un6hZvPzLBggJWiAVG6E6w2GfaHukXY
Full Member
Offline Offline

Activity: 162
Merit: 100

View Profile
May 09, 2013, 07:55:45 AM

Hi milone,

Thanks for this software! I love it.

I like a lot the new features, and want to see the CGRemote running!

Thanks for put your time on this project!
Offline Offline

Activity: 19
Merit: 0

View Profile
May 11, 2013, 04:11:59 AM

OMFG!! Such a nice newbie friendly app!! PLEASE make a iOs and Android app as well! Can not wait for the updates!

BTC: 1J9DPa7B8cugu6vL6MVE3FuPaiKJcdsQVo
LTC: LcYVYc6U3B12Gsfiq6Rcjk4ecS52cQH3Ge
Offline Offline

Activity: 115
Merit: 10

View Profile
May 11, 2013, 06:34:07 AM

Hi, looks cool, any chance of an ETA on the ASIC support?

We have come to be one of the worst ruled, one of the most completely controlled and dominated, governments in the civilized world—no longer a government by free opinion, no longer a government by conviction and the vote of the majority, but a government by the opinion and the duress of small groups of dominant men.
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 »
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!