Endstops Stop working
dank0 last edited by dank0
I updated fw to 3.4.0beta5 and my endstops stop working. when i want to home any direction it doesn't stop the motion in that specific direction. I tried the gcode M119 and i get this:
M119 Endstops - X: not stopped, Y: not stopped, Z: no endstop, Z probe: not stopped
when i hold the switch in any direction and shoot the same gcode, it sends me same response. I dont know where is the problem? should i reset the board and flash the older fw?
=== Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.0beta5 (2021-10-12 13:54:53) running on Duet WiFi 1.0 or 1.01 + DueX5 Board ID: 0JD0M-9P61A-J8PSJ-6JTD0-3SD6Q-9ARGT Used output buffers: 3 of 24 (12 max) === RTOS === Static ram: 23868 Dynamic ram: 75664 of which 12 recycled Never used RAM 12536, free system stack 184 words Tasks: NETWORK(ready,13.2%,245) HEAT(notifyWait,0.0%,327) Move(notifyWait,0.0%,363) DUEX(notifyWait,0.0%,24) MAIN(running,86.3%,440) IDLE(ready,0.6%,30), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:02:12 ago, cause: software Last software reset at 2021-10-28 00:10, reason: User, GCodes spinning, available RAM 12488, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Step timer max interval 0 MCU temperature: min 33.8, current 34.3, max 34.8 Supply voltage: min 12.0, current 12.1, max 12.2, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Driver 0: pos 0,standstill, SG min/max n/a Driver 1: pos 0,standstill, SG min/max n/a Driver 2: pos 0,standstill, SG min/max n/a Driver 3: pos 0,standstill, SG min/max n/a Driver 4: pos 0,standstill, SG min/max n/a Driver 5: pos 0,standstill, SG min/max n/a Driver 6: pos 0,standstill, SG min/max n/a Driver 7: pos 0,standstill, SG min/max n/a Driver 8: pos 0,standstill, SG min/max n/a Driver 9: pos 0,standstill, SG min/max n/a Driver 10: pos 0 Driver 11: pos 0 Date/time: 2021-10-28 00:12:24 Cache data hit count 4294967295 Slowest loop: 4.34ms; fastest: 0.17ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 10 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 3.2ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 === GCodes === Segments left: 0 Movement lock held by null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 Daemon is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty === DueX === Read count 1, 0.45 reads/min === Network === Slowest loop: 81.61ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 1 of 8 - WiFi - Network state is active WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 0 WiFi firmware version 1.23 WiFi MAC address 48:3f:da:87:83:23 WiFi Vcc 3.35, reset reason Power up WiFi flash size 4194304, free heap 20096 WiFi IP address 192.168.2.148 WiFi signal strength -73dBm, mode none, reconnections 0, sleep mode modem Clock register ffffffff Socket states: 0 0 0 0 0 0 0 0
; General preferences G90 ; send absolute coordinates... G21 ; Work in millimetres M83 ; ...but relative extruder moves M550 P"Voron" ; set printer name M669 K1 ; select CoreXY mode M404 N1.75 D0.4 ; Set nominal filament diameter to 1.75 and nozzle width to 0.4 ; Network M551 P"kodan1" ; set password M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S1 ; enable FTP M586 P2 S1 ; enable Telnet ; Drives M569 P0 S1 D2 I1 ; physical drive 0 goes forwards M569 P1 S0 D2 I1 ; physical drive 1 goes forwards M569 P2 S0 D2 I1 ; physical drive 2 goes forwards M569 P3 S0 D2 I1 ; physical drive 3 goes forwards M569 P4 S1 D2 I1 ; physical drive 4 goes forwards M569 P5 S1 D2 I1 ; physical drive 5 goes forwards M569 P6 S0 D2 I1 ; physical drive 6 goes forwards M584 X0 Y1 Z2:5:6:4 E3 ; set drive mapping M350 Z16 I0 ; configure microstepping without interpolation M350 X16 Y16 E16 I1 ; configure microstepping with interpolation M671 X-75:-75:413.5:413.5 Y-47:375:375:-47 S20 ; define positions of Z leadscrews or bed levelling screws M92 X80.00 Y80.00 Z400.00 E411.7 ; set steps per mm M566 X900.00 Y900.00 Z1000.00 E3000.00 ; set maximum instantaneous speed changes (mm/min) M203 X30000.00 Y30000.00 Z3000.00 E4200.00 ; set maximum speeds (mm/min) M201 X3000.00 Y3000.00 Z1000.00 E5000.00 ; set accelerations (mm/s^2) M906 X900 Y900 Z900 E600 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 S1 X35 Y25 Z0 ; set axis lower limits M208 S0 X295 Y265 Z330 ; set axis upper limits ; Endstops M574 X2 S1 P"xstop" ; configure active-high endstop for high end on X via pin xstop M574 Y2 S1 P"ystop" ; configure active-high endstop for high end on Y via pin ystop M574 Z1 S2 P"zstop" ; configure Z-probe endstop for low end on Z ; Z-Probe M558 P5 C"^!zprobe.in" H5 F500 T6000 A5 ; set Z probe type to switch and the dive height + speeds G31 P500 X0 Y13 Z4.012 ; set Z probe trigger value, offset and trigger height M557 X60:320 Y85:320 P7 ; define mesh grid ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 B0 R0.408 C323.9 D2.25 S1.00 V12.1 ; disable 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"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 B0 R2.567 C179.5 D12.64 S1.00 V11.9 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F1 C"fan1" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P1 C"FILAMENT COOLING" S0 H-1 X0.35 B0.1 ; set fan 0 value. Thermostatic control is turned off M950 F2 C"fan2" Q500 ; create fan 2 on pin fan1 and set its frequency M106 P2 C"HOTEND FAN" S1 ; set fan 2 value. Thermostatic control is turned on ; Tools M563 P0 S"E3DV6" D0 H1 F1 ; 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 M572 D0 S0.06 ; pressure advance
UPDATE: when i reboot the printer and after reboot I hold X or Y endstop, M119 Shows they are triggered, But when i do any move the X or Y, the endstops stop working
@dank0 what version of the firmware were you using before?
The M574 commands look good for a switch type endstop.
So from a fresh startup you use M119 and the endstops show to trigger when held down and un triggered when not? then if you home does it home as expected?
@t3p3tony 3.4.0beta4, ok so i think found the issue - when the homing goes direction Z it disable all endstops. Did you guys see this issue before?
@dank0 i have not seen that, whats in your homez.g? Also could you try downgrading to 3.4b4 temporarily to see if the problem goes away?
@t3p3tony so i tried to downgrade, it was still with the same issue. I also have one SD card with configured klipper, so i tried to flash klipper and klipper works fine. But i want to use reprap fw.
; homez.g ; called to home the Z axis G90 ; absolute mode G1 H2 Z40 F3000 ; lift Z relative to current position G1 X310 Y345 F7000 ; go to enprobe point G1 H1 Z-340 F1000 ; move Z down stopping at the endstop G1 H2 Z5 F1000 ; move Z back 5mm G1 H1 Z-10 F1000 ; move Z slowly towards the switch until it triggers G1 H2 Z50 F3000 ; move Z up 50mm G1 X175 Y175 F7000 ; go to the center of bed G90 ; back to absolute mode
dank0 last edited by dank0
I have another question maybe that is the issue -
from top view my origin 0.0 position is in rear, right corner. In klipper i have same origin. In klipper my movement to left are positive so for example if i go from 0 to 200, it is + direction. Here is the minus direction so it will be -200. is that correct or i have switched motor directions?
When i was installing Klipper i have to switch Z motors position so they are like this
Z3 |-----------| Z
Z2 |________| Z1
In the REPRAP the motors are defined with M584
M584 X0 Y1 Z2:5:6:4 E3
does the Z order matters?
@dank0 RepRap firmware assumes a right handed co-ordinate system
So for CoreXY XY motors:
For a CoreXY or H-Bot machine, RepRapFirmware assumes that the motor connected to the X motor output moves the head in the +X and +Y directions when it runs forwards, and that the Y motor moves the head in +X and -Y directions when it runs forwards.
Important: make sure that you have chosen a right-hand axis system. That is, looking down on the printer the +Y direction should be 90 degrees anticlockwise from the +X direction. If instead it is 90 degrees clockwise, you have a left-hand axis system, which will give you mirror-image prints.
For the independent Z motors:
You must use the M671 command to define the X and Y coordinates of the leadscrews. The M671 command must come after the M584 command and must specify the same number of X and Y coordinates as the number of motors assigned to the Z axis in the M584 command; and these coordinates must be in the same order as the driver numbers of the associated motors in the M584 command. The M671 command must also come after any M667 or M669 command.
So I think you have everything backwards, however I am not convinced this is the cause of the Z homing issue.
fcwilt last edited by fcwilt
In your homeZ.g file you have an initial G90 - it should be a G91.
@dank0 how did they not work with the endstops? you can set where the endstops are on the axis with the M574 commands, so they can be configured as either at the min or the max of the axis.
Or do you mean the issue where homing Z stops the endstops working?
@t3p3tony no, the endstops become not activated. they work after reboot but when the motors make motion they become not active, i don't know why. but Klipper have no issue - in klipper i have to just add pin numbers and works but RR doesnt react properly on xstop, ystop etc. also i tried to change to other sockets without luck.
fcwilt last edited by
Did you verify that when triggering the endstop sensors by hand that the correct state appeared in the the Object Model as displayed in the DWC?
Did you correct your homing code where you had the G90 that should have been a G91?
Please post your homex.g, homey.g and homeall.g files too.
BTW your Z homing script is incorrect - although I don't think that is the cause of your issue with re-homing X and Y. When using a Z probe for homing, you should home Z using a G30 command, not a G1 H1 command, and you do not need to define a Z endstop using M574. See https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Homing_Z_using_a_Z_probe.