The M671 command being in the wrong place was indeed the issue. I also had to adjust the maximum allowable correction to 2mm. Thanks again for pointing that, it would have taken me a while to find it.
Posts made by Q2101
-
RE: G32 error while bed leveling
-
RE: G32 error while bed leveling
I did not notice the order dependency on the M671 command, that is most likely the issue. I'll move that command around and see what that does tomorrow after work. Thank you for pointing that out.
-
G32 error while bed leveling
I have a printer with a 3 motor Z-Axis and the pivot point connections are kinematic mounts. I keep getting an error when I have the duet3 6HC attempt to level the bed with the G30 commands. It will probe the correct locations (as close as I could get the sensor, a BL Touch, to the pivot points), however when it finishes the last probe, it kicks out the following error:
G32
Error: This kinematics does not support auto-calibrationI thought I setup the config.g and bed.g files correctly with the pivot points and probe points but it seems I’m missing something. It also doesn't seem to be moving the probe to the center of the bed during the initial homing even though the homeall.g file seems to be subtracting out the offsets. If i manually input the offsets it will put the probe where it should be.
What am I missing?
Below is my bed.g, config.g and homeall.g code
Below is bed.g, i commented out the while loop to see if that was the cause of the issue
; bed.g ; called to level the bed ; ; generated by RepRapFirmware Configuration Tool v3.5.0-rc.3+2 G28; home G30 P0 X133 Y1 Z-99999 ; Probe near Z motor 1 pivot point G30 P1 X35.5 Y294 Z-99999 ; Probe near Z motor 2 pivot point G30 P2 X262.5 Y294 Z-99999 S3 ; Probe near Z motor 3 pivot point ;while ;if abs(move.calibration.initial.deviation) < 0.01 || iterations > 3 ; break G29 ; call mesh bed compensation
Below is 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.0-rc.3+2 ; General M90; Absolute coordinates; M83; Realtive extruder moves M550 P"Railcore" ; set hostname ; Network M552 P0.0.0.0 S1 ; configure Ethernet adapter M586 P0 S1 ; configure HTTP M552 i1 S2; Start Wifi AP ; Wait a moment for the CAN expansion boards to become available G4 S2 ; Accelerometers M955 P121.0 I20 ; configure accelerometer on board #121 ; Smart Drivers M569 P0.0 S1 D2 ; driver 0.0 goes forwards (X axis) M569 P0.1 S1 D2 ; driver 0.1 goes forwards (Y axis) M569 P0.2 S1 D2 ; driver 0.2 goes forwards (Z axis) M569 P0.3 S1 D2 ; driver 0.3 goes forwards (Z axis) M569 P0.4 S1 D2 ; driver 0.4 goes forwards (Z axis) M569 P121.0 S0 D2 ; driver 121.0 goes forwards (extruder 0) ; Motor Idle Current Reduction M906 I30 ; set motor current idle factor M84 S30 ; set motor current idle timeout ; Axes M584 X0.0 Y0.1 Z0.2:0.3:0.4 ; set axis mapping M671 X133:6.5:263 Y-36:317:317; Z-Axis pivot point locations M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M906 X1000 Y1000 Z1000 ; set axis driver currents M92 X160 Y160 Z1600 ; configure steps per mm M208 X0:285 Y0:298 Z0:300 ; set minimum and maximum axis limits M566 X900 Y900 Z12 ; set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000 Z180 ; set maximum speeds (mm/min) M201 X500 Y500 Z20 ; set accelerations (mm/s^2) ; Extruders M584 E121.0 ; set extruder mapping M350 E16 I1 ; configure microstepping with interpolation M906 E8000 ; set extruder driver currents M92 E420 ; configure steps per mm M566 E120 ; set maximum instantaneous speed changes (mm/min) M203 E3600 ; set maximum speeds (mm/min) M201 E250 ; set accelerations (mm/s^2) ; Kinematics M669 K1 ; configure CoreXY kinematics ; Probes M558 K0 P9 C"121.io0.in" H5 F120 T6000 ; configure BLTouch probe via slot #0 G31 P500 X35.5 Y1 Z2.55 ; set Z probe trigger value, offset and trigger height M950 S0 C"121.io0.out" ; create servo #0 for BLtouch ; Endstops M574 X1 P"121.io2.in" S1 ; configure X axis endstop M574 Y1 P"io0.in" S1 ; configure Y axis endstop M574 Z1 S2; Configure Z Axis endstop ; Mesh Bed Compensation M557 X35.5:285 Y10:285 P7:7 ; define grid for mesh bed compensation ; Sensors M308 S0 P"temp1" Y"thermistor" A"Bed Temp" T100000 B4725 C7.06e-8 ; configure sensor #0 M308 S1 P"121.temp0" Y"thermistor" A"Revo Temp" T100000 B4725 C7.06e-8 ; configure sensor #1 M308 S2 P"temp2" Y"thermistor" A"Backup Bed Temp" T100000 B4725 C7.06e-8 ; configure sensor #2 ; Heaters M950 H0 C"out0" T0 ; create heater #0 M143 H0 P0 T0 C0 S140 A0 ; configure heater monitor #0 for heater #0 M307 H0 R0.275 K0.218:0.000 D27.94 E1.35 S1.00 B0; configure model of heater #0 M950 H1 C"121.out0" T1 ; create heater #1 M143 H1 P0 T1 C0 S300 A0 ; configure heater monitor #0 for heater #1 M307 H1 R4.761 K0.389:0.019 D3.35 E1.35 S1.00 B0 V24.0 ; Heated beds M140 P0 H0 ; configure heated bed #0 ; Fans M950 F0 C"121.out2" ; create fan #0 M106 P0 C"Revo Cooling Fan" S0 B0.1 H1 T45; configure fan #0 M950 F1 C"121.out1" ; create fan #1 M106 P1 C"Part Cooling Fan" S0 L0 X1 B0.1 ; configure fan #1 ; Tools M563 P0 S"Revo" D0 H1 F0 ; create tool #0 M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C ; Miscellaneous M501 ; load saved parameters from non-volatile memory
homeall.g
; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.5.0-rc.3+2 ; lift Z G91 ; relative positioning G1 H2 Z5 F6000 ; 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} F2500 ; coarse home G1 H1 X{-var.xTravel} F4000 ; coarse home in the -X direction G1 H1 Y{-var.yTravel} F4000 ; coarse home in the -Y direction G1 H2 X5 Y5 F5000 ; move back 5mm G1 H1 X{-var.xTravel} Y{-var.yTravel} F300 ; fine home G1 H1 X{-var.xTravel} F300 ; fine home in the -X direction G1 H1 Y{-var.yTravel} F300 ; fine home in the -Y direction 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} F6000 ; go to bed center G30 ; probe the bed
-
RE: 1LC toolboard not connecting to the 6HC CAN
@dc42 Filastruder, late november.
-
RE: 1LC toolboard not connecting to the 6HC CAN
@Q2101 Furter information, which may or may not be useful. I used the default values for the CAN address of the toolboard that the configuration tool provided, 121. The 6HC is board version 1.02 with firmware v3.5 RC3 running. There is a wifi module with the ESP32S3 chipset running firmware v2.1 B7 attached to the board as well.
The config.g file that the config tool generated is attached. The only change I made was to add the M552 1L S2 command to turn on the AP.
-
RE: 1LC toolboard not connecting to the 6HC CAN
@dc42 They still do not light up after disconnecting everything. Only the VIN.
-
1LC toolboard not connecting to the 6HC CAN
I am installing a 1LC toolboard v1.3 and i cannot get it to talk to the CAN on the 6HC. The Blue VIN LED lights up on the toolboard (it is dim compared to the 6HC's Blue LED) and none of the other LEDs will light up.
I have quadruple checked the wiring to make CAN1_L on the 6HC is wired to CAN_L on the toolboard and CAN1_H is wired to CAN_H, with physical inspections and continuity tests. I pulled the pins on the 1LC side and reversed them, just to make sure, still nothing. Re-spliced the cable connection between the RJ11 and the toolboard. Waited 30 minutes for them to decide if they wanted to connect. Still nothing.
The VIN powering the board is coming from the printers 24V power supply, and the GRD is tied to the ground as it is shown in the drawing. Pulled the board off the extruder to make sure the jumper was soldered.
For giggles, I tested the resistance across pins 1 and 2 on the 1LC side, im only getting 60 Ohms instead of the 120 Ohms shown on the drawing.
Is there something I’m overlooking or can check?
https://docs.duet3d.com/duet_boards/duet_3_can_expansion/duet_3_1lc_v1.0_connection_01.png
-
RE: New user: Rebuilding an older printer with Duet 3 mini 5+
Was able to get the printer moving and without excess noise once the stealthchop was turned on.
Now I am running into an issue with the true bed leveling (G32) and the Mesh Compensation (G29) which is likely due to me not understanding how to configure it correctly. My z-probe is located (looking at it from the front of the machine) to the right of the nozzle along the x-axis and slightly in front of the nozzle along the y-axis. Going by the guide, this means that x and y should be negative when I set them in the config.g file using G31 correct? With this being a Pursa variant the two z motors are to the left and right of the bed, with the end stop (min) being on the right.
What happens is I will home the axis, which works fine. Then if I run the G32, it will home (as expected since G28 is in the bed.g file) then after home it will move to x=43.7(X0+43.7) and y=15.4 (Y10+5.4) to probe the bed, which is also my z offsets for the probe. It will then move to X=193.7, which will put this off of the bed. The same thing will occur with G29, it will start at X=43.7 and probe every 20mm until it is also off of the bed.
Thinking the z-probe offset might be reversed, I changed the sign, which sent the head crashing into the x endstop. Changing the 1st probe for the bed.g to X-43.7 got the first probe of G32 to probe in the right location, but it still goes off bed on the second probe. Im not sure what settings to change to get this working correctly.
Moving the head around manually, the positions I would expect it to probe(based on nozzle position) would be at X0 (the right side looking at the front of the printer) and X150 (the left side looking at the front of the printer), which keeps the probe over the bed.
config.g
; Configuration file for Duet 3 Mini 5+ (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.13 on Sun Oct 09 2022 18:42:47 GMT-0400 (Eastern Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Q's Pursia i3" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.1 S0 D3 ; physical drive 0.1 goes backwards X axis M569 P0.2 S0 D3 ; physical drive 0.2 goes backwards Y axis M569 P0.3 S1 D3 ; physical drive 0.3 goes backwards Z-Left axis M569 P0.4 S1 D3 ; physical drive 0.3 goes backwards Z-Right axis M569 P0.0 S0 D3 ; physical drive 0.0 goes backwards Extruder M584 X0.1 Y0.2 Z0.3:0.4 E0.0 ; set drive mapping M671 X0:150 Y0:0 ; Defining Leadscrew postions M350 X16 Y16 Z16 E16 I0 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z1600.00 E850 ; set steps per mm M566 X900.00 Y900.00 Z120.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z360.00 E1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z40.00 E250.00 ; set accelerations (mm/s^2) M906 X480 Y480 Z480 E480 I50 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0:200 Y0:200 Z0:250 ; set axis Min/Max ; Endstops M574 X1 S1 P"io0.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io0.in M574 Y1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in M574 Z1 S1 P"!io2.in" ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"io3.out" ; Create Servo pin on i03 for Z-probe M558 P5 C"^!io3.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds G31 P500 X-43.7 Y-5.4 Z0.68 ; set Z probe trigger value, offset and trigger height M557 X15:185 Y15:185 S20 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 R0.301 K0.364:0.000 D3.49 E1.35 S1.00 B0 ; 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"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as Semitec 104NT thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 R1.085 K0.313:0.000 D4.94 E1.35 S1.00 B0 V10.0 ; disable bang-bang mode for heater and set PWM limit M143 H1 S300 ; set temperature limit for heater 1 to 300C ; Fans M950 F0 C"out3" Q500 ; create fan 0 on pin out3 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out4" Q500 ; create fan 1 on pin out4 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 ; Miscellaneous M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
Bed.g
; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool v3.3.13 on Sun Oct 09 2022 18:42:46 GMT-0400 (Eastern Daylight Time) M561 ; clear any bed transform G28 ; home G30 P0 X-43.7 Y10 Z-99999 ; probe near a leadscrew, half way along Y axis G30 P1 X150 Y10 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors G29 ; probe the bed and enable compensation
homez.g
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v3.3.13 on Sun Oct 09 2022 18:42:47 GMT-0400 (Eastern Daylight Time) G91 ; relative positioning G1 H2 Z3 F6000 ; lift Z relative to current position G1 X0 Y10 F6000 ; go to first probe point M401 ; Deploy Probe G30 ; home Z by probing the bed M402 ; Retract Probe G90 ; absolute positioning ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 Z5 F100 ; lift Z relative to current position ;G90 ; absolute positioning
-
RE: New user: Rebuilding an older printer with Duet 3 mini 5+
@dc42 After doing some testing it seem the noise is related to the idle, as the motors made the expected amount of noise while in motion. Turning on stealthchop within M569 seems to have eliminated the buzzing/screeching noise.
-
RE: New user: Rebuilding an older printer with Duet 3 mini 5+
Opps, that fixed the servo control issue. Sometimes it is good to have another set of eyes looking at the commands. I'll try to remember M98 next time I make changes.
I used that guide to wireup the steppers before coming here and I did have 1 or 2 wired incorrectly at that time but they are correct now. What is odd, to me, is that I don't get the phase errors when driving them at 400mA vs the 500mA (which should be the max current rating for that motor).
-
New user: Rebuilding an older printer with Duet 3 mini 5+
I am in the process of rebuilding and updating an old Makerfarm prusa i3v 8" printer after the old ramps board died. I have been able to work through adding the second Z axis motor and getting all the microswitches to correctly register, however I am running into some other issues that have confused me.
The first issue is that I am unable to get the servo mounted z-probe to rotate (at all) into position for bed leveling. When the machine is first powered on you can hear and see the servo move (slightly) however I cannot get the M280 command to control it. I have the servo (a sg90 type hobby servo) with a microswitch (NO) plugged into IO_3 using in, out, ground and 5V.
The second issue I am having is that the motors are making a loud (buzzing/screeching?) noise. It is quite loud and as a temporary measure I set M84 to 10 seconds to keep the noise down while testing. Being new to Duet I am unsure what settings to change/adjust to reduce this noise. The model of the steppers is 42BHH48-050-24A. I tried turning Interpolation on/off and lowering the current to 400mA but that did not seem to have much of an effect. Setting the Z-axis to 500mA gives me an odd error of "Warning: Driver 0.4 warning: phase A may be disconnected, phase B may be disconnected Warning: Driver 0.3 warning: phase A may be disconnected, phase B may be disconnected" however this warning is not there when the steppers are set to 400mA.
Here it the code I have so far. Any help would be appreciated.
; Drives M569 P0.1 S0 ; physical drive 0.1 goes backwards X axis M569 P0.2 S0 ; physical drive 0.2 goes backwards Y axis M569 P0.3 S1 ; physical drive 0.3 goes backwards Z-Left axis M569 P0.4 S1 ; physical drive 0.3 goes backwards Z-Right axis M569 P0.0 S0 ; physical drive 0.0 goes backwards Extruder M584 X0.1 Y0.2 Z0.3:0.4 E0.0 ; set drive mapping M350 X16 Y16 Z16 E16 I0 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z2560.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 X400 Y400 Z400 E400 I0 ; set motor currents (mA) and motor idle factor in per cent M84 S10 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X200 Y200 Z250 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io0.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io0.in M574 Y1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in M574 Z1 S0 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"i03.out" ; Create Servo pin on i03 for Z-probe M558 P5 C"^!io3.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds G31 P500 X43 Y5 Z-0.6 ; set Z probe trigger value, offset and trigger height M557 X15:185 Y15:185 S20 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B0 S1.00 ; 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"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 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"out3" Q500 ; create fan 0 on pin out3 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out4" Q500 ; create fan 1 on pin out4 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 ; Miscellaneous M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss