Pipetting bot - GOSH ColDev Round 2 - Updates

Dear community!

This is a thread for updates on the “pipetting bot” lab automation project, funded by GOSH’s CDP.

Here is it’s current status: 2023/01/18

A contest is going on to name the thing. Participants may post proposals below, and become eligible for pizza awards. For reference, they must surpass TIPMASTER 2000 and MAZINGER in overall coolness.

Collaborations for round 2

In this opportunity, collaborators supported by the CDP will be working on two fronts:

These tasks correspond to by Bruno Serrentino (mechanical engineer), and Fiqus (software coop.), respectively.

Bonus collabs!

Some very nice collaborations are growing around lab automation in general:

Thanks to Jeremy, Scott and Homer (FZ) and Rick (PLR) for the openness and the work so far.

Plan deviations

A lot of effort has gone into planning an integration with Opentrons’ software stack.

After many emails with several devs, we found that working with PLR is the better option for short-term interoperability. Which means that using OT’s protocol designer and/or protocols with out bot is on hold.

However, it does not mean that this and other layers for interops are out of the picture. Quite the contrary!

Eye candy

With some initial but crucial help from Jubilee’s lab automation folks, I eventually got Klipper doing everything the project needs to do some pipettin’ (and maybe some yeast paintings on ágar, @laola).

Here is a video, bonus points if you find where GOSH’s logo appears :gosh:

Note: to get the project where it’s at, I spent a demented amount of effort spelunking the source of this not-quite-a-CNC firmware. Luckily for my sanity, it paid off. The web apps for CNC control are sick.


As usual, all sources are available here: pipettin-bot · GitLab


Small update: The speed and acceleration have been significantly increased!

Here is a short demo of the first attempt to pipette a PCR protocol, with a few primer combinations.

The bands in the gel are not the ones I expected, just like human pipetting (probably due to some issues with minimum tube volume and the PCR auto-planner and/or the PCR itself).

Very cool. I am wondering is it necessary to build the entire hardware from scratch rather than reusing an existing 3D printers hardware? Like HistoEnder or similar. Also, are you already using Klipper?

1 Like

Hello Chinna, that is an interesting question, thanks!

Reusing a 3D-printer would have been ideal, but there are a few issues (outlined below). An alternative would be to reuse a generic hobby CNC machine, which would be trivial.

Yes, It is already using Klipper! :partying_face:

Moving bed

The main issue with the usual 3D-printer is that the Y-axis is implemented with a moving bed.

Because I wanted to implement tool-changing, a moving bed became impractical (as the axis would have had to deal with a lot of inertia from the lab objects, and from the parked tools).

The 3D-printer we could have used is Jubilee, a tool-changing 3D printer. Although this would have raised the cost (several-fold) with no gain in speed or functionality.

Work area

Regular 3D-printers have a rather small print area, which would accommodate only a few objects.


Building it from scratch was part of the learning process, and became necessary for the reasons above.

All in all, building the CNC frame is rather simple. Once the [widely available and cheap] parts are sourced or printed, it only takes a couple hours to assemble. There is nothing particularly special about it: belts for XY and a screw for Z. Wiring the electronics and setting up the software takes a day or so.

Some hours are required to carry out the spatial calibrations of the tools and objects, and the gravimetric calibration of the lab the pipettes (which will be largely automated by a suitable protocol). But this is required for any robot, beyond which CNC frame supports it.

If someone wanted to use this project on a 3D printer, the only possible obstacle is on adapting the tool-changer to the printers carriage. This should be easy, because the interface of the tool-changer is as simple as possible.

Thanks to Klipper, the project is [popular-]controller-agnostic.

I was not familiar with the HistoEnder! I’ll add it to my list :slight_smile:


1 Like

Hi Naikymen,

Thanks for your reply. Sorry for the late response. I understand your reasons. I am also thinking what would be a simple may be one pipette robot that can be quickly doable by repurposing an existing 3D-printer. I guess if we remove the criteria of changing the pipettes, we can use the existing 3D-printers right?

Indeed! And it would be great as well.

Having a single tool also makes a machine simpler / more specialized, and this can be an advantage. Lab equipment is usually single-purpose, it is what people are used to, and it simplifies usage.

The problem with pipetting is that you’ll only get one volume range. Using a p200 to transfer less than 20 uL is not straightforward, and larger volumes will take a lot more time (think 5 moves for 1000 uL).

If you focus on a particular kind of assay (like serial dilution, preparing aliquots, colony-picking → @jeremycahill) then a 3D-printer’s frame and a tool adapter is all that is needed.

Do you have a particular application in mind?

Let me know if you’d like a collaborator for that project :slight_smile: I’d be glad to participate. Fitting my old MK3 with a pipette would be really cool (and it has been done).

1 Like

Hi Naikymen,

Yes, I am interested in fitting a pipette to a ender working seemlessely with Ender3 printer. Can we set up a meeting in the coming weeks to discuss this further.

P.S: See the HistoEnder below if you haven’t seen already.


1 Like

2023-03-01: Lots of updates :partying_face:

Klipper software stack

Controller interoperability for pipetting bots is now a reallity :slight_smile:

After an insane amount of code spelunking, the Klipper fork is now working for pipetting protocols (and more general CNC really).

Also, by reurposing the Klipper-Moonraker-Mainsail stack, the robot can be used with a very slick interface, from desktop and mobile. Pre-defined protocols can be executed directly from this interface.

New collaborations:

  • A small new collaboration appeared with a Canadian researcher, working on very similar stuff. They used our bot’s fork of the Klipper firmware on their own syringe-bot. More info at Jubilee’s Discord lab-automation channel.
  • Just had a great chat with @scientist! We will probably collaborate on making assembly instructions for a single-pipette bot out of an Ender 3D.

Custom pipettes

The pipette seals oddysey is coming to a close.

@bserrentino is preparing the first manufacturable prototype and contacting seal suppliers.

We learnt a lot about mechanical seals for “rods”, and are about to purchase PTFE seals for a 6 mm shaft (actually a regular dowel pin, thanks to @Harold for the contribution).

Help needed: If anyone knows where to purchase these hat-like PTFE seals in bulk, please let us know. The alternatives from SKF, Parker or Axia are 5 to 10 times more expensive. :pray:

The multi-tip-holder / shaft part is being resin-printed on TECSCI by Martín and @gcorthey as I type.


  • The Klipper backend for PLR was on hold, until the Klipper setup was complete. I will probably use Moonraker (which is fully web-capable) instead of the bare Klipper RPC interface.
  • It is possible to carry out a reduced set of tasks (see below), which would produce a minimal bridge from OT’s protocol designer to ours. We can use the JSON output from their open source protocol designer (https://designer.opentrons.com/) to produce a workspace and GCODE to run in any robot.


The GUI is being migrated to ReactJS, by Fiqus Coop., which will make it much more hackable and maintainable.

It is cool to see others tinkering with the GUI.

In action

We’ve started using the robot for simple protocols (preparing loading-buffer drops, colony PCR preps, general aliquoting).

A new round of gravimetric calibrations was needed.

A “mix” protocol step was implemented.

Next update…

By the next update we hope to have:

  • A working ReactJS GUI for designing protocols.
  • A working prototype for our custom micropipette.

Stuff on hold:

  • Collaboration with the Friendzymes colony-picker is rather slowly.

Other stuff in progress (SIP):

  • New logos and visual identity.
  • Well-plate incubator and shaker.
  • PLR backend for Klipper.
  • OT protocol parser for the Pipetting Bot.
1 Like

Amazing progress!

If anyone knows where to purchase these hat-like PTFE seals in bulk, please let us know.

Those are called flanged sleeve bearings.

The options in the US are limited for metric but Grainger has PTFE-lined steel for $4.25:

and McMaster has better options for more money:

Those prices are waaaay too high but this is just a bit too specialty for amazon/ebay given that it needs to specifically be PTFE and 6 mm. There are plenty of suppliers on alibaba.com though so I’d just go talk to a few of those.

Please marry me.

Terminology has been one of the greatest obstacles so far, seriously.

I’ll have a look. There are a few other sizes of dowel pin to choose from.

Thanks a lot Juul :robot: :white_heart:

1 Like

2023-05-02: The end is nigh

Actually, TECSCI secured further funding from the state, and work will continue for 6 more months (approximately) on all fronts.

Our final report is due May 15th, only two weeks left to wrap up. :timer_clock:

Pipettin’ GUI :pencil2:

The new repository is over here: pipettin-bot / Pipettin-GUI · GitLab

The team behind the the new ReactJS web interface is doing really well. :partying_face: The last work sprint will end on May 24th (a week late). This is how it’s looking so far:

The “happy path” is almost ready for tests. Only a few components are missing to get the protocol steps panel working.

Hopefully the new GUI will start operating the robot next week, starting with the only really important button: the emergency stop. :boom:

Working with a team led by professional developers is entirely different thing… We’ve certainly learnt a lot from this collaboration. Such an agile flow:

Micropipettes :droplet:

After a lot of mechanical design discussions and part purchasing with @bserrentino, we’re nearing the first assembled prototype.

The design is our first prototype. It takes up lots of space, and is quite heavy, but it is a good base to get piston-seal pair working.

We 3D-printed the “tip holders” with a resin printer, and they look cool (pic below). We’re not sure if it will beak when ejecting tips, so next batch will be fabricated using a very nice CNC lathe just in case.

There is also a version using o-rings for easier sealing (exactly what multi-channel micropipettes have).

These first flanged sleeve bearings (or “hats”) came out of TECSCI’s lathe last week. They are made from slippery but durable PTFE (doped with varying amounts of glass, carbon, and probably the manufacturer’s proprietary fairy dust).

A chemically resistant o-ring will sit on top. When compressed by the rest of the assembbly it will compress the PTFE “hat” which will in turn press against the pipette’s plunger/piston, sealing it.

From the previous update

By now we hoped to have:

  • A working ReactJS GUI for designing protocols: 85% complete.
  • A working prototype for our custom micropipette: 80% complete.

Stuff not happening:

Other stuff in progress (SIP), not funded by the CDP:

Next update…

Probably on May 15th, along with the final report for GOSH/CDP.

By the next update we hope to have:

  • A 100% complete ReactJS GUI for designing protocols.
  • A 100% complete prototype for our custom micropipette.
  • Working PLR backend (and “deck”) for the pipettin-bot.

Cheers! :slight_smile: