ISO speed setting

43 views
Skip to first unread message

Arjun Chennu

unread,
Aug 10, 2011, 10:16:40 AM8/10/11
to pydc...@googlegroups.com
Hi,

I have a question about the isospeed setting on the firewire bus, for which I could not find any answers from googling. Nor did reading the code in pydc1394 help me, so I'm hoping somebody can help.

In the camera constructor, one can pass isospeed as an argument. The default is 400, which is the maximum on the 6-pin firewire ports. The newer 1394b (9-pin) connectors can handle 800. This works fine for the typical connections. However, I have a situation where I have a adaptor-cable, one end of which is a 9-pin 1394b plug and the other end is a 6-pin 1394a plug. The two firewire plugs are inter-compatible, but of course such a cable reduces the maximum speed possible to 400. But pydc does not seem to be able to detect that.

When I connect a 1394b camera to a 1394a port, and start the camera with constructor having isospeed=800, the initialization works fine. I can also start the camera (interactive or shot), but the call to shot() or cam.current_image fails. It fails without any error, output but just freezes and requires a kill of the program. 

cam = pydc1394.Camera(lib, guid, isospeed=800)
cam.start(interactive=imode)
cam.shot()   # ---> this freezes the program and never returns an error

Is there someway to detect the maximum possible isospeed setting from pydc1394? Or is this determined purely by the hardware connections, and no way to determine this programmatically?

Thanks for any help.

Arjun

PS: I have not forgotten an earlier request to post a video or website about the use of pydc1394. I'm now preparing for a deployment this September, and perhaps in October I will have something for the project page.

SirVer

unread,
Aug 16, 2011, 6:19:08 AM8/16/11
to pydc1394
Hi,

> In the camera constructor, one can pass isospeed as an argument. The default
> is 400, which is the maximum on the 6-pin firewire ports. The newer 1394b
> (9-pin) connectors can handle 800. This works fine for the typical
> connections. However, I have a situation where I have a adaptor-cable, one
> end of which is a 9-pin 1394b plug and the other end is a 6-pin 1394a plug.
> The two firewire plugs are inter-compatible, but of course such a cable
> reduces the maximum speed possible to 400. But pydc does not seem to be able
> to detect that.
How should pydc detect which cable you are using? The Firewire cables
are dumb connectors without any logic.

>
> When I connect a 1394b camera to a 1394a port, and start the camera with
> constructor having isospeed=800, the initialization works fine. I can also
> start the camera (interactive or shot), but the call to shot() or
> cam.current_image fails. It fails without any error, output but just freezes
> and requires a kill of the program.
Use isospeed=400 in this case. The speed setting is for the IEEE port,
not for the camera.

>
> cam = pydc1394.Camera(lib, guid, isospeed=800)
> cam.start(interactive=imode)
> cam.shot()   # ---> this freezes the program and never returns an error
this is indeed not catchable.

>
> Is there someway to detect the maximum possible isospeed setting from
> pydc1394? Or is this determined purely by the hardware connections, and no
> way to determine this programmatically?
no, only the hardware determines that.

> PS: I have not forgotten an earlier request to post a video or website about
> the use of pydc1394. I'm now preparing for a deployment this September, and
> perhaps in October I will have something for the project page.
Cool! looking forward to that.

Regards,
Holger
Reply all
Reply to author
Forward
0 new messages