Pages:
Author

Topic: Modular Python Bitcoin Miner - Official Thread - page 11. (Read 74189 times)

hero member
Activity: 784
Merit: 500
Quote

Programming one device:
java -cp ZtexBTCMiner-120208.jar BTCMiner -m p -f ztex_ufm1_15d2.ihx -s 01-02-01

Reprogramming that specific device:
java -cp ZtexBTCMiner-120208.jar BTCMiner -m p -ps 01-02-01 -f ztex_ufm1_15d2.ihx

Reprogramming all devices that had been programmed with the firmware .....:
java -cp ZtexBTCMiner-120208.jar BTCMiner -m p -pt ztex_ufm1_15d2 -f ztex_ufm1_15d2.ihx


Somewhere between these steps it must have happened...... -s is the serial number of a device (it could be anything even a name) I took one of the boards serial numbers when I tried to run this for the first time:) <--- had no clue what I was doing then.....

When I run BTCminer with the option -I i get this printout:


See .... Every board uses the same Serial number ..... I might ask Ztex how to change that.
hero member
Activity: 489
Merit: 500
Immersionist
It's finally running but I'm having difficulties running more than one board. My FPGA Miner VM goes right into Bluescreen Of  Death when more than one board is connected while starting mpbm.


Could this be because all the boards use the same serial number? (While flashing them with BTCMiner for cluster mode all the boards get the same number assigned to them. Not shure how to change that back?)

I leave the donations on while I'm testing this miner btw. Smiley

What is the exact command you use the program them for cluster mode? (and you only need to do it once in their lifetime if I am not wrong)

hero member
Activity: 504
Merit: 500
FPGA Mining LLC
urgh... ztex, WHAT THE HELL!? what's the point of a serial number!?

MPBM won't like that at all. As far as I can tell the hotplug worker will ignore all but one which have the same serial. Instantiating multiple of them manually will make all hell break loose, effectively ending up in that bluescreen (by triggering a windows or libusb bug apparently).

You'll probably have to assign them different serial numbers again. Ask ztex for instructions, I have no clue.
hero member
Activity: 784
Merit: 500
It's finally running but I'm having difficulties running more than one board. My FPGA Miner VM goes right into Bluescreen Of  Death when more than one board is connected while starting mpbm.


Could this be because all the boards use the same serial number? (While flashing them with BTCMiner for cluster mode all the boards get the same number assigned to them. Not shure how to change that back?)

I leave the donations on while I'm testing this miner btw. Smiley
hero member
Activity: 504
Merit: 500
FPGA Mining LLC
I upgraded from 0.0.4 by doing a git pull.  I have the D2XX driver installed (older version as recommended, though I did try a later one to rule that out) and had configured PyUSB in the past based on the guide on fpgamining.com.  When creating the workers in the new version, it automatically saves them using PyUSB even if I try to specify D2XX on the worker config.  I assume I have some configuration issue

I went back to 0.0.4 and it loads with no problems and the boards function as expected.

BTW this is running on Mint 11 (ubuntu)

OK, I'll fix that. However it looks like this is purely a display issue, the workers should actually accept that setting, just show the wrong one when reading it back. This means that it should actually mine correctly... does it?

BTW I'd strongly recommend switching to PyUSB.
donator
Activity: 362
Merit: 250
Just upgraded the instance I was using for my X6500s.  I added the workers and pool to my config but I'm getting the following error for each board:

Code:
2012-03-25 23:28:17.791608 [100]: X6500 worker 4: Proxy: Exception caught: Traceback (most recent call last):
  File "/home/user/Modular-Python-Bitcoin-Miner2/modules/fpgamining/x6500/boardproxy.py", line 77, in run
    else: self.device = FT232R(FT232R_PyUSB(self.serial, self.takeover))
  File "/home/user/Modular-Python-Bitcoin-Miner2/modules/fpgamining/x6500/util/ft232r.py", line 309, in __init__
    import usb
ImportError: No module named usb
2012-03-25 23:28:17.792289 [100]: X6500 worker 4: Traceback (most recent call last):
  File "/home/user/Modular-Python-Bitcoin-Miner2/modules/fpgamining/x6500/x6500worker.py", line 211, in main
    elif data[0] == "dying": raise Exception("Proxy died!")
Exception: Proxy died!

Also I am unable to kill the process with ctrl-c, it just keeps getting jobs.

Did you upgrade from v0.0.4 to v0.1.0beta, or just from v0.1.0alpha (testing branch) to v0.1.0 beta?
Did you previously use the D2XX driver or PyUSB?
Have you installed PyUSB correctly for the Python version you're running MPBM on?

I upgraded from 0.0.4 by doing a git pull.  I have the D2XX driver installed (older version as recommended, though I did try a later one to rule that out) and had configured PyUSB in the past based on the guide on fpgamining.com.  When creating the workers in the new version, it automatically saves them using PyUSB even if I try to specify D2XX on the worker config.  I assume I have some configuration issue

I went back to 0.0.4 and it loads with no problems and the boards function as expected.

BTW this is running on Mint 11 (ubuntu)
hero member
Activity: 489
Merit: 500
Immersionist
I have these longpoll errors frequently with ABCPool, so unless they are having issues at this moment I suspect there is something wrong. I didn't see it happen with the alpha version, but I don't have a log file to check.

I don't have any other miner working in the background. I just power cycled my ztex boards and reprogrammed them, still the same.

It only happens in the beginning a couple of times, but strangely not for all the boards. I just restarted MPBM and it happened 4 times in total, 3 time with with my board *C7 and only 1 time with my board *22. Not at all with my 3rd board *E9.

Edit: the ABCPool longpoll error also happens on the alpha version.


 
hero member
Activity: 504
Merit: 500
FPGA Mining LLC
hero member
Activity: 504
Merit: 500
FPGA Mining LLC
Hi, tried to use the windows-runtime-v0.1.0beta on my windows 7 x86 FPGA Miner.  I'm unable to run the mpbm.exe on my computer.

Displaying that error message (it's German):


It says that the Version of this Program is not compatible with my Windows System (Windows 7 x86 w. latest Drivers and System updates) and that i should look if my computer is x86 or x64.

(That could all be part of the "MAC OSX Lion + Parallels + VM" Problem so it is not important that this works Smiley)

I just realized that I actually compiled this for 64bit. I'll release a 32bit runtime package later today. Runtime package has been fixed.

On my experimental GPU Miner (Windows 7 x64) the program seems to be ok but I'm also unable to start it. When i try to start the mpbm.exe (via cmd) it displays an error:




Are there any basic instructions how to run that program?

You need to merge the contents of those two zip files, not put them in separate folders. Then it'll magically work, and you can access it at http://localhost:8832 (user: admin, password: mpbm)
hero member
Activity: 784
Merit: 500
Hi, tried to use the windows-runtime-v0.1.0beta on my windows 7 x86 FPGA Miner.  I'm unable to run the mpbm.exe on my computer.

Displaying that error message (it's German):


It says that the Version of this Program is not compatible with my Windows System (Windows 7 x86 w. latest Drivers and System updates) and that i should look if my computer is x86 or x64.

(That could all be part of the "MAC OSX Lion + Parallels + VM" Problem so it is not important that this works Smiley)

On my experimental GPU Miner (Windows 7 x64) the program seems to be ok but I'm also unable to start it. When i try to start the mpbm.exe (via cmd) it displays an error:




Are there any basic instructions how to run that program?

hero member
Activity: 489
Merit: 500
Immersionist
Pulled the latest version and works without problems. Logging to the log file now also works. I can stop the miner with Ctrl-C.

Here are a couple of errors I am getting, but everything seems to work fine though.

Code:
2012-03-26 18:45:18.245000 [100]: Ztex board 04A3469722: Proxy: Exception caught: Traceback (most recent call last):
2012-03-26 18:45:18.245000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\modules\theseven\ztex\boardproxy.py", line 75, in run
2012-03-26 18:45:18.245000 [100]:     self.device = ZtexDevice(self, self.serial, self.takeover, self.firmware)
2012-03-26 18:45:18.245000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\modules\theseven\ztex\driver.py", line 73, in __init__
2012-03-26 18:45:18.245000 [100]:     raise Exception("Can not open the specified device, possibly because it is already in use")
2012-03-26 18:45:18.245000 [100]: Exception: Can not open the specified device, possibly because it is already in use
2012-03-26 18:45:18.245000 [100]: Ztex board 04A3469722: Traceback (most recent call last):
2012-03-26 18:45:18.245000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\modules\theseven\ztex\ztexworker.py", line 170, in main
2012-03-26 18:45:18.245000 [100]:     elif data[0] == "dying": raise Exception("Proxy died!")
2012-03-26 18:45:18.245000 [100]: Exception: Proxy died!
2012-03-26 18:45:18.245000 [100]:
2012-03-26 18:45:18.261000 [100]: Ztex board 04A32E00E9: Proxy: Exception caught: Traceback (most recent call last):
2012-03-26 18:45:18.261000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\modules\theseven\ztex\boardproxy.py", line 75, in run
2012-03-26 18:45:18.261000 [100]:     self.device = ZtexDevice(self, self.serial, self.takeover, self.firmware)
2012-03-26 18:45:18.261000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\modules\theseven\ztex\driver.py", line 73, in __init__
2012-03-26 18:45:18.261000 [100]:     raise Exception("Can not open the specified device, possibly because it is already in use")
2012-03-26 18:45:18.261000 [100]: Exception: Can not open the specified device, possibly because it is already in use
2012-03-26 18:45:18.261000 [100]: Ztex board 04A32E00E9: Traceback (most recent call last):
2012-03-26 18:45:18.261000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\modules\theseven\ztex\ztexworker.py", line 170, in main
2012-03-26 18:45:18.261000 [100]:     elif data[0] == "dying": raise Exception("Proxy died!")
2012-03-26 18:45:18.261000 [100]: Exception: Proxy died!
2012-03-26 18:45:18.261000 [100]:
2012-03-26 18:45:18.276000 [100]: Ztex board 04A346CEC7: Proxy: Exception caught: Traceback (most recent call last):
2012-03-26 18:45:18.276000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\modules\theseven\ztex\boardproxy.py", line 75, in run
2012-03-26 18:45:18.276000 [100]:     self.device = ZtexDevice(self, self.serial, self.takeover, self.firmware)
2012-03-26 18:45:18.276000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\modules\theseven\ztex\driver.py", line 73, in __init__
2012-03-26 18:45:18.276000 [100]:     raise Exception("Can not open the specified device, possibly because it is already in use")
2012-03-26 18:45:18.276000 [100]: Exception: Can not open the specified device, possibly because it is already in use
2012-03-26 18:45:18.276000 [100]: Ztex board 04A346CEC7: Traceback (most recent call last):
2012-03-26 18:45:18.276000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\modules\theseven\ztex\ztexworker.py", line 170, in main
2012-03-26 18:45:18.276000 [100]:     elif data[0] == "dying": raise Exception("Proxy died!")
2012-03-26 18:45:18.276000 [100]: Exception: Proxy died!

Code:
2012-03-26 18:48:46.573000 [200]: ABCPool long poll failed: Traceback (most recent call last):
2012-03-26 18:48:46.573000 [200]:   File "C:\Modular-Python-Bitcoin-Miner\modules\theseven\bcjsonrpc\bcjsonrpcworksource.py", line 181, in _longpollingworker
2012-03-26 18:48:46.573000 [200]:     response = conn.getresponse()
2012-03-26 18:48:46.573000 [200]:   File "C:\python32\lib\http\client.py", line 1046, in getresponse
2012-03-26 18:48:46.573000 [200]:     response.begin()
2012-03-26 18:48:46.573000 [200]:   File "C:\python32\lib\http\client.py", line 346, in begin
2012-03-26 18:48:46.573000 [200]:     version, status, reason = self._read_status()
2012-03-26 18:48:46.573000 [200]:   File "C:\python32\lib\http\client.py", line 316, in _read_status
2012-03-26 18:48:46.573000 [200]:     raise BadStatusLine(line)
2012-03-26 18:48:46.573000 [200]: http.client.BadStatusLine: ''
hero member
Activity: 504
Merit: 500
FPGA Mining LLC
hero member
Activity: 504
Merit: 500
FPGA Mining LLC
Just upgraded the instance I was using for my X6500s.  I added the workers and pool to my config but I'm getting the following error for each board:

Code:
2012-03-25 23:28:17.791608 [100]: X6500 worker 4: Proxy: Exception caught: Traceback (most recent call last):
  File "/home/user/Modular-Python-Bitcoin-Miner2/modules/fpgamining/x6500/boardproxy.py", line 77, in run
    else: self.device = FT232R(FT232R_PyUSB(self.serial, self.takeover))
  File "/home/user/Modular-Python-Bitcoin-Miner2/modules/fpgamining/x6500/util/ft232r.py", line 309, in __init__
    import usb
ImportError: No module named usb
2012-03-25 23:28:17.792289 [100]: X6500 worker 4: Traceback (most recent call last):
  File "/home/user/Modular-Python-Bitcoin-Miner2/modules/fpgamining/x6500/x6500worker.py", line 211, in main
    elif data[0] == "dying": raise Exception("Proxy died!")
Exception: Proxy died!

Also I am unable to kill the process with ctrl-c, it just keeps getting jobs.

Did you upgrade from v0.0.4 to v0.1.0beta, or just from v0.1.0alpha (testing branch) to v0.1.0 beta?
Did you previously use the D2XX driver or PyUSB?
Have you installed PyUSB correctly for the Python version you're running MPBM on?
newbie
Activity: 48
Merit: 0
same for me, a whole heap of "Proxy died!".

I dont get the "no module named usb" error (i have pyusb-1.0.0_alpha1 installed with my distro's package management)

running using:
Code:
python run-mpbm.py --detect-workers --detect-frontends

last few lines of output (theres pages...):
Code:
2012-03-26 13:26:06.749902 [500]: X6500 board AH00WOWJ: Proxy: FPGA 1: Spartan 6 LX150 - Firmware: rev 0, build 0
2012-03-26 13:26:06.749902 [500]: X6500 board AH00WOWJ: Proxy: FPGA 1: Spartan 6 LX150 - Firmware: rev 0, build 0
2012-03-26 13:26:06.750040 [200]: X6500 board AH00WOWJ: Proxy: Programming FPGAs...
2012-03-26 13:26:06.750040 [200]: X6500 board AH00WOWJ: Proxy: Programming FPGAs...
2012-03-26 13:26:06.750903 [100]: X6500 board AH00WOWJ: Proxy: Exception caught: Traceback (most recent call last):
  File "/home/fpgamining/x6500/mpbm-v0.1.0beta/modules/fpgamining/x6500/boardproxy.py", line 92, in run
    bitfile = BitFile.read(self.firmware)
  File "/home/fpgamining/x6500/mpbm-v0.1.0beta/modules/fpgamining/x6500/util/BitstreamReader.py", line 75, in read
    with open(name, 'rb') as f:
IOError: [Errno 2] No such file or directory: 'modules/fpgamining/x6500/firmware/x6500.bit'
2012-03-26 13:26:06.750903 [100]: X6500 board AH00WOWJ: Proxy: Exception caught: Traceback (most recent call last):
  File "/home/fpgamining/x6500/mpbm-v0.1.0beta/modules/fpgamining/x6500/boardproxy.py", line 92, in run
    bitfile = BitFile.read(self.firmware)
  File "/home/fpgamining/x6500/mpbm-v0.1.0beta/modules/fpgamining/x6500/util/BitstreamReader.py", line 75, in read
    with open(name, 'rb') as f:
IOError: [Errno 2] No such file or directory: 'modules/fpgamining/x6500/firmware/x6500.bit'
2012-03-26 13:26:06.751589 [100]: X6500 board AH00WOWJ: Traceback (most recent call last):
  File "/home/fpgamining/x6500/mpbm-v0.1.0beta/modules/fpgamining/x6500/x6500worker.py", line 211, in main
    elif data[0] == "dying": raise Exception("Proxy died!")
Exception: Proxy died!

2012-03-26 13:26:06.751589 [100]: X6500 board AH00WOWJ: Traceback (most recent call last):
  File "/home/fpgamining/x6500/mpbm-v0.1.0beta/modules/fpgamining/x6500/x6500worker.py", line 211, in main
    elif data[0] == "dying": raise Exception("Proxy died!")
Exception: Proxy died!


I'm assuming a bitstream file is missing. (which is correct, i'm managing bitstreams myself)
donator
Activity: 362
Merit: 250
Just upgraded the instance I was using for my X6500s.  I added the workers and pool to my config but I'm getting the following error for each board:

Code:
2012-03-25 23:28:17.791608 [100]: X6500 worker 4: Proxy: Exception caught: Traceback (most recent call last):
  File "/home/user/Modular-Python-Bitcoin-Miner2/modules/fpgamining/x6500/boardproxy.py", line 77, in run
    else: self.device = FT232R(FT232R_PyUSB(self.serial, self.takeover))
  File "/home/user/Modular-Python-Bitcoin-Miner2/modules/fpgamining/x6500/util/ft232r.py", line 309, in __init__
    import usb
ImportError: No module named usb
2012-03-25 23:28:17.792289 [100]: X6500 worker 4: Traceback (most recent call last):
  File "/home/user/Modular-Python-Bitcoin-Miner2/modules/fpgamining/x6500/x6500worker.py", line 211, in main
    elif data[0] == "dying": raise Exception("Proxy died!")
Exception: Proxy died!

Also I am unable to kill the process with ctrl-c, it just keeps getting jobs.
hero member
Activity: 504
Merit: 500
FPGA Mining LLC
I've just released MPBM v0.1.0beta

Please test it, and report any issues that you encounter, so that I can take care of them.

We should probably have some place for howtos, especially explaining how to install required drivers on windows.
In order to run MPBM on ztex/x6500 boards, you'll need a libusb driver, which I haven't packaged yet.

I've made some packages for windows users who haven't got Python installed, see the first post.
Can somebody who doesn't have the neccessary stuff installed on his system yet please try these out?

If I test them locally, I never know if they're really self-contained or if something just picked up a library that was present on my system anyway.
Just extract both zip files to the same directory and run mpbm.exe.
hero member
Activity: 504
Merit: 500
FPGA Mining LLC
How do I get the fixed code without overwriting my config or other files?

git clone git://github.com/TheSeven/Modular-Python-Bitcoin-Miner.git -b testing

Or something else?

git pull

By the way, the ZTEX hotplug manager points to the X6500 firmware file.
modules/fpgamining/x6500/firmware/x6500.bit

The file doesn't actually exist if I am not wrong and I assume I am currently mining with the bit stream that was already programmed into my ztex boards before.

I just fixed the default value for that. That setting should point to the directory where the bit files are, which are needed to boot the FPGA if it was power cycled. As long as it's running those files won't be touched. Also, no MCU firmware will ever be programmed to the board, just an FPGA bitstream (that matches the currently installed MCU firmware) if neccessary.
hero member
Activity: 489
Merit: 500
Immersionist
How do I get the fixed code without overwriting my config or other files?

git clone git://github.com/TheSeven/Modular-Python-Bitcoin-Miner.git -b testing

Or something else?

By the way, the ZTEX hotplug manager points to the X6500 firmware file.
modules/fpgamining/x6500/firmware/x6500.bit

The file doesn't actually exist if I am not wrong and I assume I am currently mining with the bit stream that was already programmed into my ztex boards before.

hero member
Activity: 504
Merit: 500
FPGA Mining LLC
Still no log. I also tried python run-mpbm.py > my.log, but this also results in a 0 kb file. That's very strange. Since it was git which created my directories, I copied the whole MPBM folder to another location and replaced all permissions with my own 'Full' permissions, this didn't make a difference. I am really puzzled, but I guess it's not really a bug in your code if piping the command doesn't work either.

What worked, in the same command prompt (run as Administrator) is "dir > my.log" or creating a new file with "edit my.log" and writing something to it. Maybe it's python which doesn't have permission somehow?

It logs to stderr, not stdout, which explains why piping it that way doesn't work.

Anyway, this is VERY low priority but I just thought I'd report back.

Now I just found this:

Code:
2012-03-25 10:35:10.694000 [100]: Core: Could not start frontend Untitled log file logger: Traceback (most recent call last):
2012-03-25 10:35:10.694000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\core\core.py", line 197, in _start
2012-03-25 10:35:10.694000 [100]:     frontend.start()
2012-03-25 10:35:10.694000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\core\startable.py", line 64, in start
2012-03-25 10:35:10.694000 [100]:     self._start()
2012-03-25 10:35:10.694000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\modules\theseven\basicloggers\logfilelogger.py", line 64, in _start
2012-03-25 10:35:10.694000 [100]:     self.handle.write("\n" + "=" * 200 + "\n\n")
2012-03-25 10:35:10.694000 [100]: TypeError: 'str' does not support the buffer interface
2012-03-25 10:35:10.694000 [100]:


I think you just caught it! Need to fix that. This would explain why it only works on Python 2.x, which I'm currently running on. Fix will be pushed in a minute.
hero member
Activity: 489
Merit: 500
Immersionist
Still no log. I also tried python run-mpbm.py > my.log, but this also results in a 0 kb file. That's very strange. Since it was git which created my directories, I copied the whole MPBM folder to another location and replaced all permissions with my own 'Full' permissions, this didn't make a difference. I am really puzzled, but I guess it's not really a bug in your code if piping the command doesn't work either.

What worked, in the same command prompt (run as Administrator) is "dir > my.log" or creating a new file with "edit my.log" and writing something to it. Maybe it's python which doesn't have permission somehow?

Anyway, this is VERY low priority but I just thought I'd report back.

Now I just found this:

Code:
2012-03-25 10:35:10.694000 [100]: Core: Could not start frontend Untitled log file logger: Traceback (most recent call last):
2012-03-25 10:35:10.694000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\core\core.py", line 197, in _start
2012-03-25 10:35:10.694000 [100]:     frontend.start()
2012-03-25 10:35:10.694000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\core\startable.py", line 64, in start
2012-03-25 10:35:10.694000 [100]:     self._start()
2012-03-25 10:35:10.694000 [100]:   File "C:\Modular-Python-Bitcoin-Miner\modules\theseven\basicloggers\logfilelogger.py", line 64, in _start
2012-03-25 10:35:10.694000 [100]:     self.handle.write("\n" + "=" * 200 + "\n\n")
2012-03-25 10:35:10.694000 [100]: TypeError: 'str' does not support the buffer interface
2012-03-25 10:35:10.694000 [100]:
Pages:
Jump to: