1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

Autolevelling produces inconsistant first layer on large print

Discussion in 'Troubleshooting' started by milks, Oct 26, 2014.

Thread Status:
Not open for further replies.
  1. milks

    milks Member

    Joined:
    Oct 15, 2014
    Messages:
    44
    Likes Received:
    20
    Hey

    Im doing a print which is nearly as large as the bed but Im having some problems getting the first layer to stick.

    Two of the corners (diagonally opposite) produce a really nice wide line with good contact but for the other two the nozzle is too far from the bed, the line is narrower and invariably comes unstuck.

    Ive had a look through Configuration.h and there dont appear to be many settings associated with autolevelling, is there a way of making a manual calibration? If i hold a spirit level to the bed there is a slight bulge around the centre though its not consistant with the issue Im seeing
     
  2. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,915
    Likes Received:
    7,338
    well, the quick and dirty way is to add a few layers of tape, but then again, I don't have an auto-leveler.
    A more permanent solution is to make the bed more level. How you attempt that depends on which flavor of the bed you have (rails/wood, linear bearings/glass).
     
  3. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
    The Marlin auto levelling can compensate for a linear slope in the X and/or Y planes. But it doesn't compensate for "bulges" very well.

    If the bulge is in the borosilicate glass, one option to overcome this is to put another sheet of flat glass (eg 5mm window glass) over the bed. Window glass is fine for PLA temperatures up to 60-70C. For ABS a piece of tempered glass (or borosilicate) will handle the higher bed temperature.
     
  4. milks

    milks Member

    Joined:
    Oct 15, 2014
    Messages:
    44
    Likes Received:
    20
    Thanks for the replies. I don't think the centre bulge is causing the problem. The corners where it is lifting are right on top of two of the auto-leveling sample spots so I'd have thought the nozzle height at these points would be particularly well dialed-in, I guess it's still in its infancy as a tech though.

    I'll whack some tape on there and see what happens. In the long run I might try to build a custom bed as I want to extend the heated area out a bit anyway, though there is oh-so-much else to tinker with before I get to that point :)
     
  5. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,915
    Likes Received:
    7,338
    I have the beta with the linear rails bed upgrade. Mine had a very slight tilt from one end to the other and I initially handled it with tape (it was off about the thickness of two layers of tape from end-to-end). I later just shimmed it and sorted it out that way. Level now :)
     
  6. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,277
    Can you take a picture of what you mean? It's probably a calibration issue if you're using matter control.
     
  7. milks

    milks Member

    Joined:
    Oct 15, 2014
    Messages:
    44
    Likes Received:
    20
    Hey

    this is about as good a photo as I could get. As you can see it's already come unstuck at this stage, the left hand corner has good adhesion with a nice wide track, but the right hand corner is too far from the bed. Both these corners are right on top of auto-levelling bed probe points so I'd have thought would be accurate.

    I've tried pausing the print, nudging the z axis down a few tenths before resuming but this would result in no filament at the previously good corner and still poor adhesion at the bad corner.

    [​IMG]
     
  8. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
    Can you post your start gcode here. The reason I ask is that the auto leveling set up sequence of gcodes must be correct or the auto leveling does not work.

    Also if there is any kind of bulge in the bed, the 9 point auto level probing will be fooled into calculating a wrong plane adjustment for the bed, especially at the extremes of the bed where you are trying to print. In this case you may get a better result by using just 4 probing points in Marlin at the 4 corners of the area you are trying to print on (but this requires a firmware change)
     
    #8 Ziggy, Oct 29, 2014
    Last edited by a moderator: Oct 29, 2014
  9. milks

    milks Member

    Joined:
    Oct 15, 2014
    Messages:
    44
    Likes Received:
    20
    Code:
    ; Generated with MatterSlice 1.0
    ; filamentDiameter = 1.75
    ; extrusionWidth = 0.4
    ; firstLayerExtrusionWidth = 1
    ; layerThickness = 0.3
    ; firstLayerThickness = 0.3
    ; automatic settings before start_gcode
    G21
    M107
    M190 S50
    M104 S205
    ; settings from start_gcode
    G28
    M114
    G1 X0 Y0 Z5 F5000
    M109 S205
    G28 Z0
    M114
    M565 Z0
    G29
    G1 X0 Y0 Z0.1
    ; automatic settings after start_gcode
    G90
    G92 E0
    M82
    ; Layer count: 16
    ; LAYER:0
    M107
    G1 X228 Y228.5 Z1.3 F9000
    G1 X228 Y228.5 Z1.3
    ; TYPE:SKIRT
    G1 X228 Y228.5 Z1.3
    G1  F1800
    G1 X0 Y228.5 Z1.3 E28.437 F1080
    G1 X0 Y25.5 Z1.3 E53.757
    G1 X228 Y25.5 Z1.3 E82.194
    Interesting to see that the first z-coords are 1.3 (mm?) that would seem too high. I'd post my MatterControl settings but I'm not currently at home.

    I've just discovered what the Print > Advanced > First Layer setting is for; will see if that helps tonight.
     
  10. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,277
    Can you enable terminal then send G28 and G29? Report back with the values, you might need to use the snipping tools as I don't think you can select text in their terminal
     
  11. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
    There is an issue with your start gcode. After the G29 the next command is

    G1 X0 Y0 Z0.1

    This command is effectively homing the X and Y again. May not be a big problem but a command like

    G1 X5 Y5 Z5

    Would avoid the endstops being hit again.

    As you have pointed out the first z co ords (Z1.3) are way too high. Assuming you haven't actually set the first layer height incorrectly, I suspect this is happening because you have MatterControl auto leveling turned on (this is a setting in the GUI).

    You can use Marlin auto leveling (ie G29) or MC auto leveling BUT not both at the same time.
     
  12. milks

    milks Member

    Joined:
    Oct 15, 2014
    Messages:
    44
    Likes Received:
    20
    @Mike Kelly Here's the G28/G29:
    Code:
    Send: G28
    Recv: ok
    Send: G29
    Recv: Bed x: 15.00 y: 20.00 z: -0.68
    Recv: Bed x: 107.00 y: 20.00 z: -0.07
    Recv: Bed x: 199.00 y: 20.00 z: 0.27
    Recv: Bed x: 200.00 y: 130.00 z: 0.23
    Recv: Bed x: 108.00 y: 130.00 z: -0.04
    Recv: Bed x: 16.00 y: 130.00 z: -0.65
    Recv: Bed x: 15.00 y: 240.00 z: -0.57
    Recv: Bed x: 107.00 y: 240.00 z: 0.08
    Recv: Bed x: 199.00 y: 240.00 z: 0.50
    Recv: Eqn coefficients: a: 0.01 b: 0.00 d: -0.76
    Recv: planeNormal x: -0.01 y: -0.00 z: 1.00
    Recv: ok
    Recv: echo:endstops hit:  Z:0.50
    @Ziggy I'm only using MatterControl to slice the model; after that it's handed over to Octoprint so unless MC is injecting a second auto-level command into the gcode it should only be executing the G29

    So the z offset is set to 1 and the first layer height is 0.3mm so that's where the Z1.3 initial coordinates come from. I've experimented with this and can can only get z offset down to about 0.85 before I'm scraping the print bed in certain places (and still failing to stick elsewhere)
     
  13. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,277
    I'm not entirely sure how mattercontrol handles autolevel. I do know it does some funny things with G-code, like adding a height value to each G1 command.
     
  14. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
  15. milks

    milks Member

    Joined:
    Oct 15, 2014
    Messages:
    44
    Likes Received:
    20
    Hey, thanks for all the suggestions. I've switched auto-level off in MatterControl and retried a medium sized print which went a lot better than it had previously.

    @Ziggy I'm setting the z offset in Printer > General > Z Offset. It seems that while the M565 always sets it to zero MC is actually offsetting every Z coordinate in the gcode, i.e. in a different print the first layer height is 0.2mm, z offset 0.8mm and the gcode reads
    note I'm not stating this as fact; it requires some further investigation.

    So I think my problem is an uneven bed. Auto-levelling seems to be adjusting out any tilt on the bed; not undulation, that would explain why a G29 operation produces a normal.

    In theory it would be possible to write a script which compensates for undulation by probing the bed (many more than the standard nine times) and selectively putting down filament in the valleys so to even out the surface; using linear interpolation to fill in the blanks between sample points. It wouldn't need to do this across the whole surface of course, just the area needed for the print. I might have a pop at writing such a script but I need to get much more familiar with the printer first :)
     
  16. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
    You are correct. The G29 probing does not handle undulations well. Placing a sheet of glass over the bed fixes undulations and has lots of other advantages IMO.

    Either way I think you would get a more consistent result by using the M565 command to set the offset (rather than MC). That way all the auto level compensation is done in the printer Marlin firmware.

    You can also calibrate the M565 offset using a gcode sequence like this

    G21 ; milimeters
    G90 ; absolute coords
    G1 Z10 ; move extruder up out of the way
    G28 ; Home all axes
    M565 Z?.?? ; set the Z Offset
    G29 ; probe bed
    G1 Z5.00 F4800 ; get ready to move
    G1 X100 Y110 F4800 ; move to centre
    G1 Z0.3 ; Extruder should be exactly 0.3mm above the bed


    When you "print" this sequence of gcode the extruder should be in the centre of the bed at 0.3mm above the bed. You can then check the height is correct using manual controls and a piece of paper (ie thickness 0.1mm). If the Z height is not correct, go back adjust the M565 value and repeat the test.
     
  17. milks

    milks Member

    Joined:
    Oct 15, 2014
    Messages:
    44
    Likes Received:
    20
    Yeah I'd much prefer being able to tweak a single value rather than have that value intrinsically embedded throughout the entire code; not sure if there's a good reason why MC takes the latter approach.

    I also prefer the idea of fixing the hardware (regarding the undulations) rather than trying to compensate for it in the software. How does having a sheet of glass on top effect the heated bed? Does the heat transmit okay by itself or do you use a thermal paste or similar to help?
     
  18. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
    I am using 5mm standard window glass for PLA at up to around 80C. For ABS above 100C tempered glass or borosilicate is a better choice.

    In both cases the glass sheet heats up quickly with no need for any conductive paste. I just use 2 large bulldog clips to keep the glass in place.
     
Thread Status:
Not open for further replies.

Share This Page