Category Archives: Open Source

3D Printing in the Lab - Will Lab Hardware Follow Software into Open-Source?

Today I read the article "Building Research Equipment with Free, Open-Source Hardware" by Joshua Pearce from a recent Science Perspectives section.  I'd like to share some thoughts on the article as I thought it introduced what may be the next "want" item in many labs.

In the modern scientific lab there is a large assortment of sophisticated hardware necessary to conduct increasingly complex research.  Generally scientific hardware is some combination of turn-key or off the shelf equipment and equipment designed and built in house.  In recent years laboratory software has progressively become part of the free and open-source software (FOSS) movement; hardware is now following the same trend with the advent of open-source 3D printers from the hobbyist community.

Open-source hardware became popular in the late 90’s with the basic stamp “board of education” microcontroller circuit boards, but the Arduino has taken over the hobby market with its $30 price tag.  Arduino has a number of modules, or shields as they are called, ready built with significant code libraries available.  With the Arduino circuit boards scientists can perform basic hardware control with digital and analog outputs in addition to basic analog-to-digital conversion.  

The RepRap open-source 3D printer is driven by the Arduino and can be constructed for <$1000.  The machine prints the parts required to make another RepRap printer, so building a machine is approached by entering the RepRap community with a parts request.  Users also post 3D designs on Thingiverse for download and printing by anyone.  A sufficient amount of laboratory equipment from test tube racks and filter wheels to Dremel tool adapters are already online.  

Printing laboratory equipment may not only reduce the cost of research, but allow the same flexibility, innovation, and rapid development cycle enjoyed by scientific software.  Being able to create a custom bracket, holder, mold, or sample jig could be advantageous to almost any laboratory and allow research to be conducted more efficiently with less focus on coordinating development with engineers at commercial manufacturers.  The open-source nature of the parts library will reduce duplication of work between those in a common field of research and allow cross-lab standardization of sample preparation techniques.  

There are limitations to what can be easily constructed in the lab, such as 3D printing with metal.  The technology to do this exists, but is too complex and expensive at the present time for individual applications.  While working at Oak Ridge National Laboratory I got the opportunity to see 3D printing with titanium.  The video below is a titanium ball... bouncing. (Apologies for the portrait video and quality, this was taken several years ago with an early iPhone.)

Like all community projects, the RepRap is being updated to have greater capabilities.  According to the project website a major milestone will be printing with electrical conductors to manufacture rapid prototype circuit boards without milling away copper clad board material.  

Just as sometimes labs must use commercial software, it is likewise not expected that all lab hardware will become open source.  Some tolerances are too tight for the parts to be constructed by simple printers and some materials are not practical to print in the lab.  With all this in mind it is worthwhile to monitor the progress of open-source hardware such as the RepRap, Arduino, and the new RaspberryPi single board computer.  These tools may provide teaching support also as controlling and displaying data from classroom demonstrations is easier than ever and does not require the resolution/precision of research grade instruments.

Progress on Ultrasonic Mapper

My last post was on the idea, brainstorming, and basic setup of a ultrasonic mapper intended for cave passages.  This post is an update on the prototype that is running now and will hopefully be tested relatively soon when a bit more hardware mounting has been done.

Attached are several photos of the current state of the system, a simple plexiglass mount was constructed to attach the servo and sounder to an old tripod.  This mount will be stronger on a final version and detachable from the tripod.  This is just a proof of concept prototype.

Since servos only rotate 180 degrees the final model will use two sounders opposed to each other to collect a full 360 degree profile.  This means a similar connector (5-pin mic style) will be used with two units mounted in one case, or it may be possible to go with a more sophisticated sounder.  Keep in mind that the point of the whole project is to construct the profiler on a student shoestring budget.  

Below is an 'image' collected.  The vertical line on the right side is the back of an office chair and the feature on the left is the back and seat of a couch.  This was scanned rather slowly over about 40 seconds with many pings averaged out to reduce error.

Since I collected these images I have implemented an intelligent algorithm that makes a quick three ping assessment and based upon the results it will move to the next position or ping up to an additional fifty times to reduce the uncertainty.

The next step will be to make an intelligent scanning rate method that will scan with lower resolution over smooth surfaces and slow down over surface features.  Hopefully the whole scan can be a 15-30 second ordeal allowing quick mapping of passages.

The Vuvuzela: An Annoying Horn but a Fun Filter Project!

As we've watched the world cup matches over the past weeks everyone has been annoyed by the droning hum of the vuvuzela.  Everyone in the crowd blowing on one of these pipes makes life for our ears unpleasant.  What can you do though?

While at SciPy 2010 this week we saw a tutorial about signals with Python.  Another student and I talked about filtering out the drone and after several late nights of hacking it worked! The principle is simple, block the frequency of the horn and it's harmonics.  To do this we use a notch filter that rejects the signal from a certain frequency range.

The code ( is available and is a short script to read in, filter, display, and write out the files.  Below I show an example of the signal and power spectral density before filtering (left) and after filtering (right).  There are also links to the audio files.  I found three example files and filtered them with three different filter widths (5,10,25 Hz). All runs are available at , but that link will disappear and I'll then post a more permanent page after some tweaking with the project.  Be sure to listen to example 3 before and after the 5Hz width filter.