Project O

Introduction

The Twain driver is okay when you have snapped a bunch of photos and want to grab one, but it doesn't help with repetitive tasks. What I really needed was a simple program that let me type a filename and have the teathered camera take one photo, download it, and erase it from memory. I also wanted to be able to take pictures on a time schedule and grab the photos. The Olympus software was not up to the task, and that gave incentive to this project.

To write your own programs, one would need to know the command set used by the camera. Unfortunately, Olympus does not provide this. So this project started as an effort to decipher the Olympus D-200L command set. That is largely complete and most of the command set is described here. It has been seen that the command set and programs here work with all Olympus cameras (to date). There is even an Epson and some other cameras that share the same same microcomputer core. (see) Each model just gets different CCD, memory, lens, packaging. Get one of the programs and give it a whirl. If you are interested in programming there is source code available here and links to other programmer's pages.

Contents

For the programmer For the user
Command Set A lexical view of the command set. All the most useful commands are known. There are still a few missing pieces for those good at puzzles.

Programmer's Guide Okay you understand the commands, but what about syntax. Tips for programs.

Links for other platforms and operating systems.

Programs to control the camera A few links to actual programs written by others and myself.

On the Application Examples page I have collected a few real life uses for your camera (other than just taking pictures).

How it's done

Plan A. Ask Olympus. For some reason the command protocols are being kept under wraps. Some people have copies, but are silenced under NDA. Why all this secrecy?
<speculation>There is reason to believe that one company has written the firmware for a bunch of cameras. Could it be http://www.sierraimaging.com/,or maybe http://www.imagesw.com/? This was rooted from the Twain driver. Could this firmware company have written all the code for the first customer, and then resold later to other companies with minor rework. To keep all the parties from finding out they bought the same stuff, everyone's license says you can't disclose this. That way Olympus doesn't find out that their camera is the same as Epson's? </speculation>
So if you want to develop and distribute source code, its off the the clean room approach ...

Plan 2. Decode the byte stream. Using the standard program supplied with the camera, one can look at what traffic goes back and forth. It's a puzzle, but the pattern quickly reveals itself.

A great tool for hooking into COM port traffic is ComLite32 which captures the data. It is extremely useful in that it shows the direction and timing of data. Go get a copy of this tool.

To explore the command set, just start the tool and the Olympus control program. As you activate various functions watch the data being sent back and forth. Now start looking for the patterns. The Olympus command set is not pretty. There are almost no clear text commands, so you will have no ability to type commands from a terminal program.


Send comments to Jim