SOLVED How to use a PCPump as an extrusion device.



  • As an extrusion device, I am trying to use a Progressive Cavity Pump that can pump liquid instead of a stepper motor extruder.

    I am trying to control the acceleration and deceleration of the Progressive Cavity Pump using PWM signals, but I don't know how to output the extrusion command in proportion to the amount of liquid being pumped.

    How can I solve this problem?
    I am looking for your opinion.

    We thought that M571 would solve this problem, but the M571 command could turn the extruder on and off, but not accelerate or decelerate it.

    Using firmware 3.1.1



  • If the motor is controlled with PWM, not step/direction, then you cannot control it in the same way as a stepper.

    They are just fundamentally different control models.

    RRF treats the extruder as an axis similar (but not identical) to the X or Y axis. That cannot be mapped to PWM... You cannot map 2 values (distance AND speed) to a single value (PWM duty cycle).

    Back in the bad old days before we all used stepper driven extruders, people used DC gearmotors... it was a dark time.
    But you end up setting up the slicing engine to try and deal with a constant velocity extruder, and compensate in the slicing.
    (Because you basically only get repeatable extrusion rates at 100% PWM).

    Everyone stopped doing that, because its terrible.

    I would suggest trying to replace the motor in the pump with a stepper.



  • Thank you for your answer.
    I understood that the information of "speed" and "distance" is necessary to control the extruder, and PWM control cannot control the extrusion accurately because the information of "distance" is missing.

    Since the 3D printer I am building is designed to laminate pressure-fed mortar material (perfect extrusion control is difficult in mortar material), I thought the old-fashioned method you mentioned would be appropriate.
    In other words, I would rotate the PCPUMP at a constant speed.

    I will look for a way to compensate with a slicing system to handle the constant speed extruder.

    If you can tell me how to slice with DC gear motor, I will be of great help.

    Thanks.



  • I would think the "simplest" would be to add an encoder and write an arduino like sketch to act as a stepper driver - it has the benefit of not needing to maintain a fork of the reprapfirmware; and I'm pretty sure I've some instructables or youtube videos with people making cnc stuff with dc motors and diy encoders so with abit of luch there is some code out there on the interwebs.



  • @MegaGorilla said in How to use a PCPump as an extrusion device.:

    Thank you for your answer.
    I understood that the information of "speed" and "distance" is necessary to control the extruder, and PWM control cannot control the extrusion accurately because the information of "distance" is missing.

    And also, PWM is not able to produce consistent speeds. DC motors will vary speed based on load, and the PWM control is limited at best.
    There are very good reasons why everyone switched to steppers.

    Since the 3D printer I am building is designed to laminate pressure-fed mortar material (perfect extrusion control is difficult in mortar material), I thought the old-fashioned method you mentioned would be appropriate.
    In other words, I would rotate the PCPUMP at a constant speed.

    I will look for a way to compensate with a slicing system to handle the constant speed extruder.

    If you can tell me how to slice with DC gear motor, I will be of great help.

    Thanks.

    I would still very strongly recommend converting the pump to use a stepper, its going to be much much easier (and would actually exploit the PCPump's ability to control flow rate.

    I've not dealt with slicing for a DC extruder since Skienforge was the most popular slicer (and I'm not going to suggest anyone tries using that any more).
    Do some googling on people using air driven paste extrusion, I know there people out there doing that with Duet/RRF, it should be fairly simple to adapt the setup.
    I'll see what I can learn from the people I know.



  • @MegaGorilla Can you post a pic of the pump and existing motor?

    How thick is the liquid you want to run through it?

    A stepper on the existing pump may work depending on speed/rpm. A perstaltic pump came to mind like a dosing pump when I read your post. It can precisely meter liquid and you'd run a stepper to displace/dispense a precise amount. I don't know what kind of pressure you'd need though...



  • @bearer said in How to use a PCPump as an extrusion device.:

    I would think the "simplest" would be to add an encoder and write an arduino like sketch to act as a stepper driver - it has the benefit of not needing to maintain a fork of the reprapfirmware; and I'm pretty sure I've some instructables or youtube videos with people making cnc stuff with dc motors and diy encoders so with abit of luch there is some code out there on the interwebs.

    Thanks for the answer.
    I have the same idea if using a DC motor.
    I used Arduino Uno for this control signal conversion, but the processing speed was too slow for an 8-bit microcontroller to give me the response performance I wanted.
    I made a prototype of the control signal conversion program in Mbed and got good responsiveness.
    If there are other folks doing something similar, I would like you to share the link with me. Thanks.



  • @theruttmeister
    Thank you theruttmeister for your kind reply.

    I would like to share an overview of the pump I use and the printer I make.
    The PCPump I am using is a "MAI 2PUMP-PICTOR" and it is driven by an induction motor.
    (The motor is made by "ABM Greiffenberger" and the model is "G80F/4D80E-4". According to this sheet "http://abm-plauen.com/file/1383_tl2_eng.pdf", the maximum torque is 49Nm).
    This pump can control the speed with 0-10v input.

    My 3D printer is a construction 3D printer, it extrudes mortar from a nozzle and laminates it.
    Search for "construction 3d printer" and you'll get an idea of what I'm working on. (I'm making it in my garage, so it's much smaller...)
    The mortar is pumped by a PCPump and extruded through a 20mm diameter circular nozzle. The layer height is 10 mm. (The hose length from the pump to the nozzle is about 5m)



  • @theruttmeister
    I have taken your suggestion to measure the pump extrusion per 30 seconds.
    Specifically, I input a constant control voltage and measured the amount of extrusion multiple times during the 30 seconds between turning the pump on and turning it off. (This test was carried out with several control voltages).

    The results showed a maximum error of 5g.
    (I don't know what the error would be if the pump had acceleration/deceleration control...)

    This means that the number of revolutions per unit time of this pump is constant!
    We did it!



  • @MegaGorilla said in How to use a PCPump as an extrusion device.:

    too slow for an 8-bit microcontroller

    there are plenty of faster boards out there, a lot of them compatible with the arduino ecosystem.

    or something like dsPic - but I doubt the Uno is to slow, there are a few tricks to optimizng code for 8 bits and integer maths forinstance. but by all mean throwing something like an teensy or esp32 at the issue is probably easier.



  • @bearer
    Thank you very much.
    I now understand that I had only a fossil knowledge of arduino.
    I would like to buy and test the Teensy that you suggested.


Log in to reply