bed compensation insufficient (used to be good)?



  • Firmware Version: 2.01(RTOS) (2018-07-26b2)

    I have a substantial heightmap (on a BigBox) using the IR sensor on the Clever3D PEI bed.

    M557 X10:290 Y35:195 S20

    The map was made at 102C (preferred first layer temperature for nGen).

    0_1545463792264_9b4ca192-c322-46aa-9bd0-227bab64829e-image.png

    There's a G29 S1 command in config.g so it's loaded every time and some compensation is definitely happening because can see the Z adjusting (and did an G29 S2 to turn that off and compare).

    However the compensation is not at all enough and whilst some areas of the first layer might be great in other areas there will be large gaps between tracks.

    Have worked through loads of hypotheses (ranging from sensor getting confused at 102C through to there being a second, old, heightmap.csv file hidden on the SD card) and am now totally out of ideas.

    Any suggestions most welcome.

    ps notice another thread has just appeared on same topic
    https://forum.duet3d.com/topic/8217/mesh-bed-level-compensation-problem

    **************Meshlevel.g *************************

    M557 X10:290 Y35:195 S20 ; Define a grid for measuring the bed: S is the step size

    ; Home all axes. Do Y first to avoid crash if exiting dock area.
    G28 Y
    G28 X
    G28 Z

    ; Use G29 to run the probing sequence. The S0 parameter saves the height map in a file on the SD card, and activates bed compensation. The default height map file is /sys/heightmap.csv

    G29 S0 ; Run probing sequence defined by M557 above

    ; The next command looks redundant. M374 saves the height map to the default file. The previous command was supposed to have done that but it did not seem completely reliable. Explicitly calling M374 seems to fix the issue.

    ; Note: If you don't want to probe the bed every time you reboot the BigBox, add the command G29 S1 to your config.g file. This will load the height map from the last time G29 probed the bed.

    M374 ; Save calibration data. Default is sys/heightmap.csv

    ;Just to be tidy, park the carriage out of the way in the dock. This is optional but tidy.

    G1 X87 Y200 F3000 ; move to position in front of dock
    G1 X87 Y240 F3000 ; move into dock

    ***************** CONFIG.G*******************************

    a; Configuration file for BigBox 3D printer

    ; Communication and general
    M111 S0 ; Debug off
    M550 PBigBoxPro ; Machine name and Netbios name (can be anything you like)
    M551 Preprap ; Machine password (used for FTP)

    ;*** Wifi Networking
    M552 S1 ; Enable WiFi

    M555 P2 ; Set output to look like Marlin
    M575 P1 B57600 S1 ; Comms parameters for PanelDue
    ; Movement section
    M569 P0 S1 ; Drive 0 goes forwards (change to S0 to reverse it)
    M569 P1 S1 ; Drive 1 goes forwards
    M569 P2 S0 ; Drive 2 goes forwards - Z axis
    M569 P3 S1 ; Drive 3 goes forwards
    M569 P4 S1 ; Drive 4 goes forwards
    M574 X1 Y1 Z1.2 S1 ; set endstop configuration (X and Y endstops only, at low end, active high)
    M906 X800 Y600 Z800 E1000 ; Set motor currents (mA)
    M201 X800 Y800 Z15 E1000 ; Accelerations (mm/s^2)
    M203 X8000 Y8000 Z360 E1000 ; Maximum speeds (mm/min)
    M566 X600 Y600 Z30 E20 ; Minimum speeds mm/minute
    M208 X300 Y240 Z270 ; set axis maxima (adjust to suit your machine)
    M208 X0 Y0 Z-0.2 S1 ; set axis minimum (adjust to make X=0 and Y=0 the edge of the bed)
    M92 X160 Y360 Z1600 ; Set axis steps/mm
    M92 E320 ; Set extruder steps per mm
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves
    M350 X16 Y16 E16 I1 ; Set 256x microstepping with interpolation

    ; Z probe section
    M558 P1 X0 Y0 Z1 H3 F200 T5000 ; Smart IR Z probe, used for homing Z axis, dive height 3mm, probe speed 200mm/min, travel speed 5000mm/min
    G31 X-5 Y35 Z1.90 P500 ; Set the probe height and threshold (put your own values here) X-5 Y35 Z1.90 P500
    G29 S1 ; load height map from mesh levelling

    ; Heater and thermistor section
    M305 P1 X200 ; specify channel PT400 board
    ;*** If you have a Duet board with 1K thermistor series resistors, change R4700 to R1000 to the following M305 commands: set to R400 if using PT100 daughter board
    M305 P0 T100000 B4388 R4700 H30 L0 ; Put your own H and/or L values here to set the heated bed thermistor ADC correction
    M305 P1 T100000 B4388 R400 H30 L0 ; Put your own H and/or L values here to set the first nozzle PT100
    ;M305 P2 R400 H0 L0 ; Put your own H and/or L values here to set the second nozzle thermistor ADC correction
    M301 H1 P10 I0.10 D100 T0.50 S1.0 ; default PID settings for extruder 0 (over-ruled by below FOPD settings from calibration)
    M301 H2 P10 I0.10 D100 T0.50 S1.0 ; default PID settings for extruder 1

    M307 H1 A384.2 C170.8 D9.5 B0 ;FOPD nozzle calibration system overrides above M301
    M307 H0 A225.5 C555.7 D4.3 B0 ;FOPD bed calibration system overrides above M301

    M570 S120 ; Increase to allow extra heating time if needed
    M106 F10 ; Fix for Bigbox Blower - Drop Blower Fan PWM from 250 to 10 Hz per Tim Elmore
    M106 P1 F22500 S0.4 T40 H1 ; Trigger hotend 1 (left) fan at 40 C, PWM 40% @ 22500Hz

    ; Tool definition section
    M563 P0 D0 H1 ; Define tool 0 to use extruder drive 0 and heater 1
    G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
    ;*** If you have a dual-nozzle build, un-comment the following 2 lines
    ;M563 P1 D1 H2 ; Define tool 1
    ;G10 P1 S0 R0 ; Set tool 1 operating and standby temperatures

    ; Bed probe section (not needed if you use a bed.g file)
    ;*** Adjust the XY coordinates in the following M557 commands to suit your build and the position of your Z probe
    M557 P0 X60 Y0 ; Four...
    M557 P1 X60 Y165 ; ...probe points...
    M557 P2 X200 Y165 ; ...for bed...
    M557 P3 X200 Y0 ; ...levelling
    ;M557 P4 X141 Y82.5 ; 5th probe point for levelling (un-comment this to get a 5th point at the centre of the bed)

    ; Epilogue
    ;*** If you are using axis compensation, put the figures in the following command
    M556 S78 X0 Y0 Z0 ; Axis compensation here
    T0



  • This post is deleted!


  • It's possible that the IR sensor isn't working very well with your print surface. PEI has a bit of reflectivity to it.

    As a test, you could cover your bed with some dark paper which should work fine with the IR probe and compare with what you currently have.

    The large bulge in the middle of your height map might indicate droop in the X axis. It may also be that the probe can't reach the edges of your bed and is skipping a large swath of probe points. That could explain the narrowness of the displayed heightmap. Do you notice any errors when it's doing a G29 probing routine?



  • Hi,

    I would generate a new height map with the bed heater off just to see if the heat is a factor.

    Frederick



  • @fcwilt said in bed compensation insufficient (used to be good)?:

    Hi,

    I would generate a new height map with the bed heater off just to see if the heat is a factor.

    Frederick

    Adding B1 to the M558 command will temporarily disable the heaters while doing the probing move. That way you can still maintain temperature, but eliminate any potential electrical interference.

    https://duet3d.dozuki.com/Wiki/GCode#Section_M558_Set_Z_probe_type

    Bn If 1, turn off bed heater while probing, default (B0) leaves heater on. (RepRapFirmware 1.21RC2 and later)



  • @phaedrux said in bed compensation insufficient (used to be good)?:

    @fcwilt said in bed compensation insufficient (used to be good)?:

    Hi,

    I would generate a new height map with the bed heater off just to see if the heat is a factor.

    Frederick

    Adding B1 to the M558 command will temporarily disable the heaters while doing the probing move. That way you can still maintain temperature, but eliminate any potential electrical interference.

    https://duet3d.dozuki.com/Wiki/GCode#Section_M558_Set_Z_probe_type

    Bn If 1, turn off bed heater while probing, default (B0) leaves heater on. (RepRapFirmware 1.21RC2 and later)

    I did not know that BUT I was thinking about the heat warping the bed OR perhaps affecting the readings from the probe.

    Sometimes having a something to compare to, like a heightmap while cold, can help determine the cause of the problem.

    Frederick



  • Thanks a LOT everyone.

    Fought though end of weekend exhaustion to perform several more mesh levellings at a variety of temperatures and adding M558 B1 to the party.

    Ran an M376 0 command just in case somehow a small positive taper value had crept into memory.

    Unable to find any thin flat paper to map the bed surface, but know plenty of other people who find the nice dark, smooth and unmarked Clever3d PEI print surface to be just great with the IR sensor.

    Nothing.

    But now we have a solution!

    Back when the BigBox printer launched was trying to push the boundaries and, not knowing any gurus personally, took the opportunity to ask fellow Bigboxer Maestro RichRap a bunch of questions. Amongst my notes are:

    extrusion width (set between 1.2-2.5 times nozzle width)
    layer height (max height = width / 1.2)

    Haven't notice many people pushing extrusion width but on an E3d nozzle the geometry does indeed allow up to 2.5 x nozzle with quite successfully. So lately have been doing lots of prints at 0.75mm track width with a 0.4mm nozzle. Great.

    So it turns out wide track widths don't work so well for 1 layer settings. Moreover had my first layer set to 125% giving a track width of 1.25 * 0.75 = 0.94mm which is 2.3 x nozzle diameter. That's OK vis a vis Richrap's observations on E3d nozzle geometry but it turns out that this EXACERBATES any failings in bedlevelling. A bit like trying to put down a first layer at 50 microns layer height.

    (Incidentally I was printing at 0.2mm layer height and the first layer was at 75% of that, so 0.15mm.)

    Just been through a series of first layer skirt prints at various settings but will add photos of the two extremes. One with 0.94mm track width (125% of 0.75mm) and the other with 0.36mm track width (50% of 0.75mm).

    One can sort of imagine what might be going on with a little variation in Z height in the two scenarios. With 0.36mm with the plastic is literally dropping out of the nozzle onto the bed and, moreover, the stepovers between tracks are proportionally less. With the 0.94mm track width there's a lot of squishing going on with the flat part of the nozzle and, lift it up a tiny bit and it's going to suck the plastic back towards the extruding hole...

    • photos hi res so one can zoom;
    • compare gaps that appear between tracks;

    ps these wide track widths are great for overhangs.. 😉

    1_1545592152729_094mm_track.jpg 0_1545592152729_036mm_track.jpg



  • Very interesting and your explanation makes perfect sense. I've experimented with very high extrusion widths as well, and definitely comes in handy sometimes, but for a first layer I haven't found anything that can beat 0.2 layer height and nozzle size for extrusion width and 100% flow.

    What is your actual nozzle size?



  • Actual nozzle size is 0.4mm. Have had fun with Volcanos in the past but not prepared to switch nozzles on a regular basis: it's the stress of having to dial everything in again that kills me.

    A friend pointed out there's another particularity of printing on an aluminium (PEI coated) bed: the high conductivity of the aluminium sucks the heat out of the first layer almost immediately leaving it little opportunity to "flow" accross the bed. Hmmm. (He simultaneously pointed out that this is why we aluminium bed users veer towards higher first layer temperatures - hadn't realised that either!)


Log in to reply