Custom-made extruder
Hello everyone
For our custom printer, we want to work with a syringe pump that allows our liquid metal to flow through a custom nozzle. To control this flow, we would like to use the output of the extruder on our motherboard. This output is normally provided to drive a stepper motor. Our Syringe pump works with a different drive so we would like to somehow convert these signals using an Arduino, for example, to something that our syringe can understand. However, this is a fairly complex and perhaps not always accurate process.
Does anyone know if, in addition to the standard outputs on the board (for the stepper motor), there might be additional outputs (e.g. to the TMC2209 board) for reading out the correct printer speed and print command so that we can process it and pass it on to our extruder?
I look forward to your creative ideas 🙂
Thanks!
27 Replies
I don't know of any, but maybe someone else does. However, wouldn't it be easier to switch the motor of the pump to use the one connected to the MCU? Or use a peristaltic pump instead of a syringe?
For our research high precision dispensing is needed because of the properties of our liquid metal. We are planning to use the following dispenser:
https://www.nordson.com/en/products/efd-products/ultimus-v-dispensers
ohh man, looking at the rs232 protocol, that is going to be a pain...
Yess indeed haha, struggeling with it right now
just my $0.02 - as a professional programmer, ditch it and use something that already knows gcode or you can easily attach a stepper to
otherwise you will spend months dealing with yak shaving
If they're already going to use an arduino, should it really be that hard to re-interpret step/dir signals into somethhing the dispenser wants?
oof, looking through that rs-232 protocol, i think it could get very tough to tune
should it be? No. will it be, in my experience, yes
speed and duration of dispensing, any latency ... yeah that'd be a nightmare
it does make me wonder about ripping that ultimus dispenser open and seeing how it works and if there is a better way to control it than the provided rs232
Yeah. A lot of the expense is probably to do with precise and discrete dispensing, whereas we want accurate flow
stupid hack - 3d print a structure around the foot peddle to hold a stepper. On the stepper shaft, add a cam so that as the stepper rotates it presses the foot peddle.
HAHAH, I love it
Thanks all for the response. We are currently able to read out the pins of the extruder with an Arduino and we can connect the Arduino with labview software. We hope it will be 'easy' to connect labview with the dispenser. Printing Liquid Metal will be a very slow proces in comparison with regular 3D printing so we hope speed and latency will not be a problem. Thank you for helping us and if anyone should have other ideas, feel free to contact us!
Good luck!
thinking about it more - it is super janky, but if they are going that slow it might actually work
@SamC you could as a test connect a stepper for the extruder(so it stops erroring for you) and just as it is printing manually press the foot peddle and see if that is going to cause problems
if that works, then use the extruder stepper to activate the food peddle
Okay, we will look into that. Thanks!
@SamC the only thing that's going to make sense for you is to build a custom klippy extra (python) to allow you to define a custom RS232 extruder section, you'll have plenty of libraries available to handle the complexities of the RS232 protocol, you could use pretty much any pins for this, but you have direct access to the pi pins, so i would prolly go for those, then you don't have to go through the klipper mcu protocol. There are multiple RS232 breakout boards for the Pi.
That's by far the easiest way to go, and you have the full flexibility of python and full access to the klipper kinematics and motion planner internals, with super precise timing coordinated between all the mcu's.
Start by reading this: https://github.com/Klipper3d/klipper/blob/master/klippy/kinematics/extruder.py
You can define your own "extruder stepper" that communicates with your dispenser instead of a stepper driver, if you implement a class following that "ExtruderStepper" interface at the top of the extruder.py file. Then sync it to the regular extruder like in this klippy extra: https://github.com/Klipper3d/klipper/blob/master/klippy/extras/extruder_stepper.py
GitHub
klipper/klippy/kinematics/extruder.py at master · Klipper3d/klipper
Klipper is a 3d-printer firmware. Contribute to Klipper3d/klipper development by creating an account on GitHub.
GitHub
klipper/klippy/extras/extruder_stepper.py at master · Klipper3d/kli...
Klipper is a 3d-printer firmware. Contribute to Klipper3d/klipper development by creating an account on GitHub.
Hiii, thanks! We will defenitly look into that! It should be an easier solution!
We also did our first test today with water instead of liquid metal and it worked very well!
Now we read out the pins of the normal extruder with an Arduino and use a computer with Labview to control the syringe with the RS232 protocol
Thats awesome to see
get some pigment in there and make some very precise watercolors 😄
Normally we will do the first liquid metal tests on friday!
What are you trying to make anyways? (If you can say)
We are master students and working for a research group at UHasselt/KuLeuven and we want to build a 3D printer that can print liquid metals for then use in stretchable electronic applications
badASS
This is so cool!!!