Just a brief follow up to this, I never could get a good first layer with this setup. I tried with a bltouch, inductive and IR sensors all gave similar results, the first layer was very inconsistent.
I have now installed a dyze designs horizon z probe which uses the nozzle for z probing, mesh bed compensation now works as expected and I get very good, consistent first layers.
Best posts made by bug2k22
-
RE: Mesh bed compensation, poor first layer?
-
RE: TRONXY VEHO 100 2E
@kmjr20 I have a printer with 2 independent z motors and a bl touch as the z probe/endstop here is my homez.g which probes at the middle of the bed first, then levels the bed by checking each side of the bed where the z leadscrews are and then finally does another z height check in the middle of the bed once the left and right z motors have levelled.
M561 ; Cancel any currently active mesh compensation ; 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 ; NOTE: The following XY position is determined from the probe grid defined in the next section 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 centre G30 ; probe the bed while true G30 P0 X0 Y150 Z-99999 ; probe near a leadscrew, half way along Y axis G30 P1 X252 Y150 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors if abs(move.calibration.initial.deviation) < 0.01 || iterations > 4 break ; Probe the height again after syncing the z motors G1 X{var.xCenter} Y{var.yCenter} F6000 ; go to bed centre G30 ; probe the bed
-
RE: Duet 3 mini 5+/FYSETC Big Dipper on FFCP/Flashforge Creator Pro
It should be a pretty straight forward conversion. I have previously converted a Flashforge clone (ctc) with a Duet2 and it worked fine.
I agree the 2 extruders were a pain and I ended up removing one of them. I've since modified it with an e3d hemera xs and the duet ir z probe works well as a z end stop and for mesh bed compensation.
-
RE: Duet3 6HC SBC mode can't access after upgrade to 3.5
@jay_s_uk Thanks, that's just what was needed. I had got caught up in the weeds of the wiki and never read the release notes for that release. I already had apparmor installed and configured, must have missed the 'apt install duetpimanagementplugin' bit.
This all looks to be working perfectly now, many thanks. -
Anycubic Kobra 2 Max upgrade
I have had many little issues and things that annoyed me when using the Kobra 2 Max, with Anycubic running a proprietry closed version of Klipper removed a lot of the options for customizing the printer configuration. I decided to just remove the controller board and replace it with a Duet 3 6HC and 7" paneldue display. I did not want to use cloud accounts, phone apps or usb flash drives to transfers files to the printer. The printer did not have a local web gui.
The only thing that I could not get to work was the acceleromter on the print bed, the LIS2DW12 is supported but there is no connection to the interrupt pin on the chip, apparently klipper does not require this but the duet boards do. I replaced this with a Duet3D accelerometer. The same chip is used on the print head but there is a pad that is connected to the interrupt pin and can be used.
The psu has a 500w rating, but I measured the usage at 460w just heating up the print bed without any steppers or the extruder running, a max draw over 570w while printing. I changed the psu for a Mean Well 648w supply to give it a bit more headroom and hopefully reliability.
There is a separate pcb to power the heated bed and I ran the bed heater output from the 6hc to this board to power the bed heater.I've used conservative speeds/accelerations as the advertised rates are a little optimistic. This config works but could still use some tuning.
config.gM550 P"Kobra 2 Max" ; set persistent hostname M575 P1 S0 B57600 ; configure PanelDue support M569 P0.0 S1 D2 ; driver 0.0 goes forwards (Z axis) M569 P0.1 S1 D2 ; driver 0.1 goes forwards (Z axis) M569 P0.2 S1 D2 ; driver 0.2 goes forwards (extruder 0) M569 P0.4 S1 D2 ; driver 0.4 goes forwards (X axis) M569 P0.5 S0 D2 ; driver 0.5 goes backwards (Y axis) M906 X1960 Y2660 Z1400 E960 ; set motor driver currents M906 I60 ; set motor current idle factor M84 S30 ; set motor current idle timeout M669 K0 ; configure Cartesian kinematics M584 X0.4 Y0.5 Z0.0:0.1 ; set axis mapping M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M92 X80.3 Y80.3 Z401.5 ; configure steps per mm M208 X-5:430 Y-5:430 Z-0.4:500 ; set minimum and maximum axis limits M566 X600 Y600 Z12 ; set maximum instantaneous speed changes (mm/min) M203 X30000 Y25000 Z960 ; set maximum speeds (mm/min) M201 X2000 Y1000 Z3000 ; set accelerations (mm/s^2) M584 E0.2 ; set extruder mapping M350 E16 I1 ; configure microstepping with interpolation M92 E476 ; configure steps per mm M566 E120 ; set maximum instantaneous speed changes (mm/min) M203 E4800 ; set maximum speeds (mm/min) M201 E300 ; set accelerations (mm/s^2) M558 K0 P5 C"io6.in" H5 F1200:120 T12000 A2 ; configure analog probe via slot #0 G31 P500 X24 Y13.35 Z1.36 ; actual trigger height is 1.2mm ; set Z probe trigger value, offset and trigger height M574 X1 P"!io5.in" S1 ; configure X axis endstop M574 Y1 P"!io4.in" S1 ; configure Y axis endstop M574 Z1 S2 ; configure Z axis endstop M557 X25:405 Y25:405 S40:40 ; define grid for mesh bed compensation M308 S0 P"temp0" Y"thermistor" A"Heated Bed" T100000 B4388 C7.06e-8 ; configure sensor #0 M308 S1 P"temp1" Y"thermistor" A"Extruder" T100000 B4388 C7.06e-8 ; configure sensor #1 M950 H0 C"out0" T0 ; create heater #0 M143 H0 P0 T0 C0 S120 A0 ; configure heater monitor #0 for heater #0 M307 H0 R0.2 D5.5 E1.35 K0.56 B1 ; configure model of heater #0 M950 H1 C"out1" T1 ; create heater #1 M143 H1 P0 T1 C0 S250 A0 ; configure heater monitor #0 for heater #1 M307 H1 R2.780 K1.008:0.522 D8.26 E1.35 S1.00 B0 V24.0 M140 P0 H0 ; configure heated bed #0 M950 F0 C"out7" Q1000 ; create fan #0 M106 P0 C"Extruder Fan" S0 B0.1 H1 T45 ; configure fan #0 M950 F1 C"out8" Q250 ; create fan #1 M106 P1 C"Filament Fan" S0 H-1 ; configure fan #1 M563 P0 S"Extruder" D0 H1 F1 ; create tool #0 M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C M591 D0 P2 C"io3.in" S1 ; simple filament sensor M955 P0 C"spi.cs1+spi.cs0" ; accelerometer on the print head of the Kobra2Max, note this will only register X and Z moves, the print bed has it's own accelerometer for Y M955 P0 I41 ; set correct orientation
homeall.g
; lift Z G91 ; relative positioning G1 H2 Z5 F12000 ; 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 F12000 ; 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 ; NOTE: The following XY coordinates use values from the probe grid defined in the next section 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} F12000 ; go to bed centre G30 ; probe the bed
homex.g
; lift Z G91 ; relative positioning G1 H2 Z5 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home X var maxTravel = move.axes[0].max - move.axes[0].min + 5 ; calculate how far X can travel plus 5mm G1 H1 X{-var.maxTravel} F6000 ; coarse home in the -X direction G1 H2 X5 F6000 ; move back 5mm G1 H1 X{-var.maxTravel} F300 ; fine home in the -X direction G1 H2 Z-5 F6000 ; lower Z again
homey.g
; lift Z G91 ; relative positioning G1 H2 Z5 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home Y var maxTravel = move.axes[1].max - move.axes[1].min + 5 ; calculate how far Y can travel plus 5mm G1 H1 Y{-var.maxTravel} F6000 ; coarse home in the -Y direction G1 H2 Y5 F6000 ; move back 5mm G1 H1 Y{-var.maxTravel} F300 ; fine home in the -Y direction G1 H2 Z-5 F6000 ; lower Z again
homez.g
; lift 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 ; NOTE: The following XY position is determined from the probe grid defined in the next section 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 centre G30 ; probe the bed
I was also getting false triggers of the simple filament sensor but came across this thread which gave a solution, effectively inserts a small wait for the switch to debounce and only triggers if it's still triggered.
filament-error.g
G4 P10 ; delay 10ms to debounce if sensors.filamentMonitors[0].status="ok" echo "switch bounce detected - error cancelled" M99 ; break out if sensor value is zero again (bouncing) ; if we got this far the switch is still showing no filament M25 ;pause
-
RE: Revo heater core, incorrect temperature?
@jay_s_uk I did check on the datasheet for the 104NT-4-R025H42G and this shows that the expected resistance at 10degC is 208.8Kohms which is about correct with what I measured. I purchased this from E3D.
-
RE: Revo heater core, incorrect temperature?
@dc42 Thanks, that seems to have fixed the issue, it now reads within 1 degree of what my infra red thermometer reads.