QuickRemote interface

QuickRemote is a low cost USB interface for a computer control of the shutter of Digital SLR, for long exposure, capture.of sequences, help for focusing, etc. An hardware solution for these functions consist to use the serial or the parallel (printer) interface. But now, USB is a more rationale, plus-and-play, and easy to use method. Remember, the images captured by the camera are downloaded to the computer through an USB link. So, QuickRemote is an homogeneous solution: only one USB link is necessary between the computer and the DSLR. Amplified USB cable can be used for distance up to 10 meters.

QuickRemote include also a 8-bits ports (DB9 connector), programmable, for future extension, like autoguiding, focusing, ...


The QuickRemote interface.

QuickRemote works in conjunction with a compatible remote software. It is the case for Iris V5.0 (and upper) for control Canon EOS cameras (300D, 350D, 20D, 20Da, ...). Click here for details.


Functional diagram.
 

QuickRemote use a FT245BM chip,  a easy to use USB to parallel FIFO. See here for details http://www.ftdichip.com.


The FT245BM chip.

To make life even simpler, the FT245BM can be used in the form of piggyback module. Ideal for prototyping and instant to use. See for example

DLP-USB245M : http://www.ftdichip.com/Products/EvaluationKits/DIPModules.htm
USBMOD2B :
http://www.elexol.com

QuickRemote exploit a special mode of the FTDI chip, called "Bit-Bang" mode. This basically latches data to the data lines until another write is performed by the computer. The job is simple for programmer! For a very good description of the Bit-Bang mode, download these file:  http://www.dlpdesign.com/images/bit-bang-usb.pdf

The figure below present the typical electronic circuit. The pin 15 of the USBMOD2B is the bit 0 of the parallel FIFO. A very minimal number of circuit is necessary.


Schematic diagram. The USBMOD2 can be easily replaced by a DLP-USB245M (
click here for download the datasheet).

There is no need to develop drivers for FTDI chips. The required DLL supplied by FTDI is free. A very decisive advantage! FTDI chip is also powerful, see for example the development of QuickAudine, the USB interface of the CCD camera Audine.

Listing below (C code) shows how to command the shutter.


//************ DECLARATION ******************
#include <ftdi.h> ...
...
...
typedef DWORD FT_HANDLE;
typedef DWORD FT_STATUS;
EXTERN FT_HANDLE UsbHandle;
EXTERN HMODULE g_usb_module;

typedef FT_STATUS (WINAPI *PtrToOpen)(PVOID, FT_HANDLE *);
EXTERN PtrToOpen g_usb_Open;
EXTERN int UsbOpen(PVOID);
typedef FT_STATUS (WINAPI *PtrToClose)(FT_HANDLE);
EXTERN PtrToClose g_usb_Close;
EXTERN int UsbClose();
typedef FT_STATUS (WINAPI *PtrToWrite)(FT_HANDLE, LPVOID, DWORD, LPDWORD);
EXTERN PtrToWrite g_usb_Write;
EXTERN int UsbWrite(LPVOID, DWORD, LPDWORD);
typedef FT_STATUS (WINAPI *PtrToSetBitMode)(FT_HANDLE, USHORT, USHORT);
EXTERN PtrToSetBitMode g_usb_SetBitMode;
EXTERN int UsbSetBitMode(UCHAR, UCHAR);
...
load_libftdi();
...
//********** SHUTTER COMMAND ************ 
unsigned char tx[1];
unsigned long ret_bytes;

UsbOpen(0); // open ftdi device

UsbSetBitMode(0xff,1); // enable bitbang mode

tx[0]=0;
UsbWrite(tx,1,&ret_bytes);

tx[0]=1;
UsbWrite(tx,1,&ret_bytes); // open the shutter

sleep(exposure);   // delay, i.e. exposure time

tx[0]=0;
UsbWrite(tx,1,&ret_bytes); // close the shutter

CloseUsb(); // close ftdi device

//********************************************************************
int UsbWrite(LPVOID lpvBuffer,DWORD dwBuffSize,LPDWORD lpdwBytes)
{
return (*g_usb_Write)(UsbHandle,lpvBuffer,dwBuffSize,lpdwBytes);
}

//********************************************************************
int UsbOpen(PVOID pvDevice)
{
return (*g_usb_Open)(pvDevice,&UsbHandle);
}   

//********************************************************************
int UsbClose()
{      
return (*g_usb_Close)(UsbHandle);
}    

//********************************************************************
int UsbSetBitMode(UCHAR ucMask,UCHAR ucEnable)
{
return (*g_usb_SetBitMode)(UsbHandle,ucMask,ucEnable);
}   

//*******************************************************************
int load_libftdi(void)
{
g_usb_module=LoadLibrary("Ftd2xx.dll"); 
if (g_usb_module == NULL)
   {
   AfxMessageBox("Error: Can't Load Ftd2xx.dll");
   return 1;
   }
g_usb_Write=(PtrToWrite)GetProcAddress(g_usb_module, "FT_Write");
g_usb_Open = (PtrToOpen)GetProcAddress(g_usb_module, "FT_Open");
g_usb_Close = (PtrToClose)GetProcAddress(g_usb_module, "FT_Close");
g_usb_SetBitMode = (PtrToSetBitMode)GetProcAddress(g_usb_module, "FT_SetBitMode");
return 0;
}


QuickRemote include in a small box a specific PCB, a FT245BM chip, two optocouplers TLP627-4, a control  LED, an USB connector and a DB9 connector for user I/O. Available from:

Essentiel Electronique
3 rue Montmorency
31200 Toulouse - France
Web :
http://www.essentielelectronique.com
Email :
raymond@essentielelectronique.com


BACK