-
I'm a total noob with regards to the Duet and RepRap firmware.
When I touch the bit with the XYZ probe manually, the probe lights up AND registers in DWC. When I try to run my macro, the axis just keeps going, pushing the XYZ probe to the side.
It appears there is a link missing between the touch probe and the M675 or M38.2 command.
Can someone please have a look at my config and macro file and tell me what is wrong or missing ?
Thanks !!!
Yveskeconfig.g
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"duet3" ; set printer name ;DUAL Y M584 X0.0 Y0.1:0.2 Z0.3 ; Drives M569 P0.0 S0 ; physical drive 0.0 direction (0 = backwards, 1 = forwards (default 1)) M569 P0.1 S0 ; physical drive 0.1 direction (0 = backwards, 1 = forwards (default 1)) M569 P0.2 S0 ; physical drive 0.2 direction (0 = backwards, 1 = forwards (default 1)) M569 P0.3 S1 ; physical drive 0.3 direction (0 = backwards, 1 = forwards (default 1)) M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M92 X400.00 Y400.00 Z400.00 ; set steps per mm M566 X300.00 Y300.00 Z300.00 ; set maximum instantaneous speed changes (mm/min) M203 X2500.00 Y2500.00 Z2500.00 ; set maximum speeds (mm/min) M201 X150.00 Y150.00 Z150.00 ; set accelerations (mm/s^2) M906 X2100 Y2100 Z2100 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima ( 0 = set axis maximum (default), 1 = set axis minimum) M208 X730 Y810 Z100 S0 ; set axis maxima ( 0 = set axis maximum (default), 1 = set axis minimum) ; Endstops M574 X1 S1 P"!io0.in" ; configure active-high endstop for low end on X via pin io0.in M574 Y1 S1 P"!io1.in+!io2.in" ; configure active-high endstop for low end on Y via pin io1.in M574 Z2 S1 P"!io3.in" ; configure active-high endstop for high end on Z via pin io3.in ; OUT M950 F0 C"out1" ; create LED 0 on pin out1 M106 P0 S25 ; set LED 0 to 25 illumination (max 255) M950 F1 C"out8" ; create fan 1 on pin out8 M106 P1 S90 ; set fan 1 to 90 speed (max 255) ; Tools M563 P0 F0 S"Spindle" ; define tool 0 as controllable spindle (tool must be present - not used) G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets T0 ; select tool 0 ; Z-Probe M558 K0 P8 C"!io8.in" H10 F120 T3000 ; Z probe 0 via pin io8.in G31 Z10.0 ; set current probe status ; General G54 ; Use Workspace coordinate system M453 ; CNC Mode M564 S0 H0 ; Allow movement without homing (without axis maxima)
touch probe.g
; Touch probe.g ; called to find workpiece bottom left corner ; ; Display message without time-out and allow to position the bit M291 T-1 S3 X1 Y1 Z1 P"Make sure the bit is positioned in the hole of the touch probe well beneath the top surface" R"Touch probe" ; Find center of cavity M675 X R8 F100 P0 ; Find center in X axis M675 Y R8 F100 P0 ; Find center in Y axis ; Set bit above center of probe G0 Z15 ; rapid move Z axis 15 mm G0 X27 Y27 ; rapid move X and Y axis to middle of probe ; Probe Z component G38.2 Z-15 F100 ; seek until the probe circuit is closed Z-axis -15 mm ; Return bit to center of hole G0 Z15 ; rapid move Z axis 15 mm G0 X-27 Y-27 ; rapid move X and Y axis to center of cavity G0 Z-15 ; rapid move Z axis -15 mm G10 P0 L20 X0 Y0 Z10 ; store relative probe offset for coordinates system 0
-
Can you please provide the results of M122 and M98 P"config.g" as well so we can get some more info about your setup and check your config for any syntax errors?
-
As requested the console output of M122 and M98 P"config".
Thanks,
Yveske15/01/2021, 19:14:41: Connected to duet3 15/01/2021, 19:15:51: M122: === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v0.6 or 1.0 (SBC mode) Board ID: 08DJM-956L2-G43S4-6J1DD-3S86K-TB56F Used output buffers: 1 of 40 (10 max) === RTOS === Static ram: 154604 Dynamic ram: 162308 of which 32 recycled Exception stack ram used: 224 Never used ram: 76048 Tasks: NETWORK(ready,1972) HEAT(blocked,1416) CanReceiv(suspended,3820) CanSender(suspended,1488) CanClock(blocked,1452) TMC(blocked,204) MAIN(running,5056) IDLE(ready,76) Owned mutexes: === Platform === Last reset 00:01:45 ago, cause: power up Last software reset at 2021-01-15 19:11, reason: User, spinning module LinuxInterface, available RAM 75952 bytes (slot 3) Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN Error status: 0 MCU temperature: min 12.4, current 21.5, max 21.6 Supply voltage: min 24.1, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 4.1, current 12.1, max 12.6, under voltage events: 1 Driver 0: standstill, reads 58733, writes 25 timeouts 0, SG min/max 0/0 Driver 1: standstill, reads 58734, writes 25 timeouts 0, SG min/max 0/0 Driver 2: standstill, reads 58734, writes 25 timeouts 0, SG min/max 0/0 Driver 3: standstill, reads 58734, writes 25 timeouts 0, SG min/max 0/0 Driver 4: standstill, reads 58738, writes 22 timeouts 0, SG min/max 0/0 Driver 5: standstill, reads 58738, writes 22 timeouts 0, SG min/max 0/0 Date/time: 2021-01-15 19:15:51 Slowest loop: 3.67ms; fastest: 0.14ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 37.5MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 0ms Bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1 === AuxDDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 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 ready with "M122" 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. === Network === Slowest loop: 0.82ms; fastest: 0.01ms 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: 0 of 8 - Ethernet - State: disabled Error counts: 0 0 0 0 0 Socket states: 0 0 0 0 0 0 0 0 === CAN === Messages sent 0, longest wait 0ms for type 0 === Linux interface === State: 0, failed transfers: 0 Last transfer: 18ms ago RX/TX seq numbers: 2739/2740 SPI underruns 0, overruns 0 Number of disconnects: 0 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.1.1 Code buffer space: 4096 Configured SPI speed: 8000000 Hz Full transfers per second: 32.38 15/01/2021, 19:17:53: M98 P"config.g"
-
Maybe interesting to note:
I'm using a Raspberry Pi 3B+ to run DWC with voltage supplied by the Duet, with normal PC monitor, keyboard and mouse connected to the Pi. -
@Phaedrux
Tried several times now, but M98 doesn't display much... -
@Yveske said in Duet 3 6HC with Openbuilds XYZ Probe:
@Phaedrux
Tried several times now, but M98 doesn't display much...That's ok, it doesn't always. Any messages or errors that would be generated by the gcode in config.g normally get lost at bootup, so sending the command to load it as a macro will let any of those message be displayed. So no messages is a good thing.
@Yveske said in Duet 3 6HC with Openbuilds XYZ Probe:
Maybe interesting to note:
I'm using a Raspberry Pi 3B+ to run DWC with voltage supplied by the Duet, with normal PC monitor, keyboard and mouse connected to the Pi.That's a risky proposition. It certainly wouldn't work well that way with a Pi4 due to its increased power draw. And even with the Pi3 I would be reluctant to run it with that many USB peripherals powered by the Pi USB ports. It may be prudent to power the Pi separately.
See this section and the one below it on electronics power consumption.
https://duet3d.dozuki.com/Wiki/Duet_3_Mainboard_6HC_Hardware_Overview#Section_5V@Yveske said in Duet 3 6HC with Openbuilds XYZ Probe:
RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v0.6 or 1.0 (SBC mode)
It would be a good idea to update your firmware to 3.2 now that it's available. Lots of fixes for the SBC version. You should be able to update by running Sudo apt update followed by sudo apt upgrade.
https://github.com/Duet3D/RepRapFirmware/releases/tag/3.2
After that see if behaviour has changed. Other than that I'm not sure. I've moved this to the CNC forum as well for better visibility by someone more informed.
-
@Phaedrux thanks for pointing me to the update
After the update it is a little bit better, but definitely not reliable yet.
See Duet3D XYZ Touch.mp4It sometimes (like in the video) starts off in -X like it should, sometimes it starts going directly to +X. Sometimes it doesn't stop in X, but always fails in Y. Either way I have to hit the emergency stop to prevent it from killing yet another end stop.
-
It also makes no difference powering the Pi or not.
It's a Pi 4 2 GB I'm using, the 3B+ resides in another project of mine. -
At this point I would ask if you could test in standalone mode without the Pi. This will help identify if it's an issue with RRF or DSF.
https://duet3d.dozuki.com/Wiki/Getting_Started_With_Duet_3#Section_Running_in_standalone_mode
You can download the contents of your system tab and macros and use a separate SD card. That SD card will need the DWC files in the /www folder as well. Disconnect the Pi, connect network to the duet, put the SD card into the duet. More details in link above.
-
@Phaedrux
Couldn't get it to work yet, didn't have much time today, will try again tomorrow -
I doubt it will make a difference to run the Duet in standalone mode in this case.
Is it right that your touch probe is configured as the Z probe? If yes, you should be able to check if the Z probe value in DWC goes from 0 to 1000 whenever it lights up. If it doesn't, I suspect you have a bad contact somewhere.
-
@chrishamm
The touch probe does respond to being activated, it lights up and the value on the screen goes to 1000. In the video you can see that probing even works (but not always) on the X-axis, it does always fail on the Y-axis though...Will try to get my Duet to boot in standalone mode today. Due to circumstances, my Duet was left boxed for over a year and a half, so I don't have the dual boot SD card. I also don't have the PanelDue, so I can't see what it does or doesn't do on boot... That's why I went with the Pi to connect monitor, mouse and keyboard.
-
@Phaedrux
Took me some time, but got the Duet to work, the touch probe doesn't however...
Something I could try next ?Thanks in advance
Yveske -
I'm not sure. It's quite odd. You can see the green LED flash on the X probing, and on the Y it certainly lights up, but isn't being respected.
Maybe related to the dual Y axis?
-
@Phaedrux
Thanks I will try this today and let you know. -
@Phaedrux
Not sure how I can probe on Y with only one motor running without breaking the gantry and without disassembling...I did however simulate M675 by manually using M38.2 and M38.4 commands on all axis (X, Y and Z) and this works like a charm.
Is it possible in a macro to access the coordinates after each command and use that to calculate the center of the cavity myself ?
-
@Yveske said in Duet 3 6HC with Openbuilds XYZ Probe:
Not sure how I can probe on Y with only one motor running without breaking the gantry and without disassembling...
Yeah that's not something you can easily test
-
Is there anyone out there who can try M675 in both X and Y axis please ?
Thanks,
Yveske -
No takers ?
Any chance this will be fixed (if need be) in the next release ? -
Does M38.2 work properly now, and it is just M675 that doesn't?
What M675 command are you sending? Have you used the P parameter to specify that you are using a Z probe, and which one?