Bio printer tool changer
-
@t3p3tony I need to physically move the extruder motor to the last position of the plunger. It would be much easier to have each head with an extrusion system but in this way I reduce the amount of hardware.
I already built and programmed a core xy system with two bays and the exchange works fine, but I still don't know how to save the information on the advance of the syringes. -
@roken22
You need to be running RepRapFirmware version 3.3b2, have a look at:
https://duet3d.dozuki.com/Wiki/GCode_Meta_Commands#Section_Variables
along with the object model keys:
move.extruders[0].position
and possibly
echo move.extruders[0].positionchanging the "0" to the extruder drive number you want if its not 0.
Once you know you can get the right numbers out you can save this number to a variable during the tfreeN.g and restore it during the tpreN.g sequences. You will need one variable per syringe tool.
-
Are the variables persistent through a power cycle? Just thinking that a partly used "plunger" might be used after a reboot.
Would they also be stored for recovery after a power outage?
Just interested for now lol.
Cheers
Barry M -
@cncmodeller, variables are not current persistent through a power cycle. I plan to add them to the data saved when resume-after-power-fail is used (see M911).
To save them always, I would need to add a parameter to M911 to specify that certain parameters are to be saved to SD card even when no SD card print is in progress.
-
Just a thought, could you use a homing switch to register when the drive plunger contacts the diaphragm in the swappable element?
Like a homing sequence for the plunger every time a change has occurred.
I'm imagining a plunger that drives up behind the back of the diaphragm in a large syringe after you remove the diaphragm stem.
Interesting stuff!
-
@cncmodeller It's not a bad idea! you say like in the photo? the active head searches for the start of travel after each exchange, and then begins pressing until endstop B encounters the plunger, then the tool is carried away. Maybe I could use an optical endstop so I don't put pressure on the plunger. It would be a "design solution", this is getting interesting. I will also investigate the function of variables.
-
@roken22
Yep that's about it!
Not sure how that'd work from a setup / gcode perspective.
I've been toying with a clay extruder for ages (just because it's cool lol) but couldn't figure out how to get enough clay in an off the shelf syringe to make it useful. However if I could just pick up the next one off a carousel and carry on printing, that'd work!
Please keep us updated I'd love to follow along with your build.
All the best
Barry M -
@roken22
Wouldn't it be possible to home the tool to top position before changing the tool and after toolchange you home it with sensorless homing to the bottom. With reduced current, you won't push the diaphragm too hard and still "know" your plunger is in contact. -
It sounds like there are potential mechanical solutions to this using endstops/sensor less homing that might make saving the positions, certainly through a power cycle, redundant.
Another point is you could log the variable on every tool change and pause using M118 L command. While that wont tell you the position of the tool that's currently operating, so some manual intervention will be required in the case of a power cut, In the case of manually advancing extruder until its in contact with the plunger, the other inactive tools positions can be read from the log file and then entered in the console. That would probably be enough of a work around until the power fail resume logic @dc42 mentioned is implemented.
-
@t3p3tony yes, I think it can be solved mechanically with endstop. How does the sensorless work on a leadscrew? you have to reduce the current a lot, right?
-
@roken22 maybe use a magnet on each syringe and an hall sensor on the "extruder". That will allow also for adusting the switching distance without mechanical parts.