The GPhoto driver has an option to use a serial connection to control the remote shutter on cameras that do not support bulb mode.

While I could make a USB shutter controller, as other people have done, since I am using a Raspberry PI it seems far easier to make a GPIO based shutter with a simple optoisolator circuit and can be toggled on or off.

Someone else had already posted how to make a script using indi_eval that looks for the Exposure duration property from the CCD class and toggles a GPIO pin high/low. This works, but only if I point the GPhoto driver serial port to the Pi's serial port so that the GPhoto driver won't error out. Trying to use the Pi's serial GPIO pins directly didn't work for me, they didn't toggle in the way I expected like with the simple GPIO script.

Something more official in the GPhoto driver would be a nice addition. Something like putting SNOOP into the shutter release port like we can with DSUSB to tell the driver were going to handle the shutter externally, and then it is up to some snooping driver or script to trigger the camera shutter.


I have a script that snoops on the exposure property of the CCD driver. This works when I use the generic driver, but if I use the Nikon driver the indi_eval errors out. I think this is because the nikon gphoto driver sets the device name to "Nikon DSC D3100 (PTP mode)" and the (PTP mode) in the name causes the expression not compile proper.



I am trying to use indi_eval to snoop on a property from the gphoto driver. If I use the generic driver named "GPhoto CCD" then everything works fine and I am able to write an expression to get the value.

The problem comes when using the Nikon driver. This driver names itself what the gphoto camera name is. In my case I get a device name of "Nikon DSC D3100 (PTP mode)". If I try and use this in the indi_eval expression I get a compile error. I think to do with the (PTP mode) part of the name.

Is there a way to make indi_eval through the shell work with this device name? Would it be possible to sanitize the device name in either indi_eval or the gphoto driver?