Pages:
Author

Topic: FPGA development board "Icarus" - DisContinued/ important announcement - page 34. (Read 207285 times)

hero member
Activity: 742
Merit: 500
I think that better feature may be the message from board when nonce range is exhausted.

By the way, are serial port pins routed to chainlink connectors or not ? Would be nice to have possibility of using serial communication directly. What voltage levels it uses ?

Also I noticed that there were much more blinkenlights in V1 bitstream. Sadly they are mostly gone in V2 :(
by my thinking is that the hardware performance is known, so a software timer is enough and really effective.
But there is some difference between V2 and 200MHz version, for example ? How can software miner detect that ?
Also it may be easier to control multiple boards with simple microcontroller.
Ok, that's not a very important thing to have.

bgzhang, could you modify the bitstream to accept the target difficulty as additional input parameter?
you mean the nonce range? ???
I think he means an option to find hashes with more than 8 MSBs equal to "0". But this can be done in the miner software, no bitstream modification is required.
That I meant. But yes can be done in miner software.
it's a very simple code change, but what is this meaning for? a pool accept a data that can calculate out a nonce with first 32bits equal to "0".
I think that he wants to use Icarus with p2pool or some other pool that accepts only shares with specific difficulty, starting with more than 32 zero bits.
But unsuitable shared can be just discarded in software.
hero member
Activity: 592
Merit: 501
We will stand and fight.
I think that better feature may be the message from board when nonce range is exhausted.

By the way, are serial port pins routed to chainlink connectors or not ? Would be nice to have possibility of using serial communication directly. What voltage levels it uses ?

Also I noticed that there were much more blinkenlights in V1 bitstream. Sadly they are mostly gone in V2 Sad


by my thinking is that the hardware performance is known, so a software timer is enough and really effective.

a simple modify to the RTL code needs hundreds hours of smartXplorer flow and manually route.

the serial port can be mux to any GPIOs. only a small code change. i will work on this after the 200MHz is stabled on a -2I device.


bgzhang, could you modify the bitstream to accept the target difficulty as additional input parameter?
you mean the nonce range? Huh
I think he means an option to find hashes with more than 8 MSBs equal to "0". But this can be done in the miner software, no bitstream modification is required.

That I meant. But yes can be done in miner software.

it's a very simple code change, but what is this meaning for? a pool accept a data that can calculate out a nonce with first 32bits equal to "0".
hero member
Activity: 527
Merit: 500
bgzhang, could you modify the bitstream to accept the target difficulty as additional input parameter?
you mean the nonce range? Huh
I think he means an option to find hashes with more than 8 MSBs equal to "0". But this can be done in the miner software, no bitstream modification is required.

That I meant. But yes can be done in miner software.
hero member
Activity: 742
Merit: 500
I think that better feature may be the message from board when nonce range is exhausted.

By the way, are serial port pins routed to chainlink connectors or not ? Would be nice to have possibility of using serial communication directly. What voltage levels it uses ?

Also I noticed that there were much more blinkenlights in V1 bitstream. Sadly they are mostly gone in V2 :(
hero member
Activity: 742
Merit: 500
bgzhang, could you modify the bitstream to accept the target difficulty as additional input parameter?
you mean the nonce range? Huh
I think he means an option to find hashes with more than 8 MSBs equal to "0". But this can be done in the miner software, no bitstream modification is required.
hero member
Activity: 592
Merit: 501
We will stand and fight.
bgzhang, could you modify the bitstream to accept the target difficulty as additional input parameter?

you mean the nonce range? Huh
hero member
Activity: 527
Merit: 500
ngzhang, could you modify the bitstream to accept the target difficulty as additional input parameter?
hero member
Activity: 592
Merit: 501
We will stand and fight.
ADD@1/28

some proposal of heat control.

the boards and standard cooling system is tested under the ambient temperature of 23 centigrade. if your temp is over 30 centigrade, an additional cooling is recommended. an airflow pass the whole board is a good choice.

notice the power module is very heatproof, but the FPGA will generate error data when they reach a high temperature. a simple method to sense if the temperature is touch the back side of the PCB, just under the FPGA chip. notice before do this you need a electro static discharge.
if you can not hold your finger at  the back side of the FPGA for 3 seconds. then a additional cooling is needed.
the FPGA chip uses whole PCB for heat dissipation, so an airflow passing the PCB is more important than the fan above the heat-sink.




Icarus communication protocol

this specification is for anyone who want to write their own miner or want to add support for icarus.

this device is designed as  "the simplest is the best" idea.
the FPGAs on board or even in chain mode (under development) , act as a single miner to the uart port. when the board connect to a PC, it recognized as a ttyUSB device, or "COM*" on windows PC.
how to operate:
1, no detection is needed (no special command for this). 
2, sending work data:
  each data packet is 512bit (64 byte) length. the format is : 256bits MIDSTATE + 160bits fill bits(can be any value) + 96bits data (last 12 bytes of block header). over.
3, sending back the results:
  if the fpga found a valid nonce, they will send back the 32bits nonce result immediately. no any query protocol is implemented here.

so a simple work process is described below:

send a work pass the COM port, start a timer and a listener on the COM port.
if any data send back by the COM port, then this is a valid nonce. push a new work to the FPGA and send the result back to the pool.
if no data send back in 11.3 seconds (a full cover time on 32bit nonce range by 380MH/s speed), send another work.

some point:
1,FPGA will start the calculate when you push a work to them, even they are busy. that means if a block has been found, the miner could push a new immediately to overlap the old work in the fpga.
2,the 2 fpgas on one board will distribute the 32bit nonce to calculate. one will calculate the 0 ~ 7FFFFFFF, and the other will cover the 80000000 ~ FFFFFFFF. so if you want to do any performance measure on this device, please notice this feature.
3,FPGA will stop work when: a valid nonce has been found or 32 bits nonce range is completely calculated. notice that it's possible for 2 FPGA both find valid nonce in the meantime, the 2 valid nonce will all be send back.
hero member
Activity: 592
Merit: 501
We will stand and fight.
What I'd like to do is mount these boards vertically on a backplane and have some 120 or 140mm high airflow fans blowing from on them. I am thinking slightly angling the fans would be ideal so the backside and the frontside of the board gets direct airflow instead of the air "channeling" or running past it. Angling them would create some turbulence though, so I'm not sure.

Can anybody here that is more of an expert at DIY solutions give me some ideas as to how I'd create this setup? Can I use one of the DDR3 memory slots that ngzhang sells and glue or attach them to a sheet of aluminium or sheet steel? Is the 168 pin memory slot connector on the board actually functional (ie the pins are wired to receive data and power)?

On another note does anyone know if there is some aftermarket solution out there for what I'm trying to accomplish to spare me the hassle of doing the job myself and possibly making a mess of it?

it's possible to use the 240pin-DDR3  DIMM slot to settle the boards, there are enough power pins. but if you want to transform data from the dimm, a RTL change is needed.

I don't intend to power the boards with current from the DIMM slots though. I just want to seat them or secure them in place.

What are the "80pin TE 1734037 and 1734099 connectors" used for if you don't mind me asking?

no use for mining, really.
legendary
Activity: 3080
Merit: 1080
What I'd like to do is mount these boards vertically on a backplane and have some 120 or 140mm high airflow fans blowing from on them. I am thinking slightly angling the fans would be ideal so the backside and the frontside of the board gets direct airflow instead of the air "channeling" or running past it. Angling them would create some turbulence though, so I'm not sure.

Can anybody here that is more of an expert at DIY solutions give me some ideas as to how I'd create this setup? Can I use one of the DDR3 memory slots that ngzhang sells and glue or attach them to a sheet of aluminium or sheet steel? Is the 168 pin memory slot connector on the board actually functional (ie the pins are wired to receive data and power)?

On another note does anyone know if there is some aftermarket solution out there for what I'm trying to accomplish to spare me the hassle of doing the job myself and possibly making a mess of it?

it's possible to use the 240pin-DDR3  DIMM slot to settle the boards, there are enough power pins. but if you want to transform data from the dimm, a RTL change is needed.

I don't intend to power the boards with current from the DIMM slots though. I just want to seat them or secure them in place.

What are the "80pin TE 1734037 and 1734099 connectors" used for if you don't mind me asking?
hero member
Activity: 592
Merit: 501
We will stand and fight.
What I'd like to do is mount these boards vertically on a backplane and have some 120 or 140mm high airflow fans blowing from on them. I am thinking slightly angling the fans would be ideal so the backside and the frontside of the board gets direct airflow instead of the air "channeling" or running past it. Angling them would create some turbulence though, so I'm not sure.

Can anybody here that is more of an expert at DIY solutions give me some ideas as to how I'd create this setup? Can I use one of the DDR3 memory slots that ngzhang sells and glue or attach them to a sheet of aluminium or sheet steel? Is the 168 pin memory slot connector on the board actually functional (ie the pins are wired to receive data and power)?

On another note does anyone know if there is some aftermarket solution out there for what I'm trying to accomplish to spare me the hassle of doing the job myself and possibly making a mess of it?

it's possible to use the 240pin-DDR3  DIMM slot to settle the boards, there are enough power pins. but if you want to transform data from the dimm, a RTL change is needed.
legendary
Activity: 3080
Merit: 1080
What I'd like to do is mount these boards vertically on a backplane and have some 120 or 140mm high airflow fans blowing from on them. I am thinking slightly angling the fans would be ideal so the backside and the frontside of the board gets direct airflow instead of the air "channeling" or running past it. Angling them would create some turbulence though, so I'm not sure.

Can anybody here that is more of an expert at DIY solutions give me some ideas as to how I'd create this setup? Can I use one of the DDR3 memory slots that ngzhang sells and glue or attach them to a sheet of aluminium or sheet steel? Is the 168 pin memory slot connector on the board actually functional (ie the pins are wired to receive data and power)?

On another note does anyone know if there is some aftermarket solution out there for what I'm trying to accomplish to spare me the hassle of doing the job myself and possibly making a mess of it?
legendary
Activity: 892
Merit: 1002
1 BTC =1 BTC
Thanks O_Shovah for this picture. I think it's important to cool the backside under the fpga's.

For people that want to try out the 400MH (200 Mhz) alpha version, please use extra cooling fans that blow fresh air towards both sides of the boards. (or you will get errors/resets/damage)
I tested this version for several weeks and did not have any problems, but I use a laptop cooling plate to cool the backside of the fpga board and I replaced the heatsink cooler with a 1 watt papst 50mm fan (20m3/h) to cool down both the heatsinks and frontside of the board.
sr. member
Activity: 410
Merit: 252
Watercooling the world of mining
As promised a new picture of the backside.


Roomtemperature 21°C
No additional cooling.
@180mhz
Camera: NEC IR Thermoshot F30

The picture ist subject to the :
Creative Commons Attribution Share Alike (CC BY-SA) 3.0 Licence
please contact me if you need it.

I also did some measurements on the power consumption:


Measured at the barrel connector excluding power supply losses.
So just the power consumption of the board alone

1580 mA @ 12,00V = 18,96 W

Using Hameg laboratory power supply

For comparison X6500 :

1233mA @ 12,00V +  (1/3)* 256mA @ 10,00V [Fan] = 15,64 W
hero member
Activity: 592
Merit: 501
We will stand and fight.
released a 400MH "overclock" bitsteam for alpha test. on the github.
notice that this bitsteam is not guarantee stable on all boards. and extra cooling for the PCB (not only for the chip heat-sink) is needed.
by present architecture, maybe this is the end.
legendary
Activity: 3080
Merit: 1080
Excellent! Glad it's working for you now. Welcome to the FPGA party Smiley

Yeah I used com6 only as an example. The com port you need to use can be determined by going into the device manager and looking under the Ports section.

"PL-2303 USB to Serial Bridge (for HX, TA, EA chip versions)" so yeah you're right there is no _specific PL-2303HX file but that generic zip file contains support for it and other versions as well.
sr. member
Activity: 420
Merit: 250

Checkout the first post on this thread. Or you can follow my quickly slapped together guide...

Step 1: Download and install the USB_UART driver, it's PL2303HXD:

http://www.prolific.com.tw/eng/downloads.asp?id=31

*note: you may have to reboot your machine after the installation of this driver*
The file PL2302HXD does not exist on this page.  I just downloaded the first one since that seemed to be the most accurate for my system (Win 7 64bit)
Step 2: Download and install python 2.7

http://python.org/getit/

Step 3: Install the serial / jsonrpc / curses libs into the python27/Lib folder. Typically python should be installed in C:\Python27. I've uploaded all the python libs (zip format). Here is the link:

http://www.mediafire.com/?4r79856dlccv6n3

3: Go to where you stored your miner (ngzhang's) and edit the MINER.BAT (don't just run the miner.py!). The miner.bat file should look something like this:

start c:\python27\python.exe miner.py -u http://bitcoinsuperstar:[email protected]:8332 -s com6

4: Once you've made sure you have the proper info for your chosen mining pool programmed into that batch file (miner.bat) just double click it and enjoy your uber fpga hashing rig. At this point it is safe to crack open a beer and chug it down with deep satisfaction Smiley Job well done!

I had to change com6 to com4 for it to work properly.  Otherwise I got this:

"serial.serialutil.SerialException: could not open port com6: [Error 2] The systems cannon find the file specified."

Also python closed itself immediately upon that error and I couldn't read it unless I took a screenshot.

Working now! ~400 Mhash/s
hero member
Activity: 592
Merit: 501
We will stand and fight.
I do not want to offend you but perhaps if you want someone else to make a software miner for Icarus you could do what BFL did and provide the guy that wrote CG miner and UFasoft miner remote access and some sort of API ( I would guess with your files being publicly available it isnt likely hard to do.). I doubt I am suggesting anything you have not already thought of. If existing miners can use yours as well then Icarus has current and possibly future changes to pool connection systems. My thought is it could free up your time to create and sell hardware  and as long as your hardware is supported the end user gets upgrades with the new releases of the software.

+1 for this idea.

I remember the BFL's post @ CGMINER's topic:

https://bitcointalksearch.org/topic/m.692304

OK i know. wait for a few days.
legendary
Activity: 892
Merit: 1002
1 BTC =1 BTC
Im working on my ARM host plattform with xubuntu.
But it seems i missed something with the syntaxes.
 
Code:
o_shovah@Zuse:~/Desktop/Icarus/miner_software/simple_ver$ sudo python miner.sh
  File "miner.sh", line 3
    WORKER=http://[email protected]_3:[email protected]:8332/
               ^
SyntaxError: invalid syntax

Any ideas ?

WORKER="http://[email protected]_3:1234@pit.deepbit.net:8332/"

maybe use quotes " or '
sr. member
Activity: 410
Merit: 252
Watercooling the world of mining
Im working on my ARM host plattform with xubuntu.
But it seems i missed something with the syntaxes.
 
Code:
o_shovah@Zuse:~/Desktop/Icarus/miner_software/simple_ver$ sudo python miner.sh
  File "miner.sh", line 3
    WORKER=http://[email protected]_3:[email protected]:8332/
               ^
SyntaxError: invalid syntax

Any ideas ?
Pages:
Jump to: