CGWatcher v1.5.0: Mining GUI Monitor for CGMiner/BFGMiner/SGMiner/GMiner.

cgwatch

CGWatcher – a GUI/monitor for CGMiner/BFGMiner/SGMiner/GMiner 

New in this version 1.5.0:

  • Improved support for SGMiner v4.11.1.
  • Improved support for GMiner v2.47.
  • Improved support for BGMiner 5.5.0.
  • Improved support for CGMiner 4.11.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.

Description

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).

Profiles

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).

Features

  • Monitor mining – Set an interval (in seconds) for checking mining status. This is how often CGWatcher will update mining data. This must be enabled to use the checking features, including:

    ■ Restarting the miner or computer when a sick or dead GPU/FPGA/ASIC is detected.
    ■ Restart the miner if the total hashrate falls below a specified number or percentage of average hashrate for a specified number of seconds. You can specify hashrates for sha256 and scrypt separately.
    ■ Restart the miner if CGWatcher had full API access but now only has read-only (in the same miner process), or if the API access was enabled but was lost completely.
    ■ Restart the miner or computer if accepted or total shares do not increase for X number of minutes.
    ■ Restart the miner after X hours of continuous mining to cover any problems that other checks may have missed. That ensures that if a problem arises, at worst the downtime will be limited to the number of hours you set here.
    ■ Ensure miner stays running option makes sure that mining never stops unless you stop it using CGWatcher (by clicking the Pause Mining or Stop buttons.)
    ■ Restart the miner if a minimum number of devices are not properly mining.
  • Statistics – These miners provide a lot of information. CGWatcher attempts to present it in an easier-to-read interface, using tabs to separate information. Basic mining stats can be found on the Status tab. Device-specific stats can be found on the Devices tab, and pool-specific on the Pools tab. More detailed information on the miner and CGWatcher can be found in the Report tab.
  • Control – 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/Start Mining button allows you to easily stop and resume mining. Another button opens the miner’s configuration file in the Config File Editor. I’ve tried to add buttons to open files or directories wherever you may want to so you can do it all from inside the program.
  • 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-fan and auto-gpu are enabled.) CGWatcher now also provides similar protection for 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 is supposed to re-enable them once they return to target temperatures, this does not seem to happen so CGWatcher will restart the GPU once it has returned to temp-target temperature.
  • Scheduling – 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, and it will 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.

Monitor

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.

Statistics

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.

Control

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 127.0.0.1 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.

Requirements

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, 1.1.5.0 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:

Requirements

CGWatcher runs on Windows and requires the .NET framework 4.0. It should work with the latest versions of CGMiner and BFGMiner, although changes to those miners may require changes to CGWatcher.

In order for CGWatcher to work correctly, it needs full access to the miner’s API. While previous versions required that you ensure this is enabled manually, version 1.1.5.0 now does this automatically when the miner is started using CGWatcher. Regardless of whether the api-listen and api-allow options are set correctly, CGWatcher will make sure they are enabled before starting the miner without altering your config file or arguments.

While you no longer need to manually ensure these options are set, the following is how you would set these options via arguments or a config file:

Command-line arguments:

    --api-listen --api-allow W:127.0.0.1 

Configuration file entries (separate entries with commas):

    "api-listen" : true 
    "api-allow" : "W:127.0.0.1"

To-Do List

– Originally created to use with CGMiner, testing with BFGMiner is not as thorough.

CGRemote

I am working on a program called CGRemote which will create a dashboard to monitor and control your miners remotely. It will communicate with CGWatcher or the miner directly (for non- Windows miners). This program is currently in beta and updates and information can be found here: http://www.minerremote.com

Support

You can send bugs or feature requests to the email address in the ReadMe or post in a comment here. You can check #cgwatcher on Freenode for live support. Donations are greatly appreciated as they motivate me and allow me to spend more time on this project. After all, the program’s goal is to help you make more money. Feature requests from those who donate get priority.

This post is also available in: Русский

Leave a Reply

Your email address will not be published. Required fields are marked *