Note that there are some explanatory texts on larger screens.

plurals
  1. POStrobe signal output on Pointgrey Firefly MV using libdc1394
    primarykey
    data
    text
    <p>I am using a Pointgrey Firefly MV (FFMV-03M2M/C to be precise) and want to trigger some external device with every shutter start. According to <a href="http://www.ptgrey.com/products/fireflymv/fireflymv.pdf" rel="nofollow">the datasheet</a>, the camera supports IIDC 1.31 and also provides four GPIOs usable as a trigger and/or strobe signal outputs. As described in section 4.11.3 of the <a href="http://damien.douxchamps.net/ieee1394/libdc1394/iidc/IIDC_1.31.pdf" rel="nofollow">IIDC standard</a> it should be possible to configure those strobe signal outputs using IIDC. </p> <p>My application is implemented in C++ and uses <a href="http://damien.douxchamps.net/ieee1394/libdc1394/" rel="nofollow">libdc1394</a> to access and control the camera. So far, everything works quite nicely, but I cannot manage to configure the strobe signal outputs. As far as I understand libdc and IIDC it should be possible to enable the first output as follows (<code>camera</code> is a pointer to a valid <code>dc1394camera_t</code>):</p> <pre><code>dc1394error_t err; uint64_t strobe_offset = 0x200; uint32_t strobe_settings = 0; err = dc1394_get_strobe_register(camera, strobe_offset, &amp;strobe_settings); if (err == DC1394_SUCCESS) { /* Set bits 6 (strobe on) and 7 (active-high level) IIDC uses msb 0, so we need to shift by 25/24 instead of 6/7 */ strobe_settings = strobe_settings | (1 &lt;&lt; 25) | (1 &lt;&lt; 24); err = dc1394_set_strobe_register(camera, strobe_offset, strobe_settings); } if (err != DC1394_SUCCESS) { log(LOG_ERROR, "Failed to set strobe."); } </code></pre> <p>This does not generate any errors, but it also does not turn on the strobe signal output (even though the camera is capturing frames). I also tried all the other outputs by using a different offset (0x204, 0x208 and 0x20C) but to no avail. Then I checked all the availability inquiry fields at <code>Strobe_CTRL_Inq</code> and <code>Strobe_[0123]_Inq</code> but they all report that the strobe signal outputs are present. But interestingly, the <code>On/Off_Inq</code> field in <code>Strobe_[0123]_Inq</code> tells me that it is not possible to switch the output on or off while the <code>Polarity_Inq</code> tells me that I could change the polarity setting (which I actually can't because you can only change settings when the strobe signal output is switched on). I tried configuring the outputs using the windows based driver utility provided by Pointgrey and there it works without any problems.</p> <p>Any ideas what I might be doing wrong? Or is this camera not IIDC compatible in this regard?</p> <p>Update: Ok, I tried three ways to enable the strobe output: Using my orignal code, using the absolute offset 0x1300 as suggested in the answer and using the offset 0x1110/0x1114 as written in the PointGrey register reference manual. I also tried setting delays, durations and/or directions (even though PIOs are not to be confused with the strobe outputs). No combination of registers and flags works so far. Maybe it is a bug in libdc1394 or PointGrey does some other magic in their proprietary driver. For now I give up and will try to find a different solution for triggering an external device.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload