Linux Utilities for Downloading Images off of a Kodak Motion Corder Analyzer

kmc_utils is a small package of utilities for downloading images off of a Monochrome Kodak Motion Corder Analyzer or Color Kodak Motion Corder Analyzer fast digital camera. At the time of writing, this camera is a relatively inexpensive way to capture high speed (up to 10,000 fps) digital video(starting around $25,000). The stored images can be downloaded over a SCSI bus to a PC. Also, a serial port allows remote control of the camera through a computer. Unfortunately, the only platform supported by Kodak is Windows. kmc_read allows one to download images across the SCSI bus to a Linux machine. kmc_control allows one to control the camera using serial communication. kmc_remote provides a graphical interface to the kmc_serial library for remote control of a KMC using GNOME/Gtk+. While I am focusing on developing kmc_utils for Linux, it should not be difficult to modify this for other Unixes.

SourceForge Project Page:
kmc_utils has a SourceForge project page.

libkmc(C library)C0.3.2Coding - most functionality complete
kmc_readCommand lineC0.3.2Coding - most functionality complete
kmc_viewGTK/GNOMEPerl/GTK0.0.9Abandoned - it was working, but was slow at playing video
kmc_controlCommand lineC0.3.2Coding - most functionality complete
kmc_remoteGTK/GNOMEPerl/GTK0.1.0Coding - most functionality complete

Kodak is kind enough to provide the SCSI and serial protocols for communicating with the Kodak Motion Corder Analyzers. They are released under terms which allow their redistribution, so here are their descriptions of the SCSI protocol and serial protocol.

kmc_read man page
kmc_control man page

kmc_view: main, snapshot window, recording window
kmc_remote: main, preferences

Download here

09-05-00The old machine which was hosting the kmc_utils web page was retired, so I moved this page to SourceForge. Its project page is here. I have not set up all the bells and whistles yet, but the HTML and FTP is up, so you can grab the latest package and run it.
12-14-99I have not worked on kmc_utils in a couple months and do not know if I will continue to develop it, aside from simple maintenance and bug fixing. (ie. It does everything I need it to do for my purposes and works pretty reliably for me.) If anybody would like take over development of kmc_utils, please email me: Please report any bugs to me.
09-28-99kmc_remote 0.1.0 released. We finally got kmc_remote to a point where we can release at 0.1.0. It is very useful, and I would recommend using it over pushing the buttons on the camera, even if the computer and the camera are next to each other, as it reduces most things one would want to do to a single mouse click. It should have support for all camera models as well as both PAL and NTSC support. It requires GNOME/Gtk+, but everybody running Linux should give GNOME a try anyway because it is a very nice desktop. If you want to run another desktop, kmc_remote should run under any desktop provided you have the GNOME/Gtk+ libraries installed( I also added a couple screenshots above.
09-01-99Version 0.3.2 released. This includes quite a few bug fixes. The main new feature is time lapse video in random trigger mode. Yes, I know these are high speed cameras, but sometimes it is nice to use them for time lapse too. In time lapse mode one can trigger at 10fps or slower (limited by camera response time). I also added support for PAL video. Now kmc_utils should work on every KMC in existance I think. It should also auto-detect if you have an old ROM and compensate for the BIOS error in some versions. kmc_remote is looking pretty good, and may be ready for a first release soon.
08-25-99It has come to my attention that some of the serial commands vary from one KMC model to another. kmc_control should be working fairly well on SR-Ultra's (what I have) in the US, but some commands(esp. recording rates) may not work on other models or foreign models. I am still looking for documentation on these models.
08-23-99Version 0.3.1 released. kmc_control is now in pretty decent shape. It now allows one to automagically set the record rate and display size (kmc_control --sr=250 --sd=256x240). The device setting is also fixed. Please note there was a bug in early ROM versions which messes up record rate queries, so if you have a new ROM version, you should comment out the appropriate line in the Makefile. (ie. RPM users may need to edit the src RPM and rebuild or use the tarball.) The next version will (hopefully) autodetect the ROM version. For right now, I don't know which ROM versions are good and which are bad. I have started on kmc_remote, the GUI frontend to kmc_control. I am using GLADE, the GUI Gtk/GNOME GUI-builder. It is great. I built the GUI interface with autoconf, etc. and got it to compile in only an hour or two with little experience. Now I just need to plug in the library calls and kmc_remote will come to life.
08-19-99I finally made time to merge Dan's serial code into kmc_utils. It is looking very nice, but in need of much more work. Check out the man pages above (kmc_control) to see the layout. Note that some of the stuff in the man pages isn't yet implemented. I put a snapshot in the download directory (version 0.3.0). Feel free to play with it, but this is more of a snapshot than a release, so expect some things to not work at all. If you just want to push buttons and query the device settings, 0.3.0 is for you. Setting variables and a GUI will come later.
07-31-99Nothing new has happened lately, as Dan and I are both keeping busy with our research. If anybody really wants the serial code, a bug fix, or something, give me an email and I'll find some spare time. Otherwise it may be a little while until we get back to work on this.
05-14-99Version 0.2.6 released. This release has kmc_speedtest, a quickly thrown together app to determine downloading speed. It also contains kmc_play, a Gtk+ app to display video directly from the camera. Performance is not very good, nor is the current quality of the display. However, it is useful for checking out what is on the camera so some people may want to use it as is. If you are installing from RPM and don't have Gtk+, you will have to get it ( or else use "--nodeps" and just not use kmc_play.
05-11-99Version 0.2.5 released. Several bugs for saving and exporting images from color kmc's were fixed.
05-10-99Dan Blair has made substantial progress on kmc_control. It currently can query the kmc and press the control buttons. Thus, a user can completely control the camera remotely. The code should be ready for a new release(0.2.5) soon. After that, higher level commands can be written which will make computer control much easier and convenient than using the camera control pad. Many thanks, Dan:)
04-19-990.2.4 released. Made several changes to make installation easier and parts of the documentation clearer. If you had any trouble installing 0.2.3, grab 0.2.4. Now that most of the important SCSI stuff is implemented, it is time to bang on it a bit and see how well it works. Drop me an email and tell me how it is working for you and what your system configuration is so I can add it to my table or else fix it.
04-17-99Finished color interpolation. I'm using a different algorithm from Kodak for now. Grab 0.2.3 from the download page.
04-13-99Did some work on improving support for color KMC's. Getting closer. Released 0.2.2 which is really just a development version. Oh well. 0.2.3 should be here soon which will be more usable for color KMC's. Also started releasing RPM's of each release.
04-08-99I was planning on waiting until kmc_utils was more feature-rich and tested before releasing it, but today I decided to release the current production version. "Release early, release often", right. So now you can find version 0.2.0 in the "download" directory. Feel free to fix bugs, add features, whatever. If it works for you( or doesn't) give me an email and tell what your configuration is so I can add it to our table. Enjoy.
03-28-99Dan Blair has joined in the effort. He has a color KMC, so now both color and monochrome models are supported. Color support is not complete yet, but is definitely functional. Dan has also begun work on the serial interface. Given the pathetic rate I've been working on kmc_utils, development will probably quadruple with Dan on board. As for kmc_view, it looks like I will need to write the Perl XS for GdkRgb to put in gnome-perl. If anybody with experience in Perl XS wants to do this for me, I'll send you a pizza. Get gnome-perl from
01-30-99Version 0.1.5. Put in lots of nasty case handling in kmc_read to give the user lots of control over how the frames are numbered, both when indicating which frames to save as well as when numbering the saved images. See the updated man pages above if this is unclear. kmc_read is looking good. With a little bit of testing it may soon be time to move back to work on kmc_view or even perhaps on the serial stuff:)
01-17-99Things have slowed down since I've been busy doing other things lately. Soon kmc_read will have most of the features I wanted (except support for color KMC's and tiff's). I have put kmc_view on hold since I have a few problems with it which I suspect are inhereted from v0.4 of perl-gtk. The new version should be out any day now, about the time I have kmc_read in a good state. I finally wrote a man page for kmc_read and linked the html version above.
12-31-98kmc_view was displaying only a few frames/second due to indiscriminate dependence upon backquotes which called kmc_read. Thus, I have rewritten much of the C code and broken it up into a library (libkmc) and a command-line routine (kmc_read). In the process I was able to clean it up a lot and add new functionality. It appears to be running fine, but I am back to talking with my JAZ drive and generating fake images since I don't have a KMC with me over the holidays. It could still use some more cleaning (too many global variables!) and a bit more functionality. Support for tiff's and color cameras is still missing. (Anybody with a color KMC want to test out the code or lend me their camera?) Expect a pretty fast video display in kmc_view soon:)
12-14-98I finally received a loaner camera about a week ago. The command line utility, kmc_read.c, now has basic functionality. It can query the camera, and save frames as pgm's. It appears to work okay so far. I saved a full sequence of ~5,000 256x240 pixel images (~300MB) to an IDE drive in less than 10 minutes. The Perl/Gtk GUI, kmc_view, is very close to functional. Both programs will need plenty of work in terms of cleaning up and making more robust and feature-rich.
11-05-98Perl/GTK is wonderful. No wonder GTK is quickly becoming the new standard toolkit. I scrapped my original design for kmc_view a couple days ago and have made a lot of progress towards a much nicer and slicker design. Hope it will be screenshot-worthy soon.
10-27-98Starting work on kmc_view, using Perl/GTK. Almost finished the querying part which merely uses kmc_read to probe the # frames in memory, frame size, etc., and then displays it in the GUI.
10-25-98Starting work on kmc_read. The basic querying of the device, eg. # frames, frame size, frame rate, etc., is mostly done. For now I have to test it by talking to my JAZ drive since I don't have the camera yet:(

If you are using kmc_utils, I would be interested to know what you are using it for and how it works for you. Want to help? Research keeps me very busy so I welcome any contributions:) Please send feedback, suggestions, and patches to