LabBot - Toolchain


LabBot is a 3D printer configured to do liquid handling and imaging techniques that are commonly run by conventional laboratory automation.

LabBot is an open platform designed to support innovative science.

The tools used for assemblying methods are open source.
Duet3D - Modular, scaleable open source motion controller

Reprap electronics is designed to be sufficiently modular that it can be modified to control lab automation processes. It also excellent support in its wiki to explain how it can be modified consisting of a large user group. This board makes it so much easier to synchronize with other devices (like Raspberry Pis). For example it can send messages via http and telnet which makes scheduling a breeze. Also another great thing about this tool is that you can easily program it or monitor lab automation processes using its web interface. These boards are cheap and each to get which makes it really great too. Its both fun and empowering to be able to modify to work with lab automation devices (like pumps and liquid level sensors). It should be a standard way to do lab automation.
OpenSCAD - Code driven CAD design software

The mechanical components were designed in OpenSCAD which is a code driven CAD design tool. This makes it parametric which is convenient to modify, especially since this CAD design program can be run on MacOS, Windows and Linux computers. Another nice thing is that many parts designed in OpenSCAD are shared in Thingiverse. A part of support to Labbot3D customers is to work with them in providing modules that they need to modify and refine the instrument (or even perhaps to facilitate more transparent experimental data archiving). Since most of the parts designed using this tool are 3D printed, the parts are easy to replicate at low cost. Another nice feature with OpenSCAD is that it has its own javascript library, OpenJSCAD, and its possible to display shapes through browsers.

Raspberry Pi - ARM Computer, Ubuntu OS, Python and PHP programming
LabBot-Duet-Pi runs Raspberry Pis because they are small inexpensive computers that make it very easy to create and support robotics. It is a low power, WIFI embeded, small form factor device that even has a GPIO interface. It runs off a removeable SD card and has a port for a small inexpensive camera. There is a rich community based ecosystem with lots of documentation on how to use and a wide variety of complimentary products and services.

PHP is a commonly used scripting language for web programming that is well supported in working with the Apache HTTP server and on Ubuntu. The source code is open and sufficiently well documented to enable further modification and refinement. Since there are many PHP developers (given it being a common web page programming language) there are many options for further support.

Like PHP, Python is also a widely used scripting language with a very large user base that continually contribute libraries to the community. From machine learning and artificial intelligence tools to web servers and serial interface connections, its an ideal programming environment for controlling robotics. In addition to scheduling, Python is also used for image processing and data collection. For image processing, pixels are enumerated and statistically analyzed (using tools like Numpy). For data display and image annotation, ProcessingJS is used which is a powerful javascript graphics tool based on Processing.