Pulse Duet3 Mod
Pulse Duet3 Mod
The Azteeg X5 GT control board is great for beginners who need that “push button” print type of system. But for advanced, commercial style printing, the Azteeg falls short.
Duet 3 Mini 5+ mod
The Duet 3 control board uses a web control interface which can be used on personal computers, laptops, tablets and mobile phones, across multiple platforms. Basically anything that can open a web browser, wired or wireless. The system uses RepRapfirmware instead of Marlin. This allows you to use gcode directly to control your printer. No more compiling every time you wish to make a change. Quick changes to gcode on the web interface and you are good to go.
Duet3D is not for everyone. But, once setup, the system can be ran by most users, however you will need to hit the books and learn basic gcodes and make a cheat sheet.
I have done the heavy lifting, setting up the firmware for all of the stepper motors, end stops and heaters. Some tweaking will be required if you intend to keep the dual Z-axis motors. My config files are set to use the single Z-axis modification. All end stop switches will need to switched over to the Normally Closed position, moving one of the wires. The control board box will need to be printed and mounted to your D-frame. I used a thick piece of plastic between the two. This will be up to you. The extruder cable may need to be re-mounted above the frame along the backside for length.
All config files, wiring diagrams and pictures are located at my GitHub page for free download.
CaribouDuet mounting box
Miscellaneous hardware will be needed depending on the size used. I suggest picking up a multi pack of bolt and nut hardware.
You will need a - IWISS SN-2549 Crimping Tools for AWG28-18 (0.08-1.0 mm2) XH2.54/Dupont 2.54/2.8/3.0/3.96/4.8/KF2510/JST Terminal Crimper Plier Ratcheting Wire Connector Crimping Tool
A normally closed micro switch
92mm Noctua fan and grill
My modified start code. Note that G29 is commented out. This must be changed post export. Use Notepad ++ or Xed in Linux. Since you are no longer using MatterControl to level the print bed, you must call the height map from your duet board at start of the print. Prior to printing, manually use
G28home all and then
G29 S0to create the bed mesh.
Modified Start Code:
G28; home all axes
G29 S1; load height map (remove comment, post export)
G1 Y0 X5 Z0.8 F1800; Purge line (extra length and at the edge)
G92 E0; Purge line
G1 X230 Z0.3 E25 F600; Purge line
G92 E0; Purge line
G1 E-2 F2400; Purge line
One of the other problems I didn't mention about the Pulse XE printer and Mattercontrol is the usb connection between the two. There is a battle getting line code to the printer through the usb cable without errors or the printer just stopping mid print. My original usb cable from Matterhackers was bad. After trying several higher quality usb cables, I ended up getting a foil shielded usb cable and installing my own cable chokes at either end. Also, there is a limitation on usb cable length, the longer the cable, the more problematic the connection.
Also, I am not sure how many printers you can run at a time from one computer. If there is a failure on the computer, or Windows decides to do an update, the connection will be enterupted for all the printers connected.
-> With the Duet electronics, there is no usb cable. Files are uploaded directly to the Duet via ethernet cable or wifi in one file, big upload button on the website interface. No fumbling with sdcards either. Files are checked for errors by Duet, depending on your settings.
One other thing to note. You do not have to install a top Z-axis end stop switch. I installed it because I have two different Z homing options. If I home Z all
G28, then the Zprobe touches the bed and then moves up 5mm and stops, ready for a print. However if I click the Z- only button, Zprobe touches the bed and then returns to the top, terminating at the end stop. This moves the hotend up and out of the way for bed access.
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 S30which 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
Pulse XE frame mount, interface adapter no longer needed.
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.
; Filament Runout Switch
M591 D0 P1 C"io_4.in" S1 ; P0 P1 NO/NC
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.
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
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
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.
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.
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
The latest height maps will be loaded each time you begin a new print.