I'm getting horribly inconsistent first layer thicknesses on my Metal Plus with the dual

I’m getting horribly inconsistent first layer thicknesses on my Metal Plus with the dual extruder. Chain of events is like this

  • try to print, first layer is way too thin
  • adjust z offset up a bit with M212, M500 and M501 to make sure it stuck
  • print successfully
  • try another print, first layer is way too thick
  • adjust z offset down a bit
  • etc.

This was never a problem with the original firmware. Not sure the version, but what was shipped with the very first units made (I bought mine in the Black Friday release). I updated to the latest firmware (Rev F v5) to try and solve a problem with Simplify3D’s buggy USB code. I notice that the G29 bed leveling uses different points on the bed than before. I’ve also noticed that it is inconsistent on what 3 point it uses - sometimes it’s 10mm further in the X axis.

I’m wondering if the proximity detector, which is a rectangular green box unlike the metal cylinder used on all their other printers may be to blame. Or maybe a bug in V5 firmware. Has anyone else noticed this behavior?

Have you tried reflashing the firmware? I’ve noticed sometimes I’ve gotten erratic behavior when upgrading the firmware at first. Might also be worth wiping the EEPROM settings and inputting them from scratch, but make sure you back the current settings up first.

I’d also suggest looking at the log as the printer goes through the auto level process, as it will give you the detected distance to the bed. If that’s changing every time it levels, I’d consider replacing the sensor itself. I’m pretty sure that the current version of the Plus uses the now standard cylindrical induction sensor, I imagine there’s an upgrade path for it.

Pretty sure the firmware is OK. The update process does a checksum to make sure the image is OK. I might try resetting the EEPROM, but Repetier does not currently support the EEPROM on Rev F v5. They will support it again when 1.6.2 is released, but it’s anyone’s guess when that will happen. Is there another host software that lets you change the eeprom parameters on a current Printrboard?

I have been watching the log during G29 bed leveling and it’s a bit confusing. If I home all axis (G28), it homes X, then Y, then moves to the center of the bed and homes Z. If I then do a G29, it reports the Z offsets right around the value in M212. However, if I home X and Y and then home Z so the extruder is in the left rear (where it should be after homing all axis) and then do a G29, it reports the Z offset about 0.5mm larger. Makes me wonder if my bed is slightly concave, but that still doesn’t explain the inconsistent Z home detection.

Here is something strange. The results from a G29 bed level are different depending in where the print head is when I issue the G29. It seems like if the print head is anywhere in the left rear quadrant, G29 reports values that are about 0.5mm too big. i changed my start G-code from G28 X0 Y0 Z0 to just G28, which inexplicably moves the print head to the middle of the bed before homing the Z axis and it seems to be better. I’m in the middle of a 2hr print so I’ll have to confirm all this later.

Could be a bad inductive sensor. Keep running your G29 command and see if your levels keep coming back differently

Personally I would always run a G28 before my G29 command in the start Gcode

Do you have a Rev F5 or F4 or even a Rev D board? Make sure you grabbed the right firmware. The original Metal came with the Rev F4 board I believe

Are you seeing the extrusion going from thick while X axis is in to thin when farther out?

Due to the added weight, from the second extruder, you may want to go through some checks of the machine.

Check the Z rods and make sure they are tight. If not you might be able to tighten them up with some Loctite. Tighten all of cap head screws again. If your Z rods do not have a brace between them you might consider adding one. You might consider adding a counter balance.

With the extra weight, inertia, did you slow the MM/S print speed down to see if that had any effect?

I think I have found a fix, but I don’t really understand it. My start G-code has always been the default

G28 X0 Y0
G28 Z0
G29

The reason not to simplify to just

G28
G29

is that G28 does not home all axis. Rather it homes X, then Y, then moves X and Y to the middle of the bed and finally homes Z. Seems like a bug to me, but it’s been this way through several firmware versions.

However, I found that when I use the latter I get good, consistent first layer heights. The default with 2 G28’s gives first layer heights are are inconsistent.

G28 X0 Y0 is used to home the X and Y axis. Then they call G28 Z0 again to home the Z. G29 has to come after the last G28 command, if not you will see weird stuff! The G1 Z0 really is not needed since the G29 will set it again anyway. G28 X0 Y0 should stay in the corner it starts in. G28 alone will center it on the bed.

If the G28 Z0 command is used the G29 needs to be after it!

Sample Start code from my Cura on a play:

All stock except the G29

;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}
;Filament cost: {filament_cost}
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
;M109 S{print_temperature} ;Uncomment to add your own temperature line

G21 ;metric values
G90 ;absolute positioning
M82 ;set extruder to absolute mode
M107 ;start with the fan off
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G29 ; bed leveling
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock
G92 E0 ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
M117 Printing…

Repetier has less in its start:

Again the G29 was added.

G28 ; home all axes
G1 Z5 F5000 ; lift nozzle
G29 ;bed leveling