Z-probe released with a solenoid
-
@marcossf, try uploading just that file again, then run M997 again.
Which version of Duet web Control is currently running? See the Settings General tab.
-
@dc42 This one:
Unable to upload the files, not even one by one.
I can try some options, try to run from USB (bossa method) or write the files directly to SD card....
-
@marcossf said in Z-probe released with a solenoid:
@dc42 This one:
Unable to upload the files, not even one by one.
I can try some options, try to run from USB (bossa method) or write the files directly to SD card....
You are running a version of DWC older than the version of RRF installed on your main board.
If you send M115, what firmware version does it report? Maybe it has upgraded the main board firmware already.
Are you able to upload the DuetWebControl-SD.zip file from the 3.3beta3 release?
-
@dc42 OK, done!
First of all i updated the DWC version uploading the ZIP. After that, uploaded the files remainig succesfully.
Just intuition. There isn't documented or advert anywhere.
m122 b121 Diagnostics for board 121: Duet TOOL1LC firmware version 3.3beta3 (2021-04-21 20:42:51) Bootloader ID: not available Never used RAM 4320, free system stack 0 words Tasks: Move(notifyWait,0.0%,153) HEAT(delaying,0.0%,81) CanAsync(notifyWait,0.0%,66) CanRecv(notifyWait,0.0%,79) CanClock(notifyWait,0.0%,66) TMC(delaying,2.9%,57) MAIN(running,92.1%,413) AIN(delaying,5.0%,62), total 100.0% Last reset 00:01:21 ago, cause: software Last software reset data not available Driver 0: position 0, 400.0 steps/mm, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 61, reads 40626, writes 12, timeouts 0, DMA errors 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter 8, peak Rx sync delay 217, resyncs 0, no step interrupt scheduled VIN: 23.9V MCU temperature: min 33.4C, current 33.5C, max 33.7C Ticks since heat task active 60, ADC conversions started 81304, completed 81302, timed out 0, errs 0 Last sensors broadcast 0x00000000 found 0 64 ticks ago, loop time 0 CAN messages queued 26, send timeouts 0, received 421, lost 0, free buffers 36, min 36, error reg 0 dup 0, oos 0, bm 0, wbm 0 Accelerometer detected: no I2C bus errors 4619, naks 4619, other errors 4619
23/4/2021 14:06:01 m122 b40 Diagnostics for board 40: Duet EXP1XD firmware version 3.3beta3 (2021-04-21 20:34:11) Bootloader ID: SAMC21 bootloader version 2.0 (2020-10-15b1) Never used RAM 5812, free system stack 0 words Tasks: Move(notifyWait,0.0%,153) HEAT(delaying,0.0%,75) CanAsync(notifyWait,0.0%,67) CanRecv(notifyWait,0.0%,78) CanClock(notifyWait,0.0%,67) MAIN(running,96.5%,420) AIN(delaying,3.5%,62), total 100.0% Last reset 00:01:12 ago, cause: software Last software reset data not available Driver 0: position 0, 86.0 steps/mm, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter 8, peak Rx sync delay 200, resyncs 0, no step interrupt scheduled VIN: 24.4V MCU temperature: min 21.9C, current 22.0C, max 22.3C Ticks since heat task active 6, ADC conversions started 36374, completed 36374, timed out 0, errs 0 Last sensors broadcast 0x00000000 found 0 10 ticks ago, loop time 0 CAN messages queued 24, send timeouts 0, received 377, lost 0, free buffers 36, min 36, error reg 0 dup 0, oos 0, bm 0, wbm 0
23/4/2021 14:05:41 m122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.3beta3 (2021-04-22 16:28:03) running on Duet 3 MB6HC v1.01 or later (standalone mode) Board ID: 08DJM-956L2-G43S4-6J9F4-3S46N-TU4QD Used output buffers: 1 of 40 (11 max) === RTOS === Static ram: 149960 Dynamic ram: 91328 of which 24 recycled Never used RAM 112880, free system stack 184 words Tasks: NETWORK(ready,30.0%,254) ETHERNET(notifyWait,0.2%,117) HEAT(delaying,0.0%,353) Move(notifyWait,0.0%,150) CanReceiv(notifyWait,0.0%,907) CanSender(notifyWait,0.0%,373) CanClock(delaying,0.0%,341) TMC(notifyWait,7.5%,93) MAIN(running,62.1%,1114) IDLE(ready,0.2%,19), total 100.0% Owned mutexes: === Platform === Last reset 00:00:52 ago, cause: software Last software reset at 2021-04-23 14:04, reason: User, GCodes spinning, available RAM 112896, slot 1 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 Aux1 errors 0,0,0 Step timer max interval 127 MCU temperature: min 33.2, current 33.7, max 34.0 Supply voltage: min 24.0, current 24.1, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.2, max 12.2, under voltage events: 0 Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Driver 0: position 0, standstill, reads 27998, writes 11 timeouts 0, SG min/max 0/0 Driver 1: position 0, standstill, reads 27995, writes 14 timeouts 0, SG min/max 0/0 Driver 2: position 0, standstill, reads 27995, writes 14 timeouts 0, SG min/max 0/0 Driver 3: position 0, standstill, reads 27998, writes 11 timeouts 0, SG min/max 0/0 Driver 4: position 0, standstill, reads 27999, writes 11 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 27999, writes 11 timeouts 0, SG min/max 0/0 Date/time: 2021-04-23 14:05:40 Slowest loop: 3.77ms; fastest: 0.05ms === Storage === Free file entries: 10 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 2.2ms, write time 0.0ms, max retries 0 === Move === DMs created 125, maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = -1 -1 -1 -1 -1 -1 -1 -1 -1 -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 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === CAN === Messages queued 273, send timeouts 0, received 12, lost 0, longest wait 1ms for reply type 6042, peak Tx sync delay 6, free buffers 49 (min 48) === Network === Slowest loop: 1.89ms; fastest: 0.02ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions HTTP sessions: 2 of 8 - Ethernet - State: active Error counts: 0 0 1 0 0 Socket states: 5 2 2 2 2 0 0 0
-
OK, the problem was that you were running DWC 2.1.0 with RRF 3.2.2, instead of installing DWC 3.2.2 when you installed RRF 3.2.2. I'm glad it's solved now.
-
@dc42 said in Z-probe released with a solenoid:
However, RRF 3.3beta3 released yesterday already includes some of the changes to remove this limitation. If you upgrade to that release, then a G30 command should stop the Z motor even if it is connected to the tool board.
I could test really fast this with 3.3.0beta3 and its still unsolved. G30 command or home doesn't trigger when the motor isn't connected to 6HC.
The deploy and retract probe now works well in G30 or home, connected to out4 fan connector.
-
@marcossf said in Z-probe released with a solenoid:
I could test really fast this with 3.3.0beta3 and its still unsolved. G30 command or home doesn't trigger when the motor isn't connected to 6HC.
That's odd, because I tested it this morning (G30 with the Z motor connected to a EXP1HC external driver board). Please check that after deploying the Z probe, the Z probe status in DWC still changes from 0 to 1000 when the probe is triggered.
-
Yes, the status in DWC detects the endstop activation.
At this moment Z motor is in the 1LC board.
I could try changing the endstop and the Z motor to the 1XD instead of the 1LC, and thus potentially fix the other added problem you mentioned.
I have thought that the probe will not be in the head anyway but it will be on the Z1 axis, so we would simply have to bring the endstop wiring to the 1XD board instead of the 6HC.
I'll test that inmediately.
-
@marcossf said in Z-probe released with a solenoid:
@dc42I could try changing the endstop and the Z motor to the 1XD instead of the 1LC, and thus potentially fix the other added problem you mentioned.
I changed the endstop to 1LC where Z motor is. I couldn't test in the 1XD at this moment but serves for check as it has the same typology.
Tested, but same behaviour, the endstop activation can be seen in the DWC status (0-1000) but not stop the Z motor.
; General preferences M552 S1 ; activa la configuracion de red ethernet G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Duet 3" ; set printer name G4 S1 ;wait for expansion boards to start ; Drives M569 P40.0 S1 ; physical drive 0.0 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P121.0 S1 ; physical drive 121.0 goes forwards M584 X40.0 Y0.1 Z121.0 E0.2 ; set drive mapping M350 X1 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X86.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 X24000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min) M201 X1500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2) M906 Y1000 Z800 E1000 ; set motor currents (mA) M84 S0 ; Disable motor idle current reduction ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X200 Y200 Z100 S0 ; set axis maxima ; Endstops M574 X1 S1 P"!40.io0.in" ; configure active-high endstop for low end on X via pin !40.io0.in M574 Y1 S1 P"io0.in" ; configure active-high endstop for low end on Y via pin !io0.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"out4" ; create servo pin 0 for solenoid io3.out M558 P8 C"121.io0.in" H25 F120 T5000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X0 Y0 Z1 ; set Z probe trigger value, offset and trigger height M557 X15:200 Y15:195 S20 ; define mesh grid
-
@dc42 Do you have any clue as to why the endstop does not stop the motor, both on the 6HC and 1LC boards, and yet if it detects both the DWC status and the M119 its activation?
Whatever you do, the g28, g30 etc will not stop the Z axis motor. The problem is no longer with the probe or the solenoid, there is something else.
-
@marcossf said in Z-probe released with a solenoid:
@dc42 Do you have any clue as to why the endstop does not stop the motor, both on the 6HC and 1LC boards, and yet if it detects both the DWC status and the M119 its activation?
Whatever you do, the g28, g30 etc will not stop the Z axis motor. The problem is no longer with the probe or the solenoid, there is something else.
I know why it didn't stop the motor in firmware versions prior to 3.3beta3. I don't know why it doesn't in 3.3beta3.
Please can you try configuring an extra Z driver on the main board. So your M584 command would look something like this:
M584 X40.0 Y0.1 Z121.0:0.5 E0.2 ; set drive mapping
This should cause the main board to stop the motors when the Z probe triggers, even when using firmware older than 3.3beta3. You don't need to connect a motor to the extra driver, however you will probably see "phase may be disconnected" messages.
-
@dc42 Ok, I'll try this inmediately.
-
@dc42 OK, tested
Warning: motor phase A may be disconnected reported by driver(s) 5 Warning: motor phase B may be disconnected reported by driver(s) 5
Indeed the log gives the error of the engine that does not exist, but even with this configuration, the endstop is still detected as before, but the Z motor does not stop when activated.
Physicaly the endstop is in LC1 where the Z motor is:
Config.g:
; General preferences M552 S1 ; activa la configuracion de red ethernet G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Duet 3" ; set printer name G4 S1 ;wait for expansion boards to start ; Drives M569 P40.0 S1 ; physical drive 0.0 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P121.0 S1 ; physical drive 121.0 goes forwards ;M584 X40.0 Y0.1 Z121.0 E0.2 ; set drive mapping M584 X40.0 Y0.1 Z121.0:0.5 E0.2 ; set drive mapping ----- test DC42 ---- M350 X1 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X86.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 X24000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min) M201 X1500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2) M906 Y1000 Z800 E1000 ; set motor currents (mA) M84 S0 ; Disable motor idle current reduction ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X200 Y200 Z100 S0 ; set axis maxima ; Endstops M574 X1 S1 P"!40.io0.in" ; configure active-high endstop for low end on X via pin !40.io0.in M574 Y1 S1 P"io0.in" ; configure active-high endstop for low end on Y via pin !io0.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"out4" ; create servo pin 0 for solenoid io3.out M558 P8 C"121.io0.in" H25 F120 T5000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X0 Y0 Z1 ; set Z probe trigger value, offset and trigger height M557 X15:200 Y15:195 S20 ; define mesh grid
Activating with the finger in the Z endstop:
-
@marcossf thanks, that's useful information. I will test that configuration on my bench system.
-
@dc42 Ok, hope you could find something wrong. Ask me if you want to do any test with my HW.
-
@marcossf, I have tested your configuration. G30 works as it should:
- Solenoid output is activated
- Z motor attached to tool boards drives in one direction
- When the probe is triggered, the Z motor reverses. This is because after triggering, it returns to the dive height. Your M558 command has the dive height set to a large value (25mm), so it travels quite a long way before stopping. When it stops, the Z coordinate reads 26.0 which is the trigger height plus the dive height.
- Solenoid output is deactivated
The behaviour is the same (using firmware 3.3beta3) whether or not I have the dummy Z drive configured in the M584 command.
-
@dc42 Ok, tested and works well same as you tested.
The H parameter was the hint, and dificult for us to see what happened with the bare motor axis. We could test it right when H=0. Greater values doesn't retract the probe in the moment the endstop is triggered.
M558 P8 C"121.io0.in" H5 R1 F120 T5000 ; set Z probe type
We had to add a "R1" option to let the probe stabilize at bottom before touch, because if I not do this delay, the endstop triggers at probe deploy.
Also we tested if the endstop can be activated when isn't at the external board where the motor is, wich is better for our cabling, and it works also.
The problem that still have, it's when issue a G30 command, the probe deploys, the z motor moves a little, and after that the probe retracts without having been toched the endstop; it reflects Z=1mm in the DWC status. However when G28 waits for the endstop, trigger it and set the Z=0 status. Different behaviour.
I'll do some aditional tests to see what's happening.
-
@dc42 Still fighting with G30. Quick test in video, hope could unterstand it.
Video timming:
0:03 - Initial G28 move, back Z up 5mm.
0:13 - After X and Y home, the probe is deployed and start to move Z down.
0:18 - I push the probe for endstop trigger stop and back Z up.
0:25 - G30 issued after been homed all axes.As you can see, the G30 triggers itself without touching. It is assumed that it would have to behave in the same way as the g28 (homeall.g or homez.g) does. Isn't it?
Config.g:
; Endstops M574 X1 S1 P"!40.io0.in" ; configure active-high endstop for low end on X via pin !40.io0.in M574 Y1 S1 P"io0.in" ; configure active-high endstop for low end on Y via pin !io0.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"out4" ; create servo pin 0 for solenoid io3.out M558 P8 C"io3.in" H0 R1 F120 T5000 G31 P500 X0 Y0 Z1 ; set Z probe trigger value, offset and trigger height M557 X15:200 Y15:195 S20 ; define mesh grid
Homeall.g:
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Mar 24 2021 10:52:22 GMT+0100 (hora estándar de Europa central) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-205 Y-205 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) ;G1 H2 X5 Y5 F6000 ; go back a few mm ;G1 H1 X-205 Y-205 F360 ; move slowly to X and Y axis endstops once more (second pass) G1 X100 Y100 F1800 G30 G90 ; absolute positioning G92 Z0 ; set Z position to axis minimum (you may want to adjust this) ; Uncomment the following lines to lift Z after probing G91 ; relative positioning G1 Z5 F1000 ; lift Z relative to current position G90 ; absolute positioning
Homez.g:
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Mar 24 2021 10:52:22 GMT+0100 (hora estándar de Europa central) G91 ; relative positioning G1 H2 Z1 F6000 ; lift Z relative to current position G90 ; absolute positioning G1 X100 Y100 F6000 ; go to first probe point G30 ; home Z by probing the bed ; Uncomment the following lines to lift Z after probing G91 ; relative positioning G1 Z5 F100 ; lift Z relative to current position G90 ; absolute positioning
-
@dc42
Off topic: By the way, do you think it is possible to make these piezoelectric pushbuttons work as endstop? It is to measure the length of the tool by touch contact, fixed to the bed and additional to Z probing.https://docs.rs-online.com/d7f5/0900766b80e29fe0.pdf (model PBAT5AFB000)
-
@marcossf why not use precision piezo units? the andromedas are basiclly that.