Duet + Jubilee + Instruments = Science!
I'm building out an automated sonication work cell for a lab at school, and I wanted to share some of the more fun bits!
For starters, I started with a Jubilee 2.1.x. The bed plate has been retrofitted for holding well plates with a laser cut fixture and some (no joke) battery clips from Digikey.
Then I added two tools: a downwards facing camera and the sonicator.
Next came the software. I couldn't drive the sonicator and camera with GCode directly, so I wrapped the HTTP interface in Python to get easier access to the custom tool commands. Since the tools don't need to be active while the machine is moving, this ends up working out.
The camera is for dialing in the location of the well plate using the centroids of the 3 corner wells. (Doing this manually for now keeps the machine flexible enough to accommodate oddly shaped custom plates.) The sonicator is for zapping samples with ultrasonic vibrations. (Apparently this breaks down cell walls and DNA and makes it easier for scientists to measure some of the more rudimentary components. Honestly, I wish I could say more here, but I just the machine designer!)
Here's the machine in all it's glory:
and... here's the dry run where the sonicator gets picked up and cycles between well plates and cleaning viles.
I thought this'd be a fun share to showcase just how much you can do with a Duet with an extra layer of abstraction or two. In a nutshell, the Duet folks have done a fantastic job exposing interfaces to build robots of all kinds on top of their work, not just printers and cnc machines. I'll slowwly get the bed CADs on the Jubilee wiki if anyone wants to try some other sample handling mischief.
This is fantastic!! I'm a biologist in my day job, and could even see myself wanting to use one of these.
@poofjunior great work! I know you have been chatting on other threads about the various things needed to.make the python->DSF->RRF elements work as you want. Would be great to catch up in more detail at some point about generic plugins/libraries to streamline this for wider use cases.
@poofjunior Nice! Though I had to look up what a 'sonicator' was...
Thanks for the support, folks! This is a nearing-completion work-in-progress, but the plan is to make all reusable bits of this project (CAD files for the bed, python library for motion) shareable so that other folks have a starting point for similar non-printing mischief.
Would be great to catch up in more detail at some point about generic plugins/libraries to streamline this for wider use cases.
Aye--that'd be great. All that feedback from other threads really helped! For now, I swapped from DSF to HTTP to be able to let the same code command Duet2 and Duet3 setups. Longer-term, I'll probably make the interface selectable in the class constructor so that folks can pick either DSF or HTTP. Currently doing a light code overhaul so that the sonicator and motion control sections of the code can exist as separate projects with the duet motion interface being pip-installable.
Thanks again for all the hard work on the Duet side, and more actions shots may follow!
@poofjunior think I just saw this machine on Hackaday.
@whopping-pochard Wow--good eye! Yeah, it was in the B-Sides article!