Duet 3 6HC Endstops Will not Read in IO pins
-
Hi everyone, I'm working on getting a 3D printer up and running with a Duet 3 6HC board. The issue is that I can not get the board to recognize the endstops at all (ender 3 versions). I have taken a multimeter to verify that all my wiring for them is continuous and that the end stop completes the circuit when actuated. The wiring also has been shielded with aluminum foil to prevent any interference with the stepper motors.
Firmware: 3.3
Below is the code for my config file. (Eventually, I will enable the dual z motors, but I wanted to get XY motion done first. That is why there is a commented out stepper motor). I have also tried all of the endstops connected at once and one at a time, with no difference
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Thu Jul 15 2021 14:31:46 GMT-0700 (Pacific Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Propellant Printer" ; set printer name M552 S0 ; Gaurentee Networking Disabled M552 P192.168.2.10 ; Set static IP at 192.168.2.10 M552 S1 ; Enable networking at static IP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S1 ; physical drive 0.0 goes forwards, Extruder M569 P0.1 S!1 ; physical drive 0.1 goes forwards, y axis M569 P0.2 S1 ; physical drive 0.2 goes forwards, x axis M569 P0.4 S1 ; physical drive 0.4 goes forwards, z left ;M569 P0.5 S1 ; physical drive 0.5 goes forwards, z right M584 X0.2 Y0.1 Z0.4 E0.0 ; E0.0 ; set drive mapping M350 X16 Y16 Z16 E16 I1; E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E420.00 ; ; set steps per mm M566 X900.00 Y900.00 Z60.00 E120.00 ; ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z20.00 E250.00 ; ; set accelerations (mm/s^2) M906 X1680 Y1680 Z20.00 E800 I30 ;Z1680 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 S1 Y0 Z0 S1 ; set axis minima M208 X 210 Y210 Z200 S0 ; set axis maxima ; Endstops M574 X1 S1 P"!io0.in" ;M574 Y1 S1 P"!in3.in" ;M574 Z1 S1 P"!io2.in" ;M574 Z2 S1 P"io3.in" ; Heaters ;M308 S0 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp1 ;M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 ;M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit ;M140 H0 ; map heated bed to heater 0 ;M143 H0 S120 ; set temperature limit for heater 0 to 120C ;M308 S1 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp0 ;M950 H1 C"out2" T1 ; create nozzle heater output on out2 and map it to sensor 1 ;M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ;M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"out4" Q500 ; create fan 0 on pin out4 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"!out6" Q500 ; create fan 1 on pin !out6 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools ;M563 P0 D0 H1 F0 ; define tool 0 ;G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets ;G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings are not defined
-
@justin-0 said in Duet 3 6HC Endstops Will not Read in IO pins:
M574 X1 S1 P"!io0.in"
How is your endstop connected to the board?
Try turning on the pullup if your endstop switch goes to +3.3
M574 X1 S1 P"!^io0.in"
-
@alankilian
I just tried it but there was no change in the reading. You are correct that I am using the 3.3v for the endstop. I do have the ground connected between the endstop and the board if that matters. -
"You are correct that I am using the 3.3v for the endstop. I do have the ground connected between the endstop and the board"
I'm a little confused on how you are using both 3.3v and ground connected to the switch.
Can you post an image of the connector with wiring and the switch with wiring?
It shouldn't be difficult to connect an endswitch, so it's got to be something simple.
You've done all the hard debugging so far and everything is right.
-
@alankilian
I agree it should be something simple. I tried placing a wire across the 3.3 to the io0 in pin and the board didn't read it. Below are images of the wiring. -
First, I see red/black/white on the switch and red/black/blue on the Duet connector, so that's strange.
Second, let's forget about the switch at this time.
- Connect a jumper from the io_in pin to 3.3V and see what the endstop state is.
- Connect a jumper from the io_in pin to GND and see what the endstop state is.
If we can't get the endstop state to change doing this. it's either something we're missing in the configuration or the board is not working.
-
-
@justin-0 you should connect the switch between IN and GNC, not between IN and +3.3V. Preferably, use the NC contacts of the switch.
-
Thanks for the advice everyone. I'll be able to try it in a bit. I appreciate everyone's help!
-
I got it working thanks to everyone's advice. Using the two wires connected to the ground and io.0in pins, it works perfectly every time. Thanks for the help everyone!
-
AWESOME!!!