Custom control loop for Duet WiFi or Duet 3

  • Hi,

    I'm looking into creating a project with RepRap and the duet hardware.
    The project might require a custom control loop. Is it possible to implement a custom control loops for the Duet 2 und the Duet 3? Ideally the control loop would be executed in regular intervals and make use of sensor data.


  • Control loop controlling what output from what input?

    daemon.g * will run periodically - not familiar with the frequency or jitter but you could put echo state.upTime in there to see I guess.

    *) only available in reprapfirmware v3x

  • I have an application that might require me to use closed loop control for the extrusion of a special filament. It is highly likely that there will be a lot of slip with this filament and thus and open loop approach to extruding it (not through a hotend) won't work.


  • Unless you can adjust the extrusion multiplier to achieve the desired result it sounds to me like you'll need to close the loop outside the Duet or make changes to the firmware.

    (edit: or if you're not "printing" from a file on the SD card but generating g-code on the fly, you could compensate there)

  • I don't think adjusting the extrusion multiplier will do what I require.

    How difficult do think it would be to implement such a feature in RepRap?


  • if extrusion multiplier would work would mainly depend on the rate of change and interval of the daemon.g file being run and how well you could tune it.

    maybe you can get an idea for the scope of changes by reviewing the sources; it'd be hard for me to estimate an unknown problem with an unknown resource.

    (some functions are provided by other repositories in the same github account RRFLibraries, CoreNG, FreeRTOS and CANLib)

    ((Edit: you could also see if you get other suggestions, there are some right clever people on here, I'm by no means the expert))

  • administrators

    FWIW we have prototypes of a CAN-connected closed-loop stepper motor controller board for Duet 3. I think that or a variant of it will be the best solution for your extruder.

Log in to reply