Turner Lab


OpenStage is low cost, open source, sub-micron positioning system for microscope stages developed in 2013 here at the Turner lab. Stepper motors are coupled to micrometer-actuated translation stages via flexible shafts (like this [.jpg]). The motors are driven by a stand-alone Arduino-based controller. The OpenStage controller accepts both manual input (via a PlayStation3 gamepad) and programmatic control (via a serial or USB connection). The gamepad provides precise control of speed and direction simultaneously in up to four axes. In addition, multiple locations in the specimen can be rapidly stored and then returned to at will.


The OpenStage controller and hardware are described in detail in our PLoS ONE publication. In that manuscript we show that our system has absolute unidirectional positioning accuracy and repeatability better than 0.1 μm in Z. Bidirectional positioning accuracy is in the range of 0.5 μm to 0.75 μm in Z. These values compare favorably to many commercial actuators costing several times as much as our system. Positioning repeatability in X and Y is better than 1 μm.

With the hardware described in our paper, minimum incremental motion is 0.04 μm in Z and 0.1 μm in X and Y. Finer accuracy would be possible with only a modest increase in price. However, we more typically run the stage with larger minimum step sizes (0.3 μm in Z and 0.79 μm in X and Y) in order to obtain higher speeds. We run the Z stage at a maximum speed of 1.2 mm/s and XY at a speed of 1.8 mm/s. Higher speeds are possible by selecting different motors or gears. The stage can move as slowly as desired.


Hardware costs to drive the translation stages are between 100 and 400 USD per axis (as of 2014). Translation stages begin at 250 USD per axis (including micrometer). The necessary electronics (including power supplies, and all the little odds and ends) are under 500 USD. The total cost for motorizing our microscope (i.e. excluding breadboards and linear translators) is under 1000 USD.


This movie [avi] illustrates the positioning repeatability of our stage. The movie shows two views of a pollen grain (dia. about 30 μm). The movie was constructed by cycling the objective back and forth 100 times between two depths spaced 12 μm apart. All frames from the same depth were aggregated. The high repeatability of the system means that the pollen grain appears stationary. Each frame of the movie is the mean of 8 sub-frames, which were acquired at 7 FPS. In this movie [avi] we demonstrate the ability of the system to finely focus in Z using the PlayStation3 controller. The user has excellent fine control over the objective. Although some motion artifacts are visible, remember that the field of view is about 30 μm on a side so the absolute magnitude of the artifacts is very small. The frame rate of both the movie and the acquisition is 7 FPS. For more movies and QuickTime versions see here.


Building OpenStage
Anyone is free to build OpenStage. The latest version of the firmware and hardware are described on the OpenStage GitHub page. There have been enhancements since the paper was published. All you'll need to build the system are basic soldering skills and a willingness to spend some time reading about what you're building. Our paper and the information in the Github repository should be sufficient. Basic familiarity with how to upload code to an Arduino is desirable. Knowledge of C is not required. A lot of the build information is also duplicated on the Github Wiki. The critical thing is ensuring that stepper motors are being correctly driven and operating within their limits. If you get this wrong the stage may be grossly inaccurate. Read the paper and Github stuff as these describe what you need to look for to get the system working accurately. You'll waste time if you try to re-invent the wheel without first reading the docs.