Linux CCD Astro Imaging


Latest news 9/17/03

This latest release is mostly a bug fix.  Minor annoyances are fixed as well as improved timing for USB exposures >= 1 second.  Tested on latest 2.4.x kernel using Debian unstable.  Both gccd and the kernel drivers are at verion 1.8.

What is it

In order to image with Linux, two thing are required: camera driver support and a control application. Both are available here. The camera drivers are implemented as kernel device drivers. These must be built and installed for your specific kernel. The control application uses features of the camera drivers and other accessories such as filter wheels and telescope guiding interfaces. Two other applications are useful as well. A celestial charting program and an image processing program will improve the ability to acquire and enhance good images. XEphem and The GIMP are recommended.

What is involved

As mentioned above, camera drivers and a control application are required to image. The kernel driver installs as a class level driver. The class driver is ccd. It does all the high level control of the camera and OS interfacing. Each camera will have a mini-class driver that handles all the low-level interfacing to the camera. The control application is gccd . It is a Gnome base application that can control cameras, telescopes, and filter wheels.  There are also alternantive applications and perl scripts in the samples sub-directory of the kernel drivers.

What do you need

Of course Linux is needed. Currently the 2.2.x and 2.4.x kernels are supported by the camera drivers. There are drivers for the Connectix parallel port Quickcam and the Starlight Xpress MX5/16, MX5/12, MX5C, MX7, MX7C, MX9, HX5 (untested), HX9, and new SXV series of cameras. There is also a contributed Audine driver.  Adding new drivers is fairly easy, so if you want to add support foryour camera, look at the current source and send me some email. The control application, gccd , requires a Gnome installation. Gccd also uses the GDK-PIXBUF library, so make sure it is installed from your distribution. It seems that most make this library an installation option. You do not need a big or fast computer. I developed this software to run on an anemic 75 Mhz Pentium laptop with 16 MB RAM and 640x480 LCD. It is equivalent to a circa 1991/1992 desktop. However, the faster your computer, the better your experience. Faster downloads, more screen real-estate, more images in memory are the benefits of a newer computer.

Camera driver features

The kernel drivers allow applications to access the camera hardware without having special priveledges. Also, as kernel drivers, timing is more accurate for better image exposures and downloads. Using the standard system I/O calls, the camera can be controlled and interrogated. Each camera can be accessed using two methods. Both a binary and a textual interface are available. The binary interface provides a high performance, low bandwidth interface preferable to interactive applications. The textual interface is more applicable to scripted applications that want an easier interface to the cameras. The textual interface is based on an XML style for easy parsing. Sample Perl scriptsare included to show the simplicity of programming. A complete image capture script that saves the image ina displayable format can be written in only a few lines. More advances camera features are available for those cameras that support them. In particular, the Starlight Xpress MX series of cameras can integrate its two fields independently. This can be used in a self-guiding application. The camera can be arbitrarily binned and windowed for fast focusing, higher sensitivity, and other uses. The source code for the drivers is released under an X Consortium style license.

The Starlight Xpress USB driver has some interesting additional features.  By way of the embeded 8051 controller in the USB interface chip used by Starlight Xpress, there are one or two serial ports accessible for use.  The original USB controller can be modified to break out the serial port and control devices like filter wheels and serial interfaces to telescope mounts.  The SXV series of cameras has a break-out box that provides the serial port connectors.  The kernel driver hooks into the tty driver layer to provide primitive serial port access from /dev/ttysx*.  There is no hardware flow control and the baud rate is fixed at 9600.  Click here to see how to modify the original SX USB interface to provide a serial port.  The SXV also includes a built-in STAR2000 autoguider port.  This is exposed as a write-only serial port that takes data in the same format as the original STAR2000.

Camera control application features

The application, gccd, takes advantage of the camera driver to provide simple and full-featured access to the cameras abilities. Track-n-stack operations are provided with multiple image combining operations. A focus mode helps in achieving better focus. Guiding can be used with a second camera or, if the camera supports it, integrating seperate fields on the same camera for guiding and imaging simultaneously. The supported telescope interfaces include the Starlight Xpress STAR 2000 autoguiding module and the LX200 serial inteface. The TrueTech Custom Filter Wheel is supported for color imaging with monochrome cameras. Filter sequences can be automated and combined with guiding for hands-off deep-sky color imaging. One-shot color cameras are fully supported. For track-n-stack operations with a one-shot camera, gccd will first split each frame into its color components before registration. Raw images can be viewed through the color matrix of the camera to see the unprocessed color image. The image can be split into each individual color frame. The source code for the application is released under the GNU license.

There are additional applications and perl scripts in the samples sub-directory of the kernel drives.  One of the more interesting apps is the drift-scan app, tdi.  All of the SX cameras support TDI mode.  Others have written sophisticated perl scripts for sky surveys.


Kernel Driver Source Version 1.8
Gnome CCD Source Version 1.8
Gnome CCD GZIPped Binary (Debian) Version 1.8
Gnome CCD User Guide Version 0.4
Patched XEphem 3.4 LX200 control daemon source file lx200xed.c

Sorry, no RPMS or DEBs yet.


Send me email: