First Layer Height



  • Great so I have successfully got the 5v version of this sensor, literally plug and play, the issue i have is the first layer i.e. some of the filament isnt smushed down enough to the point where i could rub my finger against the filament and have it come of the build plate

    Isnt bed leveling with a sensor supost to give perfect first layer height.


    [[language]]
    ; bed.g
    ; called to perform automatic bed compensation via G32
    M561				       ;Clear any bed transform
    G28 ; home all
    G90 				               ; Back to absolute positioning ;G91 ; relative mode
    M557 X0:150 Y13:180 S30     ; Define mesh grid
    G1 Z4 F200 ; move Z 4mm for clearance
    G90 ;absolute mode
    ;M280 p3 S160 I1 ; Clear any alarms ;M401 ; In lieu of macro - call GCode for deploy probe
    G29 S0; run auto bed mesh level
    M374 	; Save Mesh Data
    ;M402 ; In lieu of macro - call GCode to retract probe
    
    
    [[language]]
    T0 ; select first hot end
    G91 ; Relative coordinates
    G1 Z5 F200 ; Lower bed.
    G4 P500 ; Dwell for 500ms - to ensure bed is down
    G90 ; Absolute positioning
    G1 X10 Y15 F300 ; Go to first bed probe point and home the Z axis
    ;M401; M280 P3 S10 I1 ; Lower Z probe (BLTouch)
    G30; Calibrate Z-axis
    ;M402; M280 P3 S10 I1; Retract Probe
    ;G92 Z2.5; PLA. higher g92 means that 0 is lower down on the z axis
    G92 Z1.55; ABS. higher g92 means that 0 is lower down on the z axis
    
    

    please help

    Excuse the Bltouch comments I removed it from my printer since it was always giving me inconsistent z heights and massive variations in the heightmap.

    With the bltouch i had to continues change the G92 height. With the new sensor I barely touch this code.


  • administrators

    @npm1:

    Great so I have successfully got the 5v version of this sensor…

    Which sensor?



  • npn no lj8A3-2-z/bx-5v

    ps i am getting Comments cannot contain only capital letters on this forum



  • can anyone help please,



  • you still need to adjust the z trigger height for the sensor in the g31 command?



  • i have experimented a bit more and still my first layer hasnt laid down evenly

    [[language]]
    ; Endstops
    M574 Z1 S1 ; Set active low endstops
    M574 X1 Y1 S1 ; Set active low endstops
    M558 P5 X0 Y0 Z1 H10 I1 F120 T6000 ; for inductive sensor, Set Z probe type to switch, the axes for which it is used and the dive height + speeds
    ;Mechanical Endstop;
    ;M558 P1 X0 Y0 Z1 H5  F120 T6000 ; for IR Probe DC42, Set Z probe type to switch, the axes for which it is used and the dive height + speeds
    
    M557 X0:150 Y13:180 S30 ; Define mesh grid
    G31 P500 X0 Y0 Z0; Set Z probe trigger value, offset and trigger height
    
    

    its a shame since this cost me quit a bit

    is this the general issue with reprap firmware

    what am i missing



  • i think your probe is an inductive one mounted near the tip of the hot end? So you need to measure somehow the distance in x and y between the probe and the tip, and put these in the g31 line. Similarly for Z I think they trigger about 5-8mm above a 2mm steel plate, so you'll need to work out how far the tip is from the bed when yours first triggers. That will depend on where it is mounted relative to the tip and what your bed is made of. This info goes in the g31 line for the z value. When you have these numbers set correctly and home, you should be able to put the tip at z=0 somewhere over the bed and just slip a sheet of paper between the tip and the bed. I hope that helps, maybe search some more online for how to configure am inductive probe.


  • administrators



  • "You can sync the motors automatically if the E1 motor output is free. See https://duet3d.dozuki.com/Wiki/Bed_leve … t_Z_motors."

    Would this mean that if i was disconnect the extruder motors i would be able to resync the uneven z motors through probing,

    Sorry researching and peicing the various ideas from other post at the moment. https://www.duet3d.com/forum/thread.php?id=4760
    I know this is refering to bed levelling using seperate motors.

    Or Would this better apply:
    configuring the z offset and all the other details haven't worked well for me. I am considering the following settup where I do the following "On a printer which uses two or more Z motors to raise/lower gantry, you can have the firmware probe the bed and adjust the motors individually to !eliminate tilt!. This feature is implemented in firmware version 1.19 and later."

    How would i apply these details in that post
    config.g
    M584 X0 Y1 Z2:5:6 ; I only have two motor on my i3 settup how would i change this
    M671 X-15💯215 Y190:-10:190 S0.5 ; leadscrews would be at left, and right

    bed.g
    G28 ; home
    G30 P0 X20 Y190 Z-99999 ; probe near a leadscrew
    G30 P1 X180 Y190 Z-99999 S3; probe near a leadscrew



  • Hi guys
    ran through bed levelling using the leadscrew adjustment way i.e. g32 and the first is working out really well, just need to add a few more points.

    Now the question ive got is whats the reason behind probing with g29, doez it out way the pros and cona of the g32 command

    is the g32 commanr how marlin does it?

    The config now adds the M584 and M671 commands

    This is a dime and would be using this rather g29, as the mesh bed leveling didnt work to well

    Update:
    Did the bed leveling on an actual print, some of the smoosh is still uneven.

    Also played with working out the z height offset which gave variations ranging from 0.0056 to 0.0060.

    also the z banding is starting to show with the print

    At the moment the second z motor is wired to the E1 motor output,, it is changed through the M584
    Please help.



  • Bed.g

    [[language]]
    
    ; Endstops
    M574 Z1 S1 ; Set active low endstops
    M574 X1 Y1 S1 ; Set active low endstops
    M558 P5 X0 Y0 Z1 H10 I1 F120 T6000 ; for inductive sensor, Set Z probe type to switch, the axes for which it is used and the dive height + speeds
    ;Mechanical Endstop;
    ;M558 P1 X0 Y0 Z1 H5  F120 T6000 ; for IR Probe DC42, Set Z probe type to switch, the axes for which it is used and the dive height + speeds
    value, offset and trigger height
    M557 X0:150 Y13:180 S10 ; Define mesh grid
    G31 P1000 X0 Y0 Z0.007; Set Z probe trigger 
    
    M584 X0 Y1 Z2:4 ; three Z connected to driver outputs 2, and 4
    M671 X0:150 Y10:10; leadscrews at rear left, front middle and rear right
    
    

    New Bed.g

    [[language]]
    ; bed.g
    ; called to perform automatic bed compensation via G32
    M561  ;Clear any bed transform
    G28 ; home all
    G90    ; Back to absolute positioning ;
    G1 Z4 F200 ; move Z 4mm for clearance
    G90 ;absolute mode
    G29 S0; run auto bed mesh level
    M374 	; Save Mesh Data
    G29 S1; Load heightmap
    
    ;G30 P0 X0 Y13 Z-99999 ; probe near a leadscrew
    ;G30 P1 X150 Y13 Z-99999 ; probe near a leadscrew
    ;G30 P2 X0 Y180 Z-99999 ; probe near a leadscrew
    ;G30 P3 X50 Y90 Z-99999 ; probe near a leadscrew
    ;G30 P4 X100 Y90 Z-99999 ; probe near a leadscrew
    ;G30 P5 X150 Y180 Z-99999 S2; probe near a leadscrew
    
    ;G30 P0 X0 Y90 Z-99999 ; probe near a leadscrew
    ;G30 P1 X75 Y90 Z-99999 ; probe near a leadscrew
    ;G30 P3 X150 Y90 Z-99999 S2; probe near a leadscrew
    
    

    Home Z.g

    [[language]]
    ; homez.g
    ; called to home the Z axis
    ; generated by RepRapFirmware Configuration Tool on Fri Dec 15 2017 19:49:02 GMT+0000 (GMT Standard Time)
    T0 ; select first hot end
    G91 ; Relative coordinates
    G1 Z5 F200 ; Lower bed.
    G4 P500 ; Dwell for 500ms - to ensure bed is down
    G90 ; Absolute positioning
    G1 X10 Y15 F300 ; Go to first bed probe point and home the Z axis
    G30; Calibrate Z-axis
    G92 Z0.5 ABS. higher g92 means that 0 is lower down on the z axis
    
    

    i was thinking can i put the tilt compensation/ independant motor sync in the homez.g file instead

    would there be any thing wrong with these details

    when the first layer is laid down the unevennes is still there.

    please help by this point ive tried quit alot of differant things

    LEt me know if any more details are needed


  • administrators

    @npm1:

    Hi guys
    ran through bed levelling using the leadscrew adjustment way i.e. g32 and the first is working out really well, just need to add a few more points.

    Now the question ive got is whats the reason behind probing with g29, doez it out way the pros and cona of the g32 command

    If the bed is flat, and so is the surface that the nozzle draws as it moves in the XY plane (i.e the gantry isn't bent and doesn't sag), then bed levelling using G31 and bed.g is all you need. Whereas if the bed is significantly non-flat or the gantry sags under the weight of the hot end, you may need to use mesh bed compensation too.



  • ok alot has changed, brought a flexible build sheet which works a charm and brought magnets n42 and n35 so that all bumps on the sheet are flush with the aluminium plate.

    to no avail the first layer is still not perfect.

    is there anyway of allowing deviations

    its annoying as i am starting to believe what another thread is saying about how better bed tramming is in marlin…

    Love the hardware though it is just solid.

    [[language]]
    ; bed.g
    ; called to perform automatic bed compensation via G32
    M561				       ;Clear any bed transform
    ;G28 ; home all
    G90 				               ; Back to absolute positioning ;G91 ; relative mode
    G1 Z4 F200 ; move Z 4mm for clearance
    G90 ;absolute mode
    ;G30 P0 X0 Y13 Z-99999 ; probe near a leadscrew Front
    ;G30 P2 X150 Y13 Z-99999 ; probe near a leadscrew Front
    ;G30 P3 X0 Y180 Z-99999 ; probe near a leadscrew Back
    ;G30 P4 X150 Y180 Z-99999 ; probe near a leadscrew Back
    ;G30 P5 X75 Y90 Z-99999 ; probe near a leadscrew Back
    G29 S0; run auto bed mesh level
    G30 P8 X0 Y90 Z-99999 ; probe near a leadscrew Middle
    G30 P9 X150 Y90 Z-99999 S2; probe near a leadscrew Middle
    M374 	; Save Mesh Data
    G29 S1; Load heightmap
    
    
    [[language]]
    ; homez.g
    ; called to home the Z axis
    ; generated by RepRapFirmware Configuration Tool on Fri Dec 15 2017 19:49:02 GMT+0000 (GMT Standard Time)
    T0 ; select first hot end
    G91 ; Relative coordinates
    G1 Z5 F200 ; Lower bed.
    G4 P500 ; Dwell for 500ms - to ensure bed is down
    G90 ; Absolute positioning
    G1 X10 Y15 F300 ; Go to first bed probe point and home the Z axis
    G30; Calibrate Z-axis
    M208 S1 Z-2.3
    G92 Z-2.3; ABS. higher g92 means that 0 is lower down on the z axis
    
    
    [[language]]
    
    ; Endstops
    M574 Z1 S1 ; Set active low endstops
    M574 X1 Y1 S1 ; Set active low endstops
    M558 P5 X0 Y0 Z1 H10 I1 F120 T6000 ; for inductive sensor, Set Z probe type to switch, the axes for which it is used and the dive height + speeds
    M557 X0:150 Y13:180 S40 ; Define mesh grid
    G31 P1000 X0 Y0 Z0; Set Z probe trigger 
    
    ; Drives
    M569 P0 S1 ; Drive 0 goes forwards
    M569 P1 S1 ; Drive 1 goes forwards
    M569 P2 S0 ; Drive 2 goes backwards
    M569 P3 S1 ; Drive 3 goes forwards
    M569 P4 S0 ; Drive 4 goes backwards
    M584 X0 Y1 Z2:4 ; three Z connected to driver outputs 2, and 4
    M671 X0:150 Y10:10 S4  ; leadscrews at rear left, front middle and rear right
    
    

  • administrators

    G32 with independent leadscrew control will get the bed level. Bit it will not compensate for a bed that is not flat or a gantry that sags. Evidently you have this problem, so you need to use G29 mesh bed compensation. The advantage of running G32 bed levelling first is that you will need less mesh bed compensation.

    To answer an earlier question, yes you can use G32 bed levelling in your homeall.g and homez.g files.



  • so would both features work at the same time and is there any gcode available to show that g32 is enabled.

    I know theres gcode to see if g29 is enabled.

    finally is there anything wrong with the code in the config files please help.
    as i don't want to send my second duet wifi back



  • Ok, I read this, which looks enticing.

    [[language]]
    Sensor offset adjustment (H parameter in bed and bed_report macro)
    Note: the best way to avoide the effect of trigger height varying across the bed is to use a nozzle contact sensor such as the Smart Effector
    
    Mechanical sensors (FSR and other switches types) have offsets which may vary with the head position, especially on delta printers. The offset shall be adjusted for each probe point.
    
    For this purpose, it is practical to create a macro for each probe point , moving to this point: p0.g, p1.g, etc.
    
    On delta printers, depending the sensor type, you may have more offset on the side than in center or the reverse (bed sensors like FSR have more offset in the center while effector sensors have more offset on the sides).
    
    Bed, bed_report and p0.g to p6.g (or more) macros shall have same coordinates and be adjusted while you displace probing points, which may notably be needed if your bed surface is weared (as could occurred easily with BuildTak) or for a different usable diameter.
    
    To test the offset, you shall :
    
    Do at least 3 calibrations till you get consistent results.
    Execute M665 and note the reported parameters to modify your configuration file.
    Please note that if you use the homing macro without end switches, the height in M665 will not be used and the height shall be modified in the homedelta.g
    
    Move to the calibration points with the P0 to P6 macros and lower the head manually atop a paper sheet till the paper sheet began to have difficulties to slide.
    
    Repeat for all the probe points, note the values on a paper.
    
    You shall then modify the H parameters in the bed.g file and reload this file on the SD card. Use web interface system panel (not macro panel) for that.
    
    Values found shall be substracted to the already defined offset, meaning that if you find +0,1 and the offset is already -0,22, you shall do -0,22-(+0,1) = -0,32
    
    If using a ‘BuildTak’ surface, you should not ‘crush’ the filament on the surface and the resulting value while the paper begins not to slide should be within – 0.1~0,12 mm , so you should subtract 0,12 to lift up the hotend, say if offset is -0,25 while the paper is sliding at exactly 0, you should set -0,36.
    
    After adjustment of H parameters in bed.g, modify the bed_report.g with same values, then reload bed_report.g on the SD card and run the macro.
    
    If your paper report is neat, but the results of the calibration and bed_reports shows differences, that means that your bed is not flat. What counts is the paper measure, not the calibration result, so do not cheat by modifying the H parameter to obtain a very low calibration value.
    
    Note that all macros could be run after being loaded on the SD card, without rebooting or restarting.
    
    

    can i have an example of how to allow for variations or set this up please. how would i apply this to one of the inductive probes



  • Hi,
    So i am running through to work out the probe trigger height,

    at each point there seems to be massive deviations i.e. -3.35 mm to -4.53

    is there any way of factory this in for when i run g32. for various points i probe.

    The probe i am using is a 5v npn pinda style of probe, its directly connected to the duet wifi with no resistors/diode... would a diode help make the probe more consistent....

    Kind Regards,

    PS the new forum looks wicked, i wonder if it has IRC for on the spot community support.


  • administrators

    A diode won't help. Is the trigger height at a fixed XY location consistent?



  • yes the xy points are consistent no bending or sagging.

    the bed aka y axis is bolted down at its tightest point.



  • I've had very similar issue with my NPN capacitive probe, never got it solve. Ended up switching to an IR probe and now getting very consistent first layers. Oddly enough the capacitive probe worked perfectly on my CR-10's stock board.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.