The DuetWifi is hands down the best controller on the market. The only downside is that it doesn’t come with a display/control panel and it’s only compatible with the PanelDue displays. I’ve recently purchased a 5″ PanelDue but for a long time adjusting the Wildbot was troublesome. It involved a lot of walking from my computer to my printer and back. I used triggers and external buttons to solve this problem.
The wiring looks complicated but it’s not so bad. On each switch, one terminal is wired to common (gnd) and the other is wired to a certain pin on the expansion header. My board is mounted upside-down just to make it super confusing for everyone.
Here are the pins I used.
- Pin 4 = E2_STOP
- Pin 9 = E3_STOP
- Pin 14 = E4_STOP
- Pin 19 = E5_STOP
- Pin 26 = E6_STOP
- Pin 44 = RESET
Pin 44 forces a reset when shorted to ground so that button was easy enough. For the rest, I had to make changes to the config file. I found the following digging around RepRap.org:
M581: Configure external trigger Parameters Tnn Logical trigger number to associate the endstop input(s) with, from zero up to a firmware-specific maximum (e.g. 9 for RepRapFirmware) X, Y, Z, E Selects endstop input(s) to monitor P Reserved, may be used in future to allow general I/O pins to cause triggers S Whether trigger occurs on a rising edge of that input (S1, default), falling edge (S0), or ignores that input (S-1). By default, all triggers ignore all inputs. C Condition: whether to trigger at any time (C0, default) or only when printing a file from SD card (C1) In RepRapFirmware, trigger number 0 causes an emergency stop as if M112 had been received. Trigger number 1 causes the print to be paused as if M25 had been received. Any trigger number # greater then 1 causes the macro file sys/trigger#.g to be executed.
So, in order to get buttons for pause, home, ATX on, and disable steppers, I had to add the following to my config file:
; Input/Output M581 E2 S1 T1 C1 ; Pause - PIN4 M581 E5 S1 T3 C0 ; Disable Steppers - PIN19 - trigger3.g M581 E4 S1 T4 C0 ; Home All - PIN14 - trigger4.g M581 E3 S1 T2 C0 ; ATX On - PIN9 - trigger2.g
Originally, I planned to have a button for HALT (RRF calls it “Emergency Stop” but that’s not what it does, in my opinion) and ATX Off. Duet Web Control asks for confirmation when those commands are sent. As a result, it’s not currently possible to execute them via external triggers.
For the rest, I had to add macro trigger files. Which are just text files containing the respective commands saved as trigger#.gcode.
;tigger2.g M80 ; ATX ON
;trigger3.g M400 ; Finish Current Moves M18 ; Disable Steppers M300 S300 P1000 ; Play a beep sound at 300Hz for 1000milliseconds
;trigger4.g M400 ; Finish current moves G28 ; Home all axes M300 S300 P1000 ; Play a beep sound at 300Hz for 1000milliseconds