Pulse Duet3 Mod

  • Global Moderator

    You need to comment out your G28 Z0. My printer runs parts 24/7 so I set my M104 to S[temperature], so I do not have to constantly heat and cool. You may want to change your M84 to M84 S30 which will release your motors to idle after 30 seconds of inactivity. Or send this code manually just before part removal to hold the bed in place M84 Y0 S30.

    Modified End Code:
    G1 E-[retract_length] F[retract_speed]
    G0 X5 Y215 Z200 F600 ; Moves to end resting position, push bed forward for part removal, modify Z to your endstop
    ; G28 Z0 ; Retract and move away, then home Z axis

    M104 S0 ; turn off temperature
    M140 S0 ; turn off heat bed
    M106 S0 ; turn off layer fan
    M84 ; disable motors

  • Global Moderator

  • Global Moderator


    Pulse XE frame mount, interface adapter no longer needed.




    PulseXE Duet Box Files

  • Global Moderator

    One of the main reasons I switched to Duet was because my Pulse XE printer did not come with a filament runout switch. I was told they didn't have good luck with their reliability so they discontinued the switch.

    Added Creality billet aluminum filament runout switch and code. This a simple roller switch with blue led light indicator. From left to right is Signal - Ground - Power. In my case I used io_4.in for Signal, center ground and 3.3v for the power. You will need to configure P0/P1 if your switch is normally open or normally closed. When the switch is triggered, it will trigger pause.g macro. Once you have replaced the filament, you will need to manually restart the printer using the resume print button.

    Any simple runout switch will work with this code. There are many of these on Thingiverse if you wish to build your own. Add this code to your config.g file, near the bottom above custom tools is where I placed mine.

    ; config.g
    ; Filament Runout Switch
    M591 D0 P1 C"io_4.in" S1 ; P0 P1 NO/NC



  • Global Moderator

    Upgraded coding for pause.g and resume.g. RRF Jason had programmed the config to move to X0Y0 upon pausing the print. This shoved the print bed backwards away from you. I have changed this to move the bed forward to access the parts easier when paused. You will need to add the following code to your pause.g and resume.g macros.

    ; pause.g
    M83 ; relative extruder moves
    G1 E-10 F3600 ; retract 10mm
    G91 ; relative moves
    G1 Z5 F360 ; raise nozzle 5mm
    G90 ; absolute moves
    G1 X0 Y220 F6000 ; move head out of the way of the print

    ; resume.g
    G1 R1 Z5 F6000 ; move to 2mm above resume point
    G1 R1 ; lower nozzle to resume point
    M83 ; relative extruder moves
    G1 E10 F3600 ; undo the retraction


  • Global Moderator

    Made a few adjustments to the enclosure. I trimmed off a few of the external cable clamps, added two new ones which better fit the Pulse XE. Added several of the internal strain relief clamps. Adjusted the cover to fit. You can find the files in the link below, they will be in the Version 5 folder.


    Print Files

  • Global Moderator


  • Global Moderator

    Everyone says that is way too much fan for this tiny board. Currently I have a 92mm fan on the reverse side and it is not enough when the enclosure temperature becomes elevated beyond 50C. The Duet board should be cooled on its back side and because I am forcing air through a smaller gap, I chose Noctua's high pressure fan.

    1_1653892046994_fanside.jpg 0_1653892046994_DuetMiniInstalled.jpg

  • Global Moderator

    MatterControl will not allow you load the height maps in it's output code, so normally you would have to add it there commented out:

    ; G29 S1 ; load height map (remove comment, post export)

    You would then have to modify your gcode file post export each time before printing.

    ;G29 S1 ; load height map (remove comment, post export)

    Alternatively, you can add this gcode to your config.g folder in the Duet system folder near the bottom just above the custom tools section

    G29 S1

    The latest height maps will be loaded each time you begin a new print.

  • Global Moderator

    I have been running this mod on my Pulse XE for about 18 months now. This is a professional mod which transforms the Pulse XE from a hobby oriented system into something more suited for a commercial workflow.

    The Duet 3D mini 5 plus board is a great step up for small, general purpose printers. I think that this is a great system for most users who wish to learn the Duet workflow. However for my manufacturing needs, this smaller board falls short. I have received much criticism over the usage of the mini board, versus the larger Duet boards and what is needed for my workflow. Truth be told, those who have commented to me with their opinions, typically had little to no real world experience with the board.

    I will be moving away from the Duet 3D mini board, scaling up to the 6HC main board. This is not only a more expensive control board, but it is also physically larger in size. Adapting this larger board to the existing mounting location on the Pulse XE has been a challenge to overcome. Also the cooling options for these boards usually requires the addition of a cpu fan. This time I would like to build an enclosure which passively cools the board without the need of a cooling fan.


    The top images shows the two part mounting system that allows mounting and removal from the D-frame without removing the mainboard from it's enclosure.


    Lower images shows the large opening on the backside for the 150 x 20mm heatsink which will be passively cooled.

  • Global Moderator

    Not only does this new enclosure contain a 20mm high heat sink, it does so in the constrained limits of the width of the Pulse XE D-Frame.

    The Duet 3D 6HC mainboard comes with a high speed connect cable for a Raspberry Pi, which also powers the PI so that no other power cables are necessary. This adds wifi, bluetooth and very large touch screen capabilities.

  • Global Moderator


Log in to reply

Looks like your connection to MatterHackers Community was lost, please wait while we try to reconnect.