Hey everyone, I've created a Windows GUI for mining Bitcoins using your GPU or CPU.

This is the easiest way to get started mining on Windows. No messing around with the command line is required, and it has several features beyond what command line miners provide. The GUI is free and open source, but if you successfully use this program to generate coins, I would appreciate a donation, no matter how small.

How to Donate:

Please send donations directly to: 1MDDh2h4cAZDafgc94mr9q95dhRYcJbNQo

Most donations I receive are less than 0.1 BTC, so please consider donating even small amounts if this program helped you out.

Features:- Comes already configured for many popular pools. No need to enter in URLs and ports manually unless you want to. Can automatically fall back from a primary pool to a backup pool.

- Real-time statistics on all your running miners in one location. Displays hash rate, total shares accepted/invalid, and total shares in the past hour.

- Automatically start one or more miners on program startup.

- View your account balance with a pool and/or withdraw funds from within the GUI, at participating pools.

- Minimizes to tray. The tray icon can be hovered to show statistics, and miners can be paused from the tray context menu.

Support for this is still early but some people have reported success. To install it on Linux:

- Get the source code from GitHub either using Git or by downloading one of the archived source versions.- Install OpenCL drivers and PyOpenCL. These are the same ones you need to run poclbm so if you search on the forums you can find guides for this.- Install wxPython; your distribution's package manager should have this.- Run guiminer.py to start the miner. This will let you mine using OpenCL/poclbm (the default mode). You'll have to compile the other backends separately if you want to use them.

If you do get it running, send me a message and let me know of your experience. I might make a separate topic about it if people are having trouble.

How to use:

Extract the archive to anywhere (your desktop is fine) and double click the guiminer executable. If you have OpenCL set up correctly this should launch the GUI. If you get an error about OpenCL, you need to install an OpenCL package from your GPU vendor. For AMD/ATI cards you can get OpenCL here.

Once the GUI is running, choose a pool and register if necessary from the pool website, then press "Start mining" to begin. Wait for the coins to come in and don't forget to donate

How to use a backup pool aka fallback support:

Fallback support is in the OpenCL miner only. In the flags, specify the info of the backup pool or pools. For example if I want to fallback to my account on slush's pool, I would write:

Kiv.GPU:mypass@api.bitcoin.cz:8332

If you don't know the host name or port, you can see it in the console tab whenever you run a miner.That's all you need for basic support. You can tweak it with these options:

--failback=N attempt to fail back to the primary pool every n getworks, default 2--tolerance=N use fallback pool only after N consecutive connection errors, default 2

In the future this might be more tightly integrated into the GUI but I don't want to make the GUI too complicated for things that a lot of users don't need.

How to get help:

For technical support please post in this thread rather than sending me a PM; this will get you a reply sooner since other people than me can help you out. More information is better; with only a brief vague report we probably don't know enough to pinpoint your problem. Here's an example of a good report:

"When I try to start mining, I get "Problems communicating with bitcoin RPC" in the status bar and the miner doesn't start. I already checked that my bitcoin.conf contains the correct username and password. I am using:

Q: Help! The program crashed or didn't work!A: If you post a bug report in this thread a variety of helpful people including myself can try to fix your issue. We need to know at least the following: what version of Windows you're using, what graphics card you're using, what version of drivers you're using, what pool you're using if applicable, and a detailed description of what went wrong.

Q: I get an error about "This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem." or an error mentioning "side-by-side". What can I do?A: You may need to install the Microsoft Visual C++ 2008 Redistributable Package. Nearly all Windows computers already have this installed, but a freshly formatted computer might not.

Q: I'm having trouble solo mining using the 0.3.22 Bitcoin client. Why?A: This is a known issue, see this thread for more info. Reverting to 0.3.21 or earlier seems to fix the problem.

Q: How do I know if my graphics card (GPU) supports OpenCL or CUDA?A: Try running GPU Caps Viewer. It will tell you what your GPU supports.

Q: How do I use the Phoenix/phatk miner?A: See this thread for support.

Q: What extra flags do I use?A: If you have a Radeon 5xxx card (for example 5770, 5890), use '-v -w128'. On CPU you don't need any flags. For other cards ask around.

Q: My temperatures are too high, can I throttle the GPU so it runs slower but cooler?A: If you are mining using OpenCL you can use the -s flag a value such as 0.01 in order to force the GPU to sleep for 0.01 seconds in between runs. Increase or decrease this value until you have the desired GPU utilization.

Q: Can I connect to more than one pool with the same GPU? For example have a main pool, and a backup pool in case the main one goes down?A: Yes, you can use the -f flag for this. A value of -f60 or higher in the backup pool's miner will cause it to yield most of the GPU power to miners with a lower f value (default is 30).

Q: Is it normal that GUIMiner uses a lot of CPU when mining on the GPU?A: No, for most people GUIMiner uses less than 1% of CPU. This is a poclbm issue some people are experiencing - see this post for more info.

Q: Do I need the official Bitcoin client to be open while mining?A: Only if you are doing solo mining - in this case you are connecting to the client instead of a pool server.

Q: I installed OpenCL, but my GPU isn't showing up. Only my CPU is shown. What is the problem?A: A couple people experienced this issue and were able to resolve it by installing a different driver version. Another person resolved it on Windows XP by upgrading from Service Pack 2 to Service Pack 3.

Q: How can I delete my miner settings, or edit them manually?A: Miner settings are stored in %APPDATA%\Roaming\poclbm. For example, on Windows 7 this path translates to C:\Users\Kiv\AppData\Roaming\poclbm. The file poclbm.ini inside contains the settings in JSON format. There are also some settings in .ini files inside the miner directory, also in JSON format. No registry keys are used, so removing these .ini files completely erases your settings.

Q: How can I completely uninstall GUIMiner?A: Remove the GUIMiner folder and the miner settings above, and that will completely remove GUIMiner.

Q: I want to see X feature in the miner. How can I have it?A: I'm working on new features but I have a full time job and other things to do too - if you want to encourage me send donations to: 1MDDh2h4cAZDafgc94mr9q95dhRYcJbNQo

Q: What does it mean in the summary panel when the shares say something like 1000 (150) accepted?A: That means 1000 shares total were accepted, including 150 in the last hour.

Changelog:20121203- Update poclbm with bugfix for issue #54

20121118- Update poclbm to latest miner including Stratum support.- Fix rejected/stale counter not incrementing properly.- For solo mining, accept bitcoin-qt.exe or any other *.exe file for client instead of just bitcoin.exe.- For solo mining, add option to set bitcoin data directory, in case it's not in the default location.- Remove Phoenix 1 support since it's no longer maintained.

20120219- Include latest poclbm code with critical bugfix.- Various updates to translations, pools, etc. from various contributors - see GitHub commit list for a complete list. Thanks to all who submitted patches!20110824- Fix accepted shares not being recognized under the newest poclbm version- Fix balance not being recognized for slush's pool20110823- Update poclbm (OpenCL miner) to the latest version. This changes the format of a backup pool. In the "extra flags" you just enter your backup (or backups) like this: Kiv.GPU:mypass@api2.bitcoin.cz:8332- Update Phoenix to the latest version. See their thread for details on changes.- Remove ufasoft miner from the GUIMiner bundle. It's still supported, but you'll have to download it separately. I apologize for the inconvenience to ufasoft miner users, but I decided to do this since only a few percent of users were using ufasoft and due to recurring false positive issues from antivirus programs.- Added "duplicate miner" option when right clicking on a miner tab. This is to make it easier to clone miners to multiple GPUs.- Limited maximum scrollback in the console window to 5000 lines. On machines with low RAM, this will prevent running out of memory after a long period of continuous operation.- Add more pools to the server list, though balance update doesn't work for all of them. I'm looking at ways to handle the large number of pools that are popping up better.- Fix Linux bug where the window could not be restored after minimizing.20110701:- Updated poclbm (OpenCL miner) backend to the latest version which has built-in fallback support and slightly improved performance using a modified phatk kernel. Big thanks to m0mchil and all who submitted code for this. This version should be a few percent faster on most graphics cards.- Update Phoenix backend to version 1.50.- Add many more pools to the server list, including separate servers for BTC Guild.- Default CPU affinity changed to be CPU 0 only instead of all CPUs.- Display of GHash shows more decimal places (requested by hawks5999).- When you save miner settings it remembers the GUI size and position for future runs (requested by goozman96).- Removed weird characters in console log of Phoenix miner.- Error handling: If settings file could not be read, recover gracefully instead of raising a JSON error.- Error handling: If no OpenCL devices exist, recover gracefully instead of raising AssertionError.

20110614:- Slush's pool moved from mining.bitcoin.cz to api.bitcoin.cz. If any miners on slush's pool cannot connect, you should delete and re-create the worker to make sure it's using the new address.- Add CPU affinity support, meaning miners can be assigned to a specific CPU core. Users seeing the 100% CPU usage when mining with OpenCL due to buggy drivers can reduce their CPU usage by allowing the miner to only run on a specific core. - Fix error about missing logo.ico.- New Italian translation, big thanks to MasterHunterHD for contributing this. 20110609:- Fix bug where Deepbit API was disabled.- Update BTC Guild url to contain www.- Added "minimize to tray" option.- Added separate menu options to create different miner types (Phoenix, puddinpop, ufasoft).- Added Donation menu.20110608:- Support Phoenix miner backend and phatk kernel, which is slightly faster than poclbm on some graphics cards. Thanks to all who donated for this. Please bring discussion specific to the Phoenix backend to this thread.- Support ufasoft CPU miner backend. Thanks to thebaba for contributing code for this.- Add Chinese language translation. Thanks to Dean Lee for contributing this.- Add German language translation. Thanks to Liikaa for contributing this.- Add French language translation. Thanks to Cramoisan Florian for contributing this.- Add Hungarian language translation. Thanks to Underyx for contributing this.- Support multiple OpenCL platforms in the device dropdown (previously you had to use the --platform flag).- Deepbit server location updated to pit.deepbit.net.20110521: - Add BTC Guild mining pool to the list of presets. - Add -s flag to poclbm that can reduce temperatures by forcing the GPU to sleep. Use a value such as -s0.01 to sleep for 0.01 seconds between hashes (this would result in about 50% GPU usage, tweak the value to suit). Thanks to llanwj for coding this. - Add Spanish language support. Thanks to BitcoinsWallet for contributing this. - Add checkbox to disable warning about OpenCL not being installed. - Reset count of shares accepted/stale on change of server. - If balance API token is rejected by the server, prompt user to enter a new token. - Fix issue where the About dialog would be cut off. - Console logs now include a timestamp on all messages.20110501: Improved Russian language support. No other code changes.20110428: Added BFI_INT optimization.20110403: Added support for puddinpop miners.

It's running right now. No performance loss, it actually seems to be a bit more stable on my machine in the minute I've been watching it, varying from 16.3-16.7Mhash instead of my normal variance of 16-16.7Mhash. The extra miners part may not be necessary for people who are brand new, but I like the way that it allows you to setup multiple miners within the same window. The devices pull-down menu is wonderful.

I'm also a fan of the accepted/invalid ticker at the bottom. That's a very nice thing to have!

Will update as it goes.

Use my referral codes for Bitcoin faucets and I'll send you 25% of my referral bonus - Win/Win! PM for details on all sites available or use one of the links here.

No, I don't think a change is necessary. I was just thinking outloud. Having/not having tabs won't change the reaction to it, I don't think. If it isn't much work, it might make a cleaner look, but it isn't necessary.

Use my referral codes for Bitcoin faucets and I'll send you 25% of my referral bonus - Win/Win! PM for details on all sites available or use one of the links here.

works great up till now, no GPU performance lost, i like and use it.The cpu option gives me only 50 % of the output from the RPCminer-cpu client, for cpu i keep using RPCMiner. (maybe in update version same or better?)

The CPU mining in poclbm runs the same OpenCL code as runs on the GPU, so it will never be as efficient as something coded specifically for the CPU. But, if there is demand I could make it so that you can pick to use poclbm or RPCminer from within the same GUI. I would want to get permission from puddinpop but there's no reason this can't happen.

works great up till now, no GPU performance lost, i like and use it.The cpu option gives me only 50 % of the output from the RPCminer-cpu client, for cpu i keep using RPCMiner. (maybe in update version better?)

The CPU mining in poclbm runs the same OpenCL code as runs on the GPU, so it will never be as efficient as something coded specifically for the CPU. But, if there is demand I could make it so that you can pick to use poclbm or RPCminer from within the same GUI. I would want to get permission from puddinpop but there's no reason this can't happen.

works great up till now, no GPU performance lost, i like and use it.The cpu option gives me only 50 % of the output from the RPCminer-cpu client, for cpu i keep using RPCMiner. (maybe in update version better?)

I am new to this forum and i didn't know about asking permission, i made the dos-gui/windows for poclbm and rpcminer because i didn't want to type the same commands over and over again, i hope i didn't offend anybody with it.

1) Don't close the app after closing the window, just minimize it. I shut down mining few times by mistake .

1) Remove terminal window, it looks ugly. Tab with activity log should be better. The best way is to use "windows=['guiminer.py']" in setup script and in guiminer.py redirect stdout to any file like object. For example:

You have still two extra files here - CL file and logo. The best way to pack logo into binary is described here. I'm not sure what with CL file, but poclbm it load into string and then compile. So I think the easiest way is to create "BitcoinMiner.py" which contains just one string variable "source" with whole CL code. Then you can import BitcoinMiner in poclbm and instead of loading source from external file, point it to BitcoinMiner.source. By this way, py2exe will compile BitcoinMiner module directly into exe...

Hope this helps a little. I missed GUI support for miners for a long time!

Agreed, terminal window is ugly and I should take it out. I left it for testing in case exceptions were thrown and people could report what happened, but probably it's better anyway to log exceptions to file or a tab. I think maybe py2exe already logs exceptions in some way, so I'll look into that.

2) Make it as single executable file. Extracting zip is annoying and also many people don't have support for 7z.

For the beginning, you may use this setup.py to generate single executable. (This skip generating poclbm, as it is unnecessary; m0mchil already offer executable for command line).

The way I implemented it does require the poclbm.exe - I run it as a subprocess and attach to its standard output. In other words even though both are Python programs, they don't know about each other. This was done since I hope to also support puddinpop or other miners in the future in the same way (run their exe as a subprocess and interpret their output). Also, I didn't want to change too much from original poclbm because if I make too many changes, it becomes harder to pull updates from m0mchil into my fork.

Another idea I had was to separate the GUI out totally - then have a single EXE for the GUI and a separate single EXE for poclbm. Right now the GUI uses PyOpenCL just to check for available devices but in fact this information could be obtained from poclbm (just run it without any flags to see the output) and then the GUI only needs to depend on wx. What do you think?

This was done since I hope to also support puddinpop or other miners in the future in the same way (run their exe as a subprocess and interpret their output).

I think you're complicating your job for no (or very little) gain. Miners basically use the same core; when one of the guy do some improvement, others implement it sooner or later, too . If I will be in your position, I just pick up miner which I prefer and integrate it to GUI as much as possible. Calling binary and parsing output is not so as flexible as it can be.

poclbm core has pretty clean code, I think it is very hackable. You can do, for example, multigpu support by using threading/multiprocessing module and create more instances directly into application. You probably never do ultimate exception handling through calling miner as external process, but catching exceptions directly in code is very easy to do. And again, you can compile whole thing into single executable and make it even more user friendly .

I only have a Cuda/OpenCL capable 9600GT w/1GB vram in an AMD X2 box running Win7. Any extra flags needed? Terminal only shows -server flag as far as I can tell. GPU only crunching 16.4 Mhash/s but that's much better than the CPU's 1460 Khash/s!

Also status area shows "Difficulty 1 hashes:33". Can anyone tell me what this means?

Thanks for any tips and I'm happy to contribute to this project as a hobby for now!

P.S...I also need the developers BitCoin address so I can donate after I purchase or create some BTC. Edit: I found the address under his first post.