Pipetting bot - GOSH ColDev Round 1 - Updates

Dear community,

From now on we’ll be using this thread to post project updates.

As kindly reminded by @biomakers_lab in their post, this is part of our responsibilities towards the GOSH 2022 Collaborative Development Program.

Link to the project presentation: Pipetting bot - GOSH ColDev Round 1 - Presentation

Activities summary

So far so good :slight_smile:.

Photo album! :framed_picture:

I’ll be posting pictures to a photo album in case you’d like to check out the latest photographic updates.

Parts purchased and printed :3

Future updates

Future updates will be shared as a reply on this same thread, hopefully on the following subjects:

  1. Decision on collaboration.
  2. Build videos and full documentation for the final prototype.

Plan deviations

  1. Budget change: a budget redistribution was requested on the collaboration items was approved, merging the budgets into one collaboration for the hardware tasks. The software tasks will be absorbed by yours truly.
  2. We are apparently behind schedule, since work on projects was to happen between the 1st of April and the 5th of July, according to the program’s timetable. The estimated delay is around 1 or 2 months, and is mainly due to administration tasks and shopping taking longer than expected.
  3. There are no Raspberry Pi 4 boards available in the local market, due to global supply problems. I am using a spare board for now, but if this continues we may be forced to rethink at least a part of the electronics/control system.
  4. The future of GitBuilding is uncertain. Even so, we remain committed to use it to document our entire project, and I want to thank him enormously for his guidance, and for the incredible work he has done. Thank you @julianstirling :slight_smile: .


Progress would have been impossible without the help of the GOSH community (mostly behind the scenes), and many friends helping out at each step; from suggesting collaborators to finding the right fiscal sponsor!

Stay tuned for the next update (?) :stuck_out_tongue:


Project updates! 2022-07-15

Prototype build

  • XYZ axis parts are printed and in assembly :3
  • We’ll ditch the tip ejector servo, in favor of a fixed “tip ejection post”, with a tip discard tray underneath.
  • We are considering a custom tool-changer, instead of Jubilee’s (read on…).

Original prototype (left) and new version in progress (right).


Renan, Solomon, and Pipe have agreed to collaborate with the project, and a meeting should happen soon.

  • Felipe (Pipe) is in charge of general design, usability, and enclosures.
  • @Renan has started modelling toolchanger alternatives.
  • @Solioboni will also work on modelling (details TBD).

Next meeting is scheduled for next week, probably on Thursday.

I also wrote to @Glyxon to arrange a meeting. Him, @adrianMolecule and I discussed our projects and experiences, and will setup a group in JOGL to set collaboration goals for the short or mid-term :slight_smile:


Renan has started working on a toolchanger design, using highly available low-cost parts.

Our Z-axis does not lend itself to accommodating the Jubilee toolchanger, not naturally at least. So we may need to change the design drastically.

Though Jubilee toolchanger is really awesome, we are not sure if it will stand the vertical forces needed to place a tip, if it would handle larger tools correctly, and there is no simple way to fit the toolhead to our Z-axis.

We will make out final decision on this point next week with Pipe’s and Solomon’s input.

General design

Assembly models had to be updated to include most of the parts.

This allowed Pipe to start working on a nice enclosure, and tidying everything up (cables, electronics, power, etc.).

A first render of a enclosure idea is shown below:

Next objectives (in spanish) are:

  1. Limpiar el diseño de las partes para que sean lindas y revisar que no tengan problemas.
  2. Pensar e implementar un diseño de toolchanger con Renan y Solomon.
  3. Pensar en formas de mejorar la usabilidad y que sea seguro de usar.
  4. Organizar la electrónica y el toolchanger.
  5. Armar la carcasa.


Yours truly has been using the first prototype to test improvements in the driving software:

  • Speed has been doubled by:
    • Implementing more reliable GRBL-Pipette synchronization routines (relying on the G4 dwell command; rationale here).
    • Doubling acceleration on all axis.
  • Consider using Klipper as a firmware and low-level control software.
    • This would allow us to modularize controller hardware, instead of enforcing our custom software solution tied to the Arduino CNC shield.


Many-a-videos have been recorded, the assembly documentation will be written from them.

Some changes were made to the models, and have been reflected in the original documentation (the repo’s READMEs).

Duties and Schedule

Slow we are indeed! Fortunately the GOSH board has granted an extension, and we’ll continue working for about a month (at most, ideally). Our substantial and financial final reports are due in September.

Next update

Probably on August 15th. Hopefully we’ll have a working robot by then.


Project updates! 2022-08-06

Changes in the team

For personal reasons, @Renan will step aside from the first phase of the project. We wish him the best of luck focusing on his studies during the semester. :mechanical_arm: :heart_decoration:

After some discussion with Felipe and @Solioboni, we decided to keep going. They are able to finish the project with the time that is left; around 4 weeks.

They will take over the design of the toolchanger, and the first fabricable models are due next friday, just in time for the project update planned for the 15th of August.

Preview of next update

Structural frame complete

Frame complete.

Development of a new baseplate development is next.

Toolchanger drafts are on!

New toolchanger models (drafts): models/modelos_XYZS/freecad_toolchanger · master · pipettin-bot / Pipettin Grbl · GitLab

Draft toolchanger models.

Printed draft parts for the cheapest toolchanger ever.

As described in the relevant gitlab page, the toolhead is attached reversibly to tools using small strong magnets. The toolhead will dock with the tool using a pair of linear rods, which will have a “fillet” on the ends to ease the docking process.


DIY fillet made with a Dremel grind disc and sanding paper.

The three relevant parts: parking post (left), tool (middle), and toolhead (right).

This is not as precise as the kinematic coupling of Jubilee’s toolchanger, but not incompatible either. We shall add it later on if required.

The tool will dock to the parking post using the same two rods, and bind to it reversibly with a hysteretic “push latch” mechanism (similar to the ones in ball pens), which makes this design a purely mechanical solution to toolchanging (no electronics, no sensors, no programming :3).


Example commercial “push latch” thingy, used for drawers and similar stuff.

That’s all folks!

1 Like

Next update postponed - New date: 2022-08-22

Our next update was due on the 15th.

Coordination at a distance is more difficult than we thought, so progress is not going as fast as we planned (schedule here). We’ll have to make it work in a single design-and-test round, before our extended deadline on the 31st of August.

Here is a sneak peek…

Solomon is in charge of designing the workspace base-plate and the object alignment system. We have already purchased a prototype base, which will get the job done while Solomon finishes the design:


Pipe has redesigned the toolchanger, it is now based on the GetitPrinter (last item here). We’ll print and test the design this weekend.

Screenshot from 2022-08-19 11-18-56

1 Like

Project updates! 2022-08-22

Hi all! This post will cover the latest and greatest news on the pipetting-bot project.


  • There are two toolchanger ideas in development; Pipe’s take on the Getit project, and an alternate toolchanger (based on the mini-latch, such an awesome little device).
  • The proto-baseplate is installed, and minimal guide parts were 3D printed.
  • We’ve reworked the electronics to work with multiple tools.
  • Pipe has resumed work on an enclosure for the machine (including the electronics).
  • This is our last week before the deadline! The toolchanging bot will be complete and tested in 9 days. But, will it blend?

Toolchanging systems

The main system is based on the GetitPrinter.

In summary:

  • The tool slides into the (tool)carrier and is attached to it magnetically :magnet:.
  • To park a tool, a small part fixed to the parking post part slides in between the magnetically attached tool and carrier. This separates the tool, and the carriage can move away empty. The pin does its work over a distance, such that motor steps are less likely to be lost.
  • It is a purely mechanichal solution, that uses the same parts we already have in the rest of the machine. Some micronized graphite migh help lubricate the mechanism though.

IOU: Our 3D printer started randomly jamming, and cannot be left unnatended over the 12 hour long prints. So we are delayed… again. I’ll post pictures soon!

Fortunately, the alternate system is working well :slight_smile: .

This alternative is based on the mini-latch. The little device is normally used to close and open drawers, only by pushing, and is similar to the retractible ball-pen (in essence).

Though it adds a “dependency”, it has a lot less and a lot smaller parts, which were a breeze to print.

Notice the two parking posts on the left. One of them has a tool parked (mid. left), and the other tool is on the carriage (top right).

Click here for more pictures!

Found a nice place for a probing switch. It may be important, since the mini-latch has a very strong spring inside (that’s inconvenient) and we want to make sure that a tool has been placed or released.


Jumper wires and stuff.

Case and cable-management

Though still crude, this aspect of the project just saw a major improvement.

Original layout. :point_up:

Current layout. :point_up:
Note: this is still only a prototype, we’ll soon order a nice and transparent acryllic box, with some :gosh: logos on it.

We’ll have to print dozens of cable-carrier units. Pipe might have some ideas to simplify this part (maybe a sleeve?).

Multi-tool control

Until we start using Klipper to drive two Arduino CNC shields in sync, we are stuck with the good ol’ custom PCBs perfboards.

Fortunately all I needed to solder were two breakout boards for the pipette A4988 drivers with decoupling caps, and a simple 2N2222 transitor circuit (to force-reset the 5V Arduino from the 3.3V RPi).

The only casualty here were a couple cheap stepper drivers that exploded for no good reason (as they occasionally do).

The inifinite-jumper-wire problem was bypassed by daisy chaining all pins from the first driver to the second one (except for the STEP pin). This of course means sharing some important pins, which is not a problem (for now, since the pipettes are never used simultaneously).

I must add connections for some tool components: both tip probe opto-stops, and both pipette homing end-stops.

Raspberry Pi 4 shortage avoided

In short, we used a spare Raspberry Pi 2, and moved on (model B, pic above).

Key stuff:

  • One of the ways in which the RPi project is awesome is that you can take an SD card running Raspbian from a RPi 4 and it will work on an RPi 2 seamlessly.
  • Furthermore, tools such as PiShrink can reduce the OS’s filesystem size.

Now our 64GB-only OS image fits in any 16GB+ SD card (and autoexpands), and it will work on any Raspberry Pi (the B models at least). Perhaps it could even work on a Zero W, but it remains to be tested.


Only minor changes. Driving the second stepper is trivial: instantiate the Pipette class with a different pin number in the STEP parameter (example here).

The next and final task is to handle the multi-pipette scenario in the protocol-planning side, and write the two toolchanging GCODE macros.


We’ll be using minimal 3D printed parts and a perforated wood baseplate as workable placeholders until @Solioboni’s design is ready for prototyping.

Those are good enough to align objects properly, easily, and reversibly on the workspace.

Also súper cheap and simple.


Most of the progress has been written to the README.md files in the development repo.

Due to the overhead of moving everything to GitBuilding, that version of the docs will be completed after the final design is built and tested.

Just thought of a nice diagram for the usage guide section:


Final project update! 2022-09-11

A lot has happened since we started the collaborations since early August, and I am glad to say that a first version of a tool-changing Pipetting robot is ready for testing:

With it, we close a stage of development. :partying_face:

We are just about to submit our financial and substantive final reports to the CDP working group. Our deadline is on the 14th of September.

Edit 2022/09/22: the substantive and financial reports have been sent.

So what now?

An open source robot has been released into the wild :slight_smile: but our work is far from finished.

Tool-changer design

Firstly, Pipe’s awesome tool-changer design is still being printed and tested:

The one you can see in the video above is an alternate version. This design It was rushed out because remote hardware development is much slower than I anticipated.

With it I was able to refactor the driver software, to support different tools. Pipe’s tool-changer has been printed, and the software is waiting for the first tests!

Future work:

  • Test pipe’s tool-changer.
  • Make final adjustments.


Solomon’s design is coming along, and will continue well after the deadline:

As for the tool-changer, the baseplate you can see on the video above was designed as a “dummy” but functional draft. The dummy baseplate and alignment system was needed for software development.

Future work:

  • Print and assemble Solomons’ object aligner.
  • Make adjustments to the models.
  • Discuss the baseplate’s attachment to the robot.


Varying amounts of work are needed across several fronts:

  • Pipe: finish the cable management system (issue 46).
  • Pipe: design the electronics case (issue 45).
  • Pipe: coordinate manufacturing process of the electronics case with local providers (issue 45).
  • Nico: calibrate the pipettes’ volumetric accuracy (issue 44).
  • Nico: solve a few EMI noise issues with a driver’s STEP pin (issue 43).
  • Nico: use the robot to prepare a few PCR mixes, using the automatic protocol generator feature.


The GitBuilding assembly documentation is incomplete, and only covers part of the construction of the cartesian CNC machine.

The vast majority of the documentation is still used for development, and is available in several README files. This documentation describes the contents of each directory, explains how each part works, and links to the relevant interacting parts.

Have a look at the READMEs in the main repository! The README files are hyperlinked to each other, and I believe that this documentation can be navigated by anyone interested.

Though documentation is our main objective, writing complete docs requires a lot of time, and I will continue to work on it.

If all goes well, it will be finished before the global gathering at Panama.

That’s all folks!

I’ll reply to this post when the next stage of development starts (hopefully funded by the second round of the CDP; application here).

Feel free to comment and reach out through any of the following channels:

I’ll be glad to hear your thoughts.

We are very thankful for the support provided by GOSH’s CDP working group, and the Alfred P. Sloan foundation.


Small update

The 2nd phase of the CDP grant is on. :partying_face:

Some things are still due from phase 1, such as this box of wonders:

Such logo :gosh:

PS: there will soon be a dedicated post for phase 2 updates. Hoping to see you all at Panamá next week :slight_smile: