I've analysed the usb trafic for the shutter fonction of the Olympus.

Here are my investigation for the camera in libgphoto2:

The variable for the camera trigger is:
```
/* Olympus OMD series commands */
#define PTP_OC_OLYMPUS_OMD_Capture 0x9481
```
In the function used for the image capture there is indeed

```
uint16_t
ptp_olympus_omd_capture (PTPParams* params)
{
/* these two trigger the capture ... one might be "shutter down", the other "shutter up"? */
PTP_CNT_INIT(ptp, PTP_OC_OLYMPUS_OMD_Capture, 0x3); // initiate capture
ret = ptp_transaction(params, &ptp, PTP_DP_NODATA, 0, NULL, NULL);

PTP_CNT_INIT(ptp, PTP_OC_OLYMPUS_OMD_Capture, 0x6); // initiate capture
ret = ptp_transaction(params, &ptp, PTP_DP_NODATA, 0, NULL, NULL);

}

```

In case of a normal capture the "ptp_olympus_omd_capture " function is correct but for the Bulb mode it's not because value 0x3 is shutter down
`PTP_CNT_INIT(ptp, PTP_OC_OLYMPUS_OMD_Capture, 0x3)`
and value 0x6 is shutter up
`PTP_CNT_INIT(ptp, PTP_OC_OLYMPUS_OMD_Capture, 0x6)`

so this initiate a short exposure.

We should made 2 differents function, so we could make the Bulb function operationnal.

I will try to make the changes in libgphoto2

Read More...