milone



Offline



Activity: 434

Merit: 251





CGWatcher & CGRemote







Sr. MemberActivity: 434Merit: 251CGWatcher & CGRemote CGWatcher 1.4.0, a GUI/monitor for CGMiner & BFGMiner to help minimize downtime March 27, 2013, 12:51:37 AM

Last edit: June 30, 2014, 09:00:04 PM by milone Merited by Bitcoinsummoner (1) #1



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.

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













Screenshots of each tab in CGWatcher as of version 1.2.0

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





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.

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.

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.

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.

in the config file grid. (There may be a category heading as well in Category view mode), but you want the that says ' ' in the cell next to it. Click on the word ' ' 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.

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







(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:



http://www.coinmyne.com/cgremote





Latest version: 1.4.0 (Download)



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

http://www.coinmyne.com/cgwatcher





Changelog



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 http://coinwarz.com/v1/api 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 @cgwatcher.com, and you will need to ensure you can access http://minerremote.com 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 1.2.6.1)

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



- 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 1.2.1.0

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 1.2.0.0:

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 http://coinchoose.com (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. June 29, 2014CGWatcher 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.)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).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. 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: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.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.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:- Create a new config file.- Open an existing config file.- Save the current config file.- Close the Config File Editor.- 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.- 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.- 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.- converts the current config file to miner arguments.- opens config file in Notepad. There is also a button next to the config file's Path to open in Notepad.- checks the config file for errors in the settings' formats or values.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, 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.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:New in version 1.4.0New in version 1.3.9New in version 1.3.8New in version 1.3.7 (experimental)New in version 1.3.6New in version 1.3.4sizes larger than 100%. Changes do not persist until feedback is collected.New in version 1.3.3New in version 1.3.2New in version 1.3.1New in version 1.3.0New in version 1.2.9New in version 1.2.8New in version 1.2.7(some of these changes were made in 1.2.6.1)New in version 1.2.6New in version 1.2.5New in version 1.2.4New in version 1.2.3New in version 1.2.2New in version 1.2.1.0New in version 1.2.0.0: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 , a GUI/monitor for CGMiner & BFGMiner: http://www.cgwatcher.com , a remote mining dashboard for all of your miners: http://www.minerremote.com