Upgrade from Duet 2 wifi to Duet 3 6hc config Issues
-
@droftarts Thank you for lookinh into this.
I deleted the 2 lines from homeall.g but I still get "Error: in file macro line 14: G1: insufficient axes homed"
If I home X and Y I get " Error: in file macro line 14: G1: target position outside machine limits".Here are the current files for reference
homeall.g
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.5.4 on Mon Sep 09 2024 22:47:08 GMT-0600 (Mountain Daylight Time) ; increase Z G91 ; relative positioning G1 H2 Z5 F7200 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home XY var xTravel = move.axes[0].max - move.axes[0].min + 5 ; calculate how far X can travel plus 5mm var yTravel = move.axes[1].max - move.axes[1].min + 5 ; calculate how far Y can travel plus 5mm ;G91 ; relative positioning G1 H1 X{-var.xTravel} Y{-var.yTravel} F6000 ; coarse home in the -X and -Y directions G1 H2 X5 Y5 F7200 ; move back 5mm G1 H1 X{-var.xTravel} Y{-var.yTravel} F300 ; fine home in the -X and -Y directions G90 ; absolute positioning ; home Z var xCenter = move.compensation.probeGrid.mins[0] + (move.compensation.probeGrid.maxs[0] - move.compensation.probeGrid.mins[0]) / 2 - sensors.probes[0].offsets[0] var yCenter = move.compensation.probeGrid.mins[1] + (move.compensation.probeGrid.maxs[1] - move.compensation.probeGrid.mins[1]) / 2 - sensors.probes[0].offsets[1] G1 X{var.xCenter} Y{var.yCenter} F7200 ; go to bed centre G30 ; probe the bed
homez.g
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.5.4 on Mon Sep 09 2024 22:47:08 GMT-0600 (Mountain Daylight Time) ; increase Z G91 ; relative positioning G1 H2 Z5 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home Z var xCenter = move.compensation.probeGrid.mins[0] + (move.compensation.probeGrid.maxs[0] - move.compensation.probeGrid.mins[0]) / 2 - sensors.probes[0].offsets[0] var yCenter = move.compensation.probeGrid.mins[1] + (move.compensation.probeGrid.maxs[1] - move.compensation.probeGrid.mins[1]) / 2 - sensors.probes[0].offsets[1] G1 X{var.xCenter} Y{var.yCenter} F7200 ; go to bed centre G30 ; probe the bed
config.g
; Configuration file for RepRapFirmware on Duet 3 Main Board 6HC ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.5.4 on Mon Sep 09 2024 22:47:07 GMT-0600 (Mountain Daylight Time) ; General G90 ; absolute coordinates M83 ; relative extruder moves M550 P"Duet3CNC" ; set hostname ; Accessories M575 P1 S0 B57600 ; configure PanelDue support ; Smart Drivers M569 P0.0 S0 D2 ; driver 0.0 goes backwards (X axis) M569 P0.1 S0 D2 ; driver 0.1 goes backwards (Y axis) M569 P0.2 S0 D2 ; driver 0.2 goes forwards (Z axis) M569 P0.3 S1 D2 ; driver 0.3 goes forwards (y1 axis) M569 P0.4 S0 D2 ; driver 0.4 goes forwards (z1 axis) ; Motor Idle Current Reduction M906 I30 ; set motor current idle factor M84 S30 ; set motor current idle timeout ; Axis M669 K0 ; set Cartesian kinematics M584 X0.0 Y0.1:0.3 Z0.2:0.4 ; set axis mapping M350 X16 Y16 Z16I1 ; configure microstepping with interpolation M906 X800 Y800 Z800 ; set axis driver currents M92 X100 Y100 Z400 ; configure steps per mm M566 X900 Y900 Z12 ; set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000 Z180 ; set maximum speeds (mm/min) M201 X1500 Y1500 Z60 ; set accelerations (mm/s^2) ; Axis Limits M208 X0 Y0 Z-30 S1 ; set axis minimum M208 X1248 Y2470 Z200 S0 ; set axis maximum ; Kinematics ;M669 K0 ; configure Cartesian kinematics ; Probes M558 P5 C"io6.in" H5 F120 T6000 ; configure analog probe via slot #0 G31 P850 X0 Y0 Z13.95 ; set Z probe trigger value, offset and trigger height ; Endstops M574 X1 S1 P"io1.in" ; configure X axis endstop via pin io1.in M574 Y1 S1 P"io2.in+io3.in" ; configure active-high endstop for low end on Y via pin io2.in + io3.in M574 Z2 S1 P"io4.in+io5.in" ; configure active-high endstop for high end on Z via pin io4.in + io5.in ;M666 Y+2 ; move Y1 motor -1.5 from block to adjust for square ; Heaters M140 H-1 ; disable heated bed (overrides default heater mapping) M141 H-1 ; Spindles M950 R0 C"out9" Q1000 L10000:30000 ; configure spindle #0 M563 P1 S"Makita R0701C" R0 ; create tool #0 M453 ; set to CNC mode ; Lasers ;M950 c"io7.out" S1 Q500 M452 C"io7.out" F500 R255 S1 ; configure Laser port ; Tools M563 P2 S"Laser" ;M568 P0 F0 ; set initial tool #0 active and standby temperatures to 0C ; Miscellaneous M452 ; select Laser mode T0 ; select first tool M308 S10 Y"mcu-temp" A"MCU" M308 S11 P"DRIVER_0" Y"drivers" A"X Driver" M308 S12 P"DRIVER_1" Y"drivers" A"Y Driver" M308 S13 P"DRIVER_3" Y"drivers" A"Y1 Driver" M308 S14 P"DRIVER_2" Y"drivers" A"Z Driver" M308 S15 P"DRIVER_4" Y"drivers" A"Z1 Driver"
-
Can you send M98 P"config.g" in the gcode console and share any errors that result?
-
@Alijambo73 said in Upgrade from Duet 2 wifi to Duet 3 6hc config Issues:
M350 X16 Y16 Z16I1 ; configure microstepping with interpolation
You're missing a space between the Z16 and I1
-
@Alijambo73 said in Upgrade from Duet 2 wifi to Duet 3 6hc config Issues:
;G91 ; relative positioning
In your homeall you should not comment out that G91. You want to be in relative mode for those X Y homing moves.
-
@Phaedrux I made the 2 changes. When I enter M98 P"config.g" into the console it just shows M98 P"config.g" with a green background and does not report any errors.
-
Can you send M122 in the console and share the report here?
Are you still getting that error message when homing?
How are you triggering the homing? -
@Phaedrux I'm still getting the both error messages.
Im using Home Z on the DWC dashboard.
Here is the M122 results
9/19/2024, 2:54:10 PM m122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.5.2 (2024-06-11 17:13:58) running on Duet 3 MB6HC v1.01 (SBC mode)
Board ID: 0JD2M-9P9DA-F0PS8-6JKD6-3S06P-1NUR2
Used output buffers: 1 of 40 (17 max)
=== RTOS ===
Static ram: 155360
Dynamic ram: 90872 of which 216 recycled
Never used RAM 96616, free system stack 146 words
Tasks: LASER(5,nWait 7,0.0%,235) SBC(2,ready,0.7%,837) HEAT(3,nWait 1,0.0%,341) Move(4,nWait 6,0.0%,238) CanReceiv(6,nWait 1,0.0%,939) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,336) TMC(4,nWait 6,9.5%,55) MAIN(2,running,89.7%,101) IDLE(0,ready,0.1%,29), total 100.0%
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 00:38:32 ago, cause: software
Last software reset at 2024-09-19 14:15, reason: User, Gcodes spinning, available RAM 96688, slot 2
Software reset code 0x6003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
Error status: 0x00
Aux0 errors 0,0,0
MCU temperature: min 45.1, current 45.6, max 45.8
Supply voltage: min 12.0, current 12.1, max 12.2, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 11.2, current 11.2, max 11.3, under voltage events: 0
Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/180/180, gc cycles 0
Events: 0 queued, 0 completed
Driver 0: standstill, SG min 0, mspos 472, reads 28165, writes 9 timeouts 0
Driver 1: standstill, SG min 0, mspos 424, reads 28165, writes 9 timeouts 0
Driver 2: standstill, SG min 0, mspos 520, reads 28161, writes 13 timeouts 0
Driver 3: standstill, SG min 0, mspos 984, reads 28164, writes 9 timeouts 0
Driver 4: standstill, SG min 0, mspos 776, reads 28160, writes 13 timeouts 0
Driver 5: standstill, SG min n/a, mspos 8, reads 28173, writes 0 timeouts 0
Date/time: 2024-09-19 14:54:13
Slowest loop: 83.76ms; fastest: 0.05ms
=== Storage ===
Free file entries: 20
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 ===
DMs created 125, segments created 3, maxWait 2048692ms, bed compensation in use: none, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00
no step interrupt scheduled
Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0
=== DDARing 0 ===
Scheduled moves 20, completed 20, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== DDARing 1 ===
Scheduled moves 0, completed 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, chamber heaters -1 -1 -1 -1, ordering errs 0
=== GCodes ===
Movement locks held by null, null
HTTP* is doing "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
File2 is idle in state(s) 0
Queue2 is idle in state(s) 0
Q0 segments left 0, axes/extruders owned 0x0000007
Code queue 0 is empty
Q1 segments left 0, axes/extruders owned 0x0000000
Code queue 1 is empty
=== CAN ===
Messages queued 2837, received 0, lost 0, errs 1493127, boc 0
Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 1576/0/0
Tx timeouts 0,0,1576,0,0,1261 last cancelled message type 30 dest 127
=== SBC interface ===
Transfer state: 5, failed transfers: 0, checksum errors: 0
RX/TX seq numbers: 7250/7250
SPI underruns 0, overruns 0
State: 5, disconnects: 1, timeouts: 1 total, 1 by SBC, IAP RAM available 0x24cfc
Buffer RX/TX: 0/0-0, open files: 0
=== Duet Control Server ===
Duet Control Server version 3.5.2 (2024-06-12 07:12:47, 64-bit)
HTTP+Executed:Executing M122
Code buffer space: 4096
Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0
Full transfers per second: 39.42, max time between full transfers: 62.3ms, max pin wait times: 64.4ms/2.0ms
Codes per second: 0.40
Maximum length of RX/TX data transfers: 4392/316 -
@Alijambo73 Could this have anything to do with the Z-probe? I havent connected it to the board yet.![alt text
-
@Phaedrux how do I find the macros file the errors is referring to?
-
@Alijambo73 Your Z-Probe is reading 1000, which means it is already triggered, and G30 won't work because it will see that the probe is already triggered. You won't get a sensible reading, going from 0 (not triggered) to 1000 (triggered) if you haven't connected the probe yet.
Are your X and Y endstops connected? If the endstop plugin is saying they are triggered, are the X and Y axes actually touching them? Or are they incorrectly reporting triggered when they are not?
how do I find the macros file the errors is referring to?
RepRapFirmware does not currently return the name of the macro that reports an error (though this is a feature request). However, it's pretty clear it's the homez.g macro. When homing with G30, X and Y MUST be homed first. But then, without the probe connected, G30 isn't going to work either.
Ian
-
@droftarts I have 5 endstops that are all switches. 1 on x 2 on y and 2 on z.
When I use the end stop monitor plug in they all seem to be working correctly. The screenshot shows that x and y are homed which was correct. I can manually trigger the 2 end stops Z and see that thay appear to be working too.
I have a probe to find 0 on the material. The 2 endstops used to home z are set to find the high end.
I'm thinking there is something in the config of the touchplate probe that is incorrect. I commented out the probe but the behavior remained the same.
Can you see where I have made a mistake with between the endstops and touch plate probe?
-
@Alijambo73 What type is your z probe? Is it like a switch?
-
@Alijambo73 Your home Z uses G30 to home, which is using the probe, not the Z endstops. If you want to use the Z endstops, you need to change homez.g to use them. Currently in homez.g you have:
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.5.4 on Mon Sep 09 2024 22:47:08 GMT-0600 (Mountain Daylight Time) ; increase Z G91 ; relative positioning G1 H2 Z5 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home Z var xCenter = move.compensation.probeGrid.mins[0] + (move.compensation.probeGrid.maxs[0] - move.compensation.probeGrid.mins[0]) / 2 - sensors.probes[0].offsets[0] var yCenter = move.compensation.probeGrid.mins[1] + (move.compensation.probeGrid.maxs[1] - move.compensation.probeGrid.mins[1]) / 2 - sensors.probes[0].offsets[1] G1 X{var.xCenter} Y{var.yCenter} F7200 ; go to bed centre G30 ; probe the bed
Change it to:
; home Z var zTravel = move.axes[2].max - move.axes[2].min + 5 ; calculate how far Z can travel plus 5mm G91 ; relative positioning G1 H1 Z{-var.zTravel} F600 ; coarse home in the -Z direction G1 H2 Z5 F6000 ; move back 5mm G1 H1 Z-10 F300 ; fine home in the -Z direction G90 ; absolute positioning
You will need to change the 'home Z' section of homeall.g too. You should also be able to home Z without having to home X and Y first.
Ian
-
@droftarts I'm using a touch plate like this.
-
@Alijambo73 You want to use a probe like that for setting tool offsets, not for homing the Z axis. Please try what I suggest in my last post.
Note that those type of probes are not much good for setting work offsets in X and Y. This type of probe is better: https://ooznest.co.uk/product/original-workbee-xyz-touch-probe/
Ian
-
@droftarts on my duet 2 board this all worked fine and I used the probe to determine 0 for the work peice while the microswitches were used for homing z.
I have changed the homez and homeall but still getting the 2 errors
Error: in file macro line 14: G1: target position outside machine limits
Error: in file macro line 14: G1: insufficient axes homed
This is how they read now.
Home z.g
; home Z var zTravel = move.axes[2].max - move.axes[2].min + 5 ; calculate how far Z can travel plus 5mm G91 ; relative positioning G1 H1 Z{-var.zTravel} F600 ; coarse home in the -Z direction G1 H2 Z5 F6000 ; move back 5mm G1 H1 Z-10 F300 ; fine home in the -Z direction G90 ; absolute positioning
homeall.g
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.5.4 on Mon Sep 09 2024 22:47:08 GMT-0600 (Mountain Daylight Time) ; increase Z G91 ; relative positioning G1 H2 Z5 F7200 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home XY var xTravel = move.axes[0].max - move.axes[0].min + 5 ; calculate how far X can travel plus 5mm var yTravel = move.axes[1].max - move.axes[1].min + 5 ; calculate how far Y can travel plus 5mm G91 ; relative positioning G1 H1 X{-var.xTravel} Y{-var.yTravel} F6000 ; coarse home in the -X and -Y directions G1 H2 X5 Y5 F7200 ; move back 5mm G1 H1 X{-var.xTravel} Y{-var.yTravel} F300 ; fine home in the -X and -Y directions G90 ; absolute positioning ; home Z var zTravel = move.axes[2].max - move.axes[2].min + 5 ; calculate how far Z can travel plus 5mm G91 ; relative positioning G1 H1 Z{-var.zTravel} F600 ; coarse home in the -Z direction G1 H2 Z5 F6000 ; move back 5mm G1 H1 Z-10 F300 ; fine home in the -Z direction G90 ; absolute positioning
-
@Alijambo73 Can you describe, from turning on the machine, exactly what you are doing, and post all the responses coming back from the console? ie of the two errors you report above, which is from running homez.g, and which is from running homeall.g?
Somehow, it seems some other macro is being called, and it's that macro that has got the error in it. Please could you zip your whole sys folder (so it has all the files) from your SD card and post it here? If you add '.txt' to the end after .zip, you should be able to upload it to the forum.
Ian
-
@droftarts after power up if I use home z I get " Error: in file macro line 14: G1: insufficient axes homed"
If I then home x and y, then use home z i get "Error: in file macro line 14: G1: target position outside machine limits"
After power up if I hit homeall (this is new) it will home correctly but then if I try to lower Z by -25 it tries to raise z even though the endstops are triggered.
This just keeps getting more weird.
-
@Alijambo73 said in Upgrade from Duet 2 wifi to Duet 3 6hc config Issues:
after power up if I use home z I get " Error: in file macro line 14: G1: insufficient axes homed"
This is normal if homeZ uses the Z probe to home, because you would be probing at a random position, possibly off the bed.
If I then home x and y, then use home z i get "Error: in file macro line 14: G1: target position outside machine limits"
You are doing this:
var xCenter = move.compensation.probeGrid.mins[0] + (move.compensation.probeGrid.maxs[0] - move.compensation.probeGrid.mins[0]) / 2 - sensors.probes[0].offsets[0] var yCenter = move.compensation.probeGrid.mins[1] + (move.compensation.probeGrid.maxs[1] - move.compensation.probeGrid.mins[1]) / 2 - sensors.probes[0].offsets[1] G1 X{var.xCenter} Y{var.yCenter} F7200 ; go to bed centre
My guess is that the calculation of yCenter and/or xCenter is going wrong. Have you set up the grid in config.g? Why not use bed centre calculated from the M208 limits instead?
-
@dc42 I don't want it to use the center of the bed. I want the z to home at x0 y0.
I inverted the zprobe and it now reads 0 in DWC and I changed this lineG1 H1 Z{-var.zTravel} F600 ; coarse home in the -Z direction
to
G1 H1 Z{var.zTravel} F600 ; coarse home in the -Z direction
I also reversed the direction on the Z steppers and now the homeall seems works correctly.
If I try to just home Z i get "G28 Z
Error: Failed to home axes Z"Here is the homeall.g that is working
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.5.4 on Mon Sep 09 2024 22:47:08 GMT-0600 (Mountain Daylight Time) ; increase Z G91 ; relative positioning G1 H2 Z5 F7200 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home XY var xTravel = move.axes[0].max - move.axes[0].min + 5 ; calculate how far X can travel plus 5mm var yTravel = move.axes[1].max - move.axes[1].min + 5 ; calculate how far Y can travel plus 5mm G91 ; relative positioning G1 H1 X{-var.xTravel} Y{-var.yTravel} F6000 ; coarse home in the -X and -Y directions G1 H2 X5 Y5 F7200 ; move back 5mm G1 H1 X{-var.xTravel} Y{-var.yTravel} F300 ; fine home in the -X and -Y directions G90 ; absolute positioning ; home Z var zTravel = move.axes[2].max - move.axes[2].min + 5 ; calculate how far Z can travel plus 5mm G91 ; relative positioning G1 H1 Z{var.zTravel} F600 ; coarse home in the -Z direction G1 H2 Z5 F6000 ; move back 5mm G1 H1 Z-10 F300 ; fine home in the -Z direction G90 ; absolute positioning
Here is the homez.g that is giving the error
; home Z G91 ; relative positioning var maxTravel = move.axes[2].max - move.axes[2].min + 5 ; calculate how far Z can travel plus 5mm G1 H1 Z{var.maxTravel} F600 ; coarse home in the +Z direction G1 Z-5 F6000 ; move back 5mm G1 H1 Z{var.maxTravel} F300 ; fine home in the +Z direction G90 ; absolute positioning