All my Ztex FPGAs connect to pukka powered USB hubs. Each USB hub has a separate 5V 1A power cable. The USB2.0 spec says that each hub supports 4 connections, so the reason why there are so many 7 port hubs (a weird number in computing, generally) is because they have two hub controllers ganged together inside. I've pulled enough cheap USB hubs apart (that wouldn't work with my FPGA setup) to find that this is the norm, and even the more expensive Belkin kit does the same thing, and uses the same controllers.
My 20 unit FPGA board has a very low power integrated AMD logic board underneath and an 800W ATX PSU. The separate power rails use PCIe power leads from the PSU. This should be *massively* overprovisioned for power, and I've soldered up the power rails and 2.1/5.5 barrel plugs using 18AWG cable, which should be adequate at 12V to supply only 5 of the Ztex 1.15x boards. Fans are powered from a separate circuit.
This should be over-engineered... but the amount of trouble I had getting USB hubs to work surprised the hell out of me.
Using a passive hub and 5 FPGAs (two 4-port hubs, one with three FPGAs connected, the other with two FPGAs and the input from the first hub) took hours of trial and error to get all the FPGAs recognised. Stefan mentions repeatedly in his online documentation that multiple ground cables are required, and the problems I saw appear to be due to current returning from the FPGA board via the USB cable ground. These are tiny wires and can't carry much current.
I think this may be a very simple question so I've put it here... if it's more complicated then it ought to have its own thread.
I like the quality, proven performance, warranty and support that Ztex gives... but even following his 'cluster power supply' advice re: ground cables vs. power cables, I ended up taking a few days and various USB hubs to get all the units working. The logic board had plenty of powered USB sockets and I had to use most of them. I really want to use my Raspberry Pi to control a huge FPGA assembly, but the strict current limits on the Raspberry Pi USB socket seems to make this impossible.
Anyone know what's going on, from an electronic engineering perspective? Are ALL the competing boards going to have similar issues - i.e. am I doing something obviously wrong? Is there any way to sling a resistor into the USB ground return wire (or some other solution - I'm not an EE) to discourage the FPGA current from returning via the USB cable, and instead following the low-resistance multiple-ground-wire route like it should?
My 20 unit assembly ended up using 6 USB hubs, two of them powered, thus a snakepit of cables below the tidy top level and lots of power points required.
I know the total power draw is low and the system is incredibly efficient. But if I wanted to build a 100 unit assembly? I'd need 30 USB hubs, which is bloody ridiculous.
Big backplanes are the way to go but only if the data, as well as the power, is aggregated on the backplane.
I'd really appreciate feedback from those with first-hand experience of the kit I'm most likely to buy (Ztex, Enterpoint, BTCFPGA.com, any others competitively priced in EU?)...
Hi catfish,
I've been running mine with a deal-extreme-sourced-el-cheapo-pink-hub á la https://bitcointalksearch.org/topic/m.953674. The hub needs to be powered to run over 6-7 1.15x boards unless connected to an ATX mobo with sufficiently powered USB port (IIRC ztex each 1.15x draws ~100mA). My cluster's power supply is built just as ztex has instructed, 5 boards to +12V, max 3 boards to GND of PCIe power cables.
NOTE: RPi will not be able to deliver enough current to USB to run a big cluster with passive hubs. Also, RPi tends to draw current from powered hubs through the USB ports, which makes it behave erratically, so make sure you tape the USB plugs' +5V lead before connecting your powered HUB into RPi's USB port. I used a thin strip of black electric tape, works fine now, uptime over a week using my friend's ARM-port of BTCMiner http://blog.villekangas.com/?p=23