Let's Make Robots!

XY Table

Moves over a microwell plate
XY_Table.zip1.54 KB

I had my brother over for Christmas and as he is a scientist and I have done some work for him earlier, he asked me if I could build him an XY table to navigate over a microwell plate http://en.wikipedia.org/wiki/Microtiter_plate 

Everything seems easy late at night after some beer, and after all, he gave me this great 3D printer. So after a quick specification I started designing it in Google Sketchup. As most of the parts are from eBay and shipped out of China the project had a slow progress in the start but was quit fun once I got all my parts.

The parts I got from eBay were;

  • LM6UU 6mm Linear Ball Bearing
  • Step Motor DC 28BYJ-48 with ULN2003 Driver Board
  • T5 Timing Belt for RepRap Prusa Mendel

I’m not sure what the XY table will be used for but I have built in a bracket system so different devices can be mounted. For testing I had this Micropump mp6 and controller and it is hooked up to the Arduino. I’ll probably also add a bracket for a 9g servo so one can have some probes going in to the wells.

One requirement was to have it mounted on a clear acrylic plate so that one could add light from below (the protected film hasn’t been removed yet).

As driving two steppers from an Arduino would use lots of IO pins I added a shift register on a proto board so that the steppers only uses two pins (clock and data). One added bonus of using the shift register is that one can run both steppers at the same time.

Also on the proto board I added a trim pot and a extra tack switch.  These are used to run the pump both for priming and to measure the volume it pumps out. The volume is controlled by the trim pot.
Note. The trim pot is not hooked up to the pump. It only gives an analog value on A0 that is translated to the time the pump is on. So the pot can be used for something else on another probe. The same goes for the switches, they can be used for different things in the Arduino sketch.

All none essential switches are connected with jumpers so he can mix it up and change what he plugs in to the Arduino. I also avoided hardwiring the SPI as he might need an SD card later on. 

All in all a great project and I had great fun building it.

Here are some more pictures

The Sketchup model


From the build

 And some detail from the complete XY table

Here you can see the Micropump mp6 in the front and the controller on a small PCB

The bracket system

It uses about 2,4 sec. to address each well to the run for 96 wells takes less than 4 min.

The protoboard

Update 22/9-2012

XY-table Mark II

This summer I had another request for an XY-table. First I was a bit reluctant as building the same thing twice sounded a bit boring. But as I wasn’t completely satisfied with the first version this gave me an opportunity to build a better one and correct some of my first mistakes.

The first thing was to find some different stepper motors as the one I used is absolutely crap. So I went for these small NEMA-14 motors from Phidgets.com http://www.phidgets.com/products.php?category=23&product_id=3301_0
As these are different motors than the one I originally used I had to redesign some parts of the XY-table to fit these motors.

I also wanted to make my own driver shield for the Arduino so that I could build more if there should come along another request. That was really the fun part of this build and the first time that I used SMD components on my board.

All in all a fun build and probably the first time that I’m actually making some money from my hobby.
Some pictures from the new version.

This is the stepper driver board I made. So if anyone is interested I still have a couple left. The board runs two stepper motors via 3 Arduino lines leaving lots of the IO pins available for other stuff.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Good day, Mr. Andersen!

I am a chemist and I decided to construct such XY table in order to use it in auto-sampling for kinetic measurements.It was fortunate to find your creation. I am greatly impressed by it! I've read your instruction thoroughly (here and at Thingiverse) but I haven't found .stl files for new NEMA 14 motors which you are using in 2.0 version. Would you be so kind to share these files?

Sincerely yours, Ilia Kochetygov.

Nikolaev Institute of Inorganic Chemistry, Novosibirsk, Russia.


If you send me a PM with your email I can send you the complete Sketchup file and you can extract all the .stl files from that.


I am a scientist in need of an addressable XY-table for microtiter plates when - voilá - I stumbled across your project. This is great stuff! Being a chemist I don't know shit about electronics but I did buy an Arduino Uno before to play around with. I am always one for learning new things. I need the table so that I can attach an ultrasonic level sensor to it to see where in my microtiter plate too much fluid has evaporated and needs to be replaced. Much to my surprise, there is no commercially available device that does this.

Geir, do you still have a board of the 2nd prototype you built and if so, would you be willing to part with it? I could buy these Phidget motors, but I already have two Canon stepper motors lying around (labelled CN38-21702, apparently with controller unit). Could I be using these as well? As I said, I am shamefully ignorant about electronics, so please be patient with me.

Thanks and I'd love to hear from you!

Yes, I still have some PCB’s available. If your need one, please contact me via ‘contact’ on my profile.
Regards Geir

I think I like your NEMA17 adaptations more than mine. Reprinting now!  :)

Thank you Chris. You might also notice that I don’t use the spring as a belt tensioner on this version. The spring did not work that well with these fast steppers. So I used cable ties and that worked much better.

I like your branding 'dead bug prototypes' . But instead of the roach for an image you could use an upside down ic, which is what they call it when you mount an ic upside down on a board. But I think you chose that name because you knew that already.
Just thinking some people might be creeped out by the cockroach image.
I'm wondering which ic you are using for the steppers as well and have you found any limits to speed or other issues. I remember an LMR member here going to great lengths to build stepper drivers, but your setup looks so simple.

Hi Merser and thank you for your comments.
Yes I know about the upside down IC and the name reflects that, and stomping out bugs in my design. I don’t see myself getting rich or drawing in a crowd by this brand. But I felt like adding some sort of brand to my work. (Probably some sort of ego thing….)

Anyway. The IC’s I’m using is a M74HC595B1R shift register and two SN75441ONE  H-bridge drivers. Nothing fancy but it works very well.


I am in the middle of my Senior Design project here at Georgia Tech and am integrating a Bartels-Mikrotechnik mp-6 into my design.  could you share with me how you controlled the micropump with the arduino?



As I don’t have the pump any more this is by memory. But I used the mp6-OEM driver to control the pump. As I recall the driver was set up for full flow and I just switched it on and off for a period based on a setting from a potentiometer.
Best of luck with your project.