Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.

This is code I use to control my holographic setup to image through multimode fibers.

Photography of the holographic multimode fiber imaging system.

A significant part is a wrapper for the Aravis library to read out multiple GigE Vision cameras. The file dependencies are described in arv.asd. I chose to use Clozure Common Lisp for this library because it comes with a foreign function generator that can parse C header files. To simplify development I added syntax completion for foreign functions to slime.

Realtime control is done with an Arduino Due. To ease development (in particular I don't like the long waiting time when uploading new code to the Arduino) I ported femtolisp to this Arduino. This is sufficient to generate the two DAC channels for my XY-scanning mirror and a bunch of digital trigger signals for the cameras and a shutter. See arduino-femtolisp/. From Clozure Common Lisp I talk to the Arduino using the code in arduino-serial-ccl/.

My main experiment is controlled from test.lisp. I also use the binding for FFTW to do Fourier transforms.

Copyright (c) 2014 Martin Kielhorn Licensing: GPL v2


(Still very primitive) Port of FemtoLisp to Arduino Due. A presentation on Google Docs is on . I suggest you have a look at this alternative:






No releases published


No packages published