Duet for an open source syringe pump



  • Hello All,

    I am currently building a redesigned variation of this pump:
    https://www.appropedia.org/Open-source_syringe_pump

    The main advantage of this for me would be to control multiple pumps synchronized by G code.

    I am currently using duet electronics for my 3D printer and I am very impressed by the customization options.

    Is it possible to configure a duet WIFI to use all 5 stepper drivers as an axis with no extruder and no end-stop and minimum-maximum axis length? If so how would the config G code look?

    If possible I would also like to use the heater channels to have multiple temperature control loops (basically all four channels should be controlled like a heated bed either bang-bang control or with PID).

    Thanks in advance for the help. I really appreciate the mod ability of the DUET software and hardware.



  • @Eric said in Duet for an open source syringe pump:

    Is it possible to configure a duet WIFI to use all 5 stepper drivers as an axis with no extruder and no end-stop and minimum-maximum axis length? If so how would the config G code look?

    hmm. a sugestion. configure the e0 and e1 to be u and v.

    using https://duet3d.dozuki.com/Wiki/Gcode#Section_M584_Set_drive_mapping
    pay attention to the ordering of commands

    and then use
    https://duet3d.dozuki.com/Wiki/Gcode#Section_M564_Limit_axes
    with the H0 to allow movement without homing.



  • Thank you that is already very helpful. Do you know if it is possible to define more heater loops like the heated bed?



  • why specifically bed?

    M563 P0 H0 ; define tool 0
    G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
    M563 P1 H1 ; define tool 1
    G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C

    etc.



  • Thanks that sounds good and it should work.



  • Hello All,

    I now have a DUET Wifi connected to 4 syringe pumps. However i am running into a snag. I need much lower minimum speeds.

    I currently try to set the following maximum and minimum speeds according to: https://duet3d.dozuki.com/Wiki/Gcode#Section_M203_Set_maximum_feedrate
    M203 X600.00 Y600.00 Z600.00 U600.00 V600.00 I0.01
    but the machine keeps the default 30 mm/min

    I could increase the steps per mm 10 fold to make it steps per centimeter but i would like a more flexible solution.

    Thanks in advance for your help.

    With regards,

    Eric Wieland



  • Here is the complete axis configuration i am using:
    ; Axis and motor configuration
    M569 P0 S0 ; physical drive 0 goes backwards
    M569 P1 S0 ; physical drive 1 goes backwards
    M569 P2 S0 ; physical drive 2 goes backwards
    M569 P3 S0 ; physical drive 3 goes backwards
    M569 P4 S0 ; physical drive 4 goes backwards
    M584 X0 Y1 Z2 U3 V4 ; set drive mapping
    M350 X256 Y256 Z256 U256 V256 I0 ; configure microstepping without interpolation
    M92 X40960.00 Y40960.00 Z40960.00 U40960.00 V40960.00; set steps per mm
    M566 X60.00 Y60.00 Z60.00 U60.00 V60.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X600.00 Y600.00 Z600.00 U600.00 V600.00 I0,01 ; set maximum speeds (mm/min)
    M201 X900.00 Y900.00 Z900.00 U900.00 V900.00 ; set accelerations (mm/s^2)
    M906 X700 Y700 Z700 U700 V700 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S1 ; Set idle timeout
    M564 S0 H0 ; Allow movement without homing and outside the axis range
    G91 ; Set to relative positioning

    ;



  • And i have an additional question. Is it possible to turn of the Pythagorean path length calculation for the speed? If i now move the x and y axis 10mm simultaneously the firmware precieves this as a move of ~14mm.
    so a move G1 X10 Y10 F10 takes 1,4 minutes instead of 1 minute.

    For this project it would be great if that could be turned of. This is already the case for the u and the v axis.



  • I think you may have to change the drive mapping from X and Y to say A and B?



  • @Eric said in Duet for an open source syringe pump:

    but the machine keeps the default 30 mm/min

    you specify the feedrate along with the G1 command as an F parameter? or are you refering to the manual control in Duet Web Control or PanelDue, they have their own settings outside the firmware.



  • I specify the feed rate with the G1 command however i cannot go lower than F30 as it is below the firmware minimum speed.

    I currently want to use the M203 command to lower this minimum speed.
    I use M203 X600.00 Y600.00 Z600.00 U600.00 V600.00 I0,01 to set max and minimum speeds.

    However the I parameter is not working as the minimum speed stays at 30 mm/min instead of going to 0,01mm/min.



  • sorry, missed that you wrote F10 in the above post. there is a minimum speed, I think it was revised in either cnc or laser mode, maybe you'll find some refrences in the forum.

    a possible workaround could be to change your steps/mm to effectively become steps/um and adjust the gcode accordingly?

    (for that matter you could also set your steps/mm setting to steps/ml or steps/ul if it makes more sense, I'm assuming you're only controlling syringes and not any positioning of the syringes themselves?)



  • Yea i already though about going to steps per micro or nano meter 🙂 I would however prefer to stay with mm.

    So if i switch to laser mode the M203 command might use the I parameter? i can try that.


  • administrators

    @Eric

    https://duet3d.dozuki.com/Wiki/Gcode#Section_G0_G1_Move

    For CNC users especially: RRF has a default minimum movement speed of 0.5mm/sec. In firmware 2.03 and later this can be changed using the I ('i') parameter of the M203 command.

    https://duet3d.dozuki.com/Wiki/Gcode#Section_M203_Set_maximum_feedrate

    Innn Minimum overall movement speed (firmware 2.03 and later), default 30mm/min



  • This does not work see my earlier post where i wrote:

    I currently try to set the following maximum and minimum speeds according to: https://duet3d.dozuki.com/Wiki/Gcode#Section_M203_Set_maximum_feedrate
    M203 X600.00 Y600.00 Z600.00 U600.00 V600.00 I0.01
    but the machine keeps the default 30 mm/min

    I have firmware 2.03


  • administrators

    @Eric said in Duet for an open source syringe pump:

    This does not work see my earlier post where i wrote:

    I currently try to set the following maximum and minimum speeds according to: https://duet3d.dozuki.com/Wiki/Gcode#Section_M203_Set_maximum_feedrate
    M203 X600.00 Y600.00 Z600.00 U600.00 V600.00 I0.01
    but the machine keeps the default 30 mm/min

    I have firmware 2.03

    Are you certain you have 2.03 release firmware installed, not a 2.03beta or 2.03RC version?

    Have you tried 2.04?


Log in to reply