View Full Version : Max number of firewire cameras?

April 22, 2003, 01:42:24

I have an application where I'm using 6 firewire cameras from a powered hub into a computer. Only 4 of them will come up simultaneously, the rest fail at startLive().
I have looked only running three continuously and the rest using 'snap', where each is started in turn, snapping several images and then stopped before doing the next camera but I come against two problems:

1/ the camera frame is filled with noise as it is just starting up, each one needs about 0.5 of a second from startLive() to stabilise its output
2/ I really need the cameras to take photos close to simultaneous (within 0.5 second for all 6). We have decided the application will be acceptable with only having one continuous and the rest 'snap', if we can work out this problem...

Can you suggest a workaround? BTW - it isn't just our app using IC libraries that fails at four cameras - the demo app with the firewire cameras also fails after opening four.


Stefan Geissler
April 22, 2003, 08:29:29

At the point of time, you have determined the video format for each camera, the bandwith needed for this camera is allocated on the Firewire bus. This is the reason, why you can call startlive for four of your cameras successfully and why startlive resp. snapimages will fail for the next cameras.
There are different solutions: The easiest solution for desktop PCs is to use a second Firewire card in your PC.

If you do not want to use a second Firewire card, you should change the frame rate of a camera. The cameras, that only snap an image, should work with a very slow frame rate, e.g. 3 Hz if supported.

If this does not solve your problems, you should reduce the frame rates of the other cameras too. Also you may should reduce the resolution of the used video formats.

July 14, 2003, 03:32:16
Just as further information for anyone who reads this thread, the firewire cameras I am using need 1 DMA channel per camera. Typically the number of DMA channels available are 4 in a computer.
Check under the device manager and look for the DMA controller to confirm this.

Add more DMA channels by adding another 1394 interface, but then start looking at the PCI bus load.


Johannes Vogel
July 14, 2003, 16:18:55

According to my knowledge, old OHC controllers can handle only four DMA contexts (descriptor programs) simultaneously. This means, only four devices can send data at the same time (this is not dependent on the type of device).
Current controllers can handle far more DMA contexts simultaneously.

Two OHC controllers will work stable on the same PCI bus. Using two controllers will increase the bandwidth for FireWire devices by the factor of two. Using the full bandwidth of three controllers simultaneously on the same PCI bus will cause bandwidth problems on the PCI bus. Typically, the full bandwidth of the FireWire bus is not used. Therefore, three controllers will work on the same PCI bus in most cases.

More information about bandwidth issues of the FireWire bus can be found here:

Best regards
IC Support