Hi cnolan,

I am sorry about the issues you are experiencing here with this strobe signal functionality.
Can you please let me know which version of the product you have in hand if that is easy for you to check?
The version is printed on the PCB, so you would need to open the enclosure to check it though.
Please note that calibration will be lost if you do that, and if that is not something convenient for you to do please don't we will work on locating the issue today anyway.

Thanks,
David

Thanks David, I would prefer to not do that right now if I can avoid it. The device was only shipped a little over a week ago if that helps.

Just to explain what I'm trying right now. I've checked out and installed the multi_cam_support branch of depthai-python, and I'm setting the frameSyncMode of the left mono camera to OUTPUT and testing the FSYNC vs. isolated ground on the scope. I'm getting the same result as above.

Incidentally, if I try to set the strobe to sensor using:

ctrl = dai.CameraControl()
ctrl.setStrobeSensor(1)
controlQueue.send(ctrl)

I get an error:

[18443010313CC51200] [169.254.1.222] [13.481] [system] [critical] Fatal error. Please report to developers. Log: 'DrvGpio' '326'

@cnolan FSYNC is meant to be used as an input so you can sync multiple devices from the outside. I am not sure what are you measuring but that is definitely not a FSYNC signal, as you can't measure the FSYNC which is isolated. Below is the schematic of that part on OAK-D-Pro-PoE
FSYNC signal is by its function just a pulse that is driven high at the start of the frame capture and not a PWM signal with the on time same as exposure time.
STROBE is an output that is meant to be used as an output and you could drive, so yes setting strobe on LEFT camera and measuring the STROBE on the connector would do it.
Thoughts?

I am not sure what is the reason for an error you get though, @erik might be able to give you an answer right away.

@cnolan we measure the STROBE output and it works in our case on the sample we have in the office, can you check on your side if yo get the same?

Hi David, the first scope image I sent was between the strobe - isolated ground pin.

Just to clarify, is there anything specific you need to do in the pipeline to enable the strobe pin output? And the device you were using in your test there was a OAK-D Pro W PoE?

@cnolan we tested on OAK-D-Pro-W and just a note you should add PU resistor to the output if you haven't done so, as this is open-collector output.
We did simple test with depthai-demo.py just simply running the camera and the output is already set on camera driving the strobe.

Hi David, that'll be the issue, I've been expecting a TTL pulse. Is there a supply line as well I can use for pull-up, or do I need an external supply?

That was the problem, thanks David. Annoying mistake on my part sorry, should have looked at the strobe circuit diagram.

@cnolan no worries, and thanks for circling back!

Regards,
David

7 months later

Hi,

how did you solve the issue? What values for a pullup did you use?

a month later

@cnolan What values did you use? I'm not sure how you solved the problem finally. It would help us a lot!

erik thanks for circling back!

Overall we want to drive an external strobe light. If I'm reading the circuit diagrams correctly this should be possible with the strobe output(decoupled via optocoppler).

Maybe before I describe our setup in details: do I need to explicitly enable the strobe output via python code?

What about the open collector output and the pullup resistance?
For the m8 connector is there a specific color coding which color is the strobe output and isolated gnd(maybe for the included m8 cable)?

    Hi K-LReinhard ,
    Here's the API for setting the strobe, via CameraControl message:

        /**
         * Enable STROBE output on sensor pin, optionally configuring the polarity.
         * Note: for many sensors the polarity is high-active and not configurable
         */
        CameraControl& setStrobeSensor(int activeLevel = 1);
    
        /**
         * Enable STROBE output driven by a MyriadX GPIO, optionally configuring the polarity
         * This normally requires a FSIN/FSYNC/trigger input for MyriadX (usually GPIO 41),
         * to generate timings
         */
        CameraControl& setStrobeExternal(int gpioNumber, int activeLevel = 1);
    
        // TODO API to set strobe line directly high/low (not following the exposure window)
        // TODO API to set strobe timings, as offsets in relation to exposure window, or fixed duration
    
        /**
         * Disable STROBE output
         */
        CameraControl& setStrobeDisable();

    Example:

    colorCam = pipeline.createColorCamera()
    colorCam.initialControl.setStrobeExternal(48, 1)

    We don't have any color coding, but the pins should be described in HW docs. Thoughts?
    Thanks, Erk

    After my holiday I got another look; I had also a look at the datasheet of the optocoppler. I've seen that the emitter collector max is 6V. I'm not sure if I always got the polarity right 🙂

    I think it would be wise to test with another cam(and limited voltage…😉)

    Regarding the code - this should be sufficient to enable the strobe?

    colorCam.initialControl.setStrobeExternal(48, 1)

    24 days later

    I got something blinking 🙂 I just ran the demo and got a blinking led - got me thinking. What I was wondering when I do something like this

    cam = pipeline.createColorCamera()
    cam.setFps(1)
    cam.initialControl.setStrobeExternal(48, 1)
    cam.initialControl.setStrobeSensor(1)

    I don't get a blinking led. When I do something like:
    monoRight = pipeline.create(dai.node.MonoCamera)
    monoRight.setFps(1)
    monoRight.initialControl.setStrobeExternal(48,1)

    The led starts blinking with ~1hz. I'm not sure if I haven't understood something fundamentally wrong

    Another progress…finally got it. For future readers: With the included M8 cable
    Green:= Strobe out
    White:= ISO GND

    For a 12v based circuit i used a 4.7k Pullup resistor