OK, so I've got a seriously bizarre one for you guys. This is my first post on the forums, but I've been lurking for a couple months now. Completed my rostock max v2 build about a month ago now and have been really happy with it so far. But all of a sudden, it's got a very strange bug. You're going to ask, did anything change prior to this? Yes.
About two weeks ago I decided to play around with variations of the firmware. I'm a software engineer and can't help myself. After trying several different flavors of firmware, including polygonhell's (which has a very nice LCD interface), I went back to the seemecnc default. Yes, I always clear the EEPROM when loading a different version.
What's the problem? Well, at the end of every print job (perfectly successful jobs), the extruder decides that it just isn't happy with the otherwise perfect print and extrudes quite a bit of extra plastic right on top of the last layer, then homes. So you could say it takes a dump on a perfectly good and finished print, ruining it. The extruder motor usually runs really fast during this.
By manually editing the gcode, I've tracked the problem down. G92 E0. If I remove this from the gcode, everything is fine. But this makes no sense as this command should not cause the extruder to extrude. It just resets the internal positioning variable of the stepper to zero, setting it's "home" position. And G92 E0 can be found scattered throughout the code, some slicers even put it in between each layer to help correct for retraction induced errors.
I'm baffled. Any help would be appreciated.
G92 E0 Gone Wild!
-
- ULTIMATE 3D JEDI
- Posts: 2417
- Joined: Mon Mar 26, 2012 1:44 pm
- Location: Redmond WA
Re: G92 E0 Gone Wild!
Depending on the Slicer you will see one of 3 different variations of gcode.
Relative extruder positions - you rarely see this, though some people swear by it and most slicers have options to produce it, the argument against it is accumulated error, in practice it's a none issue.
Absolute extruder position with reset per layer - This is what you are seeing, at the end of each layer the slicer resets the Z position. The reason is that single precision FP numbers have error proportional to the size of the value, so by resetting per layer, you minimize the overall error.
Absolute extruder position without resets - see previous description
G92 E0 just resets the extruders current position to 0, in and of itself it should not cause filament to extrude. My first guess would be the end gcode, you need to look at the end of the generated GCode and also at the End GCode section in repetier host if you are using it. If you're not fluent in GCode posting both here would probably be a good start
Relative extruder positions - you rarely see this, though some people swear by it and most slicers have options to produce it, the argument against it is accumulated error, in practice it's a none issue.
Absolute extruder position with reset per layer - This is what you are seeing, at the end of each layer the slicer resets the Z position. The reason is that single precision FP numbers have error proportional to the size of the value, so by resetting per layer, you minimize the overall error.
Absolute extruder position without resets - see previous description
G92 E0 just resets the extruders current position to 0, in and of itself it should not cause filament to extrude. My first guess would be the end gcode, you need to look at the end of the generated GCode and also at the End GCode section in repetier host if you are using it. If you're not fluent in GCode posting both here would probably be a good start
Printer blog http://3dprinterhell.blogspot.com/
Re: G92 E0 Gone Wild!
I know to use absolute positioning with this printer/firmware. I've tried KISSlicer, Cura and multiple versions of Slic3r, all have this problem. Here is the gcode from v1.0.1 Slic3r. This is the very end of the file.
G1 F3600.000 E3.20873
G1 Z81.350 F18000.000
G92 E0
M107
M104 S0 ; turn off temperature
G28 X0 ; home X axis
M84 ; disable motors
; filament used = 30717.9mm (73.9cm3)
If I remove that G92 E0, it does not exhibit this behavior.
Let me clarify a bit, immediately after finishing the last layer, it extrudes between 30-50mm while the effector remains stationary. Then it returns the carriages to home. If I remove that, it just finishes and goes home. So easy fix... but I have to remember to edit every gcode file before sending it to the printer. If I forget, ruined print.
G1 F3600.000 E3.20873
G1 Z81.350 F18000.000
G92 E0
M107
M104 S0 ; turn off temperature
G28 X0 ; home X axis
M84 ; disable motors
; filament used = 30717.9mm (73.9cm3)
If I remove that G92 E0, it does not exhibit this behavior.
Let me clarify a bit, immediately after finishing the last layer, it extrudes between 30-50mm while the effector remains stationary. Then it returns the carriages to home. If I remove that, it just finishes and goes home. So easy fix... but I have to remember to edit every gcode file before sending it to the printer. If I forget, ruined print.
Re: G92 E0 Gone Wild!
Let me clarify further, the ONLY spot I have to remove G92 E0 is the end of the file, it causes no problems at the beginning or between layers.
-
- ULTIMATE 3D JEDI
- Posts: 2417
- Joined: Mon Mar 26, 2012 1:44 pm
- Location: Redmond WA
Re: G92 E0 Gone Wild!
Nothing in there should be extruding, having said that you should absolutely remove this line
G28 X0 ; home X axis
or replace it with just G28, god knows what trying to zero out just X will actually do on a delta.
I also don't like to use M84, because some M codes are executed immediately rather than being queued with the movement codes.
But I doubt either of these are causing the extrusion.
Do you have anything like goto dump area set in Repetier host, or any code in the end GCode tab (it's selected from the drop down on the GCode page) it can generate some additional commands that don't show up in the GCode tab.
G28 X0 ; home X axis
or replace it with just G28, god knows what trying to zero out just X will actually do on a delta.
I also don't like to use M84, because some M codes are executed immediately rather than being queued with the movement codes.
But I doubt either of these are causing the extrusion.
Do you have anything like goto dump area set in Repetier host, or any code in the end GCode tab (it's selected from the drop down on the GCode page) it can generate some additional commands that don't show up in the GCode tab.
Printer blog http://3dprinterhell.blogspot.com/
Re: G92 E0 Gone Wild!
Thanks for the advice. G28 X0 is the slic3r default and I've seen it from the output from a few other slicers. Seems to send it home just like plain old G28. The firmware from seemecnc probably ignores the extra parameters, I know if I modified the firmware, that's what I'd do.
I do have commands visible in the bottom frame of repetier, but never paid close attention to them... I'll have to run a small test job in a few minutes. I'm just about finished with a 17 hour print I started before going to bed last night (at 3am).
I would love to switch back to your firmware, I had it 95% working... trying to recall what it was that got me to abandon it (it was probably 3am on a friday or saturday night or something), but it seems to me it had to do with the z values being wrong (like being 600mm vs 390 like it should be). Yes, I changed the stepping motor from 8 steps to 16. It was after I switched back to the stock firmware this weirdness started.
Doesn't make any sense, does it? G92 E0 shouldn't cause extrusion, I've done extensive research before deciding to post here.
I do have commands visible in the bottom frame of repetier, but never paid close attention to them... I'll have to run a small test job in a few minutes. I'm just about finished with a 17 hour print I started before going to bed last night (at 3am).
I would love to switch back to your firmware, I had it 95% working... trying to recall what it was that got me to abandon it (it was probably 3am on a friday or saturday night or something), but it seems to me it had to do with the z values being wrong (like being 600mm vs 390 like it should be). Yes, I changed the stepping motor from 8 steps to 16. It was after I switched back to the stock firmware this weirdness started.
Doesn't make any sense, does it? G92 E0 shouldn't cause extrusion, I've done extensive research before deciding to post here.
-
- ULTIMATE 3D JEDI
- Posts: 2417
- Joined: Mon Mar 26, 2012 1:44 pm
- Location: Redmond WA
Re: G92 E0 Gone Wild!
My firmware should be considered abandon ware, it existed becasue I wanted to use Repetier because at the time I thought it's delta support was better and SeeMe at the time were using Marlin.
It's configured for my printer which has very different settings than the latest stuff shipping from SeeMe.
The latest SeeMe firmware should have at least the same functionality, I'm not even sure my latest version is up on github, I stopped maintaining it shortly after John released the official Repetier firmware.
The odds are there is some GCode being inserted after the print by the host, if you turn on the Send log output, you can see everything that is se to the printer, just look at the log at the end of the print
It's configured for my printer which has very different settings than the latest stuff shipping from SeeMe.
The latest SeeMe firmware should have at least the same functionality, I'm not even sure my latest version is up on github, I stopped maintaining it shortly after John released the official Repetier firmware.
The odds are there is some GCode being inserted after the print by the host, if you turn on the Send log output, you can see everything that is se to the printer, just look at the log at the end of the print
Printer blog http://3dprinterhell.blogspot.com/
Re: G92 E0 Gone Wild!
Ha, I work with abandonware all the time. Company pays someone to write something, project is successful, all the developers move on, six years later they ask me to reverse engineer it. I'm in the middle of reverse engineering some avionics equipment, writing requirements documentation (there was none or it was lost) and building a new version of the device. The fact is, it still works and yes, I got several calibration prints out of it... only problem I couldn't easily fix was the z-height issue. Your UI is much better than the repetier firmware, provides more information and more functionality. If I get truly bored some day, I may take on the challenge of merging the branches.
Just completed a quick .5mm wall and it did it again. Here's the log.
20:51:55.027 : N1695 G1 X-11.147 Y-9.658 E88.75403 F14400 *43
20:51:55.106 : N1696 G1 X-11.084 Y-10.318 E88.59658 F14400 *29
20:51:55.278 : N1697 G1 X-10.798 Y-10.807 E88.46198 F14400 *23
20:51:55.371 : N1698 G1 X-10.098 Y-11.125 E88.2796 F14400 *47
20:51:55.371 : N1699 G1 X-3.324 Y-11.127 E86.67079 F14400 *33
20:51:55.496 : N1700 G1 E86.32079 F3600 *39
20:51:55.496 : N1701 G1 Z7.05 F18000 *6
20:51:55.496 : N1702 G92 E0 *83
20:51:55.512 : N1703 M107 *48
20:51:55.543 : N1704 M104 S0 *119
20:51:55.543 : N1705 G28 X0 *72
20:51:55.543 : Printjob finished at 5/23/2014 8:51 PM
20:51:55.543 : Printing Time:11m:36s
20:51:55.543 : Lines Send:1433
20:51:55.559 : N1706 M84 *15
20:51:55.637 : N1707 M104 T0 S0 *48
20:51:56.871 : Printed filament:494.09m Printing time:1 days 6 hours 21 min
20:51:57.152 : N1708 M105 *57
20:52:00.215 : N1709 M105 *56
Just completed a quick .5mm wall and it did it again. Here's the log.
20:51:55.027 : N1695 G1 X-11.147 Y-9.658 E88.75403 F14400 *43
20:51:55.106 : N1696 G1 X-11.084 Y-10.318 E88.59658 F14400 *29
20:51:55.278 : N1697 G1 X-10.798 Y-10.807 E88.46198 F14400 *23
20:51:55.371 : N1698 G1 X-10.098 Y-11.125 E88.2796 F14400 *47
20:51:55.371 : N1699 G1 X-3.324 Y-11.127 E86.67079 F14400 *33
20:51:55.496 : N1700 G1 E86.32079 F3600 *39
20:51:55.496 : N1701 G1 Z7.05 F18000 *6
20:51:55.496 : N1702 G92 E0 *83
20:51:55.512 : N1703 M107 *48
20:51:55.543 : N1704 M104 S0 *119
20:51:55.543 : N1705 G28 X0 *72
20:51:55.543 : Printjob finished at 5/23/2014 8:51 PM
20:51:55.543 : Printing Time:11m:36s
20:51:55.543 : Lines Send:1433
20:51:55.559 : N1706 M84 *15
20:51:55.637 : N1707 M104 T0 S0 *48
20:51:56.871 : Printed filament:494.09m Printing time:1 days 6 hours 21 min
20:51:57.152 : N1708 M105 *57
20:52:00.215 : N1709 M105 *56
Re: G92 E0 Gone Wild!
And here is a success... now I'm really baffled. G92 E0 shows up in the log, yet I removed it from the gcode.
20:51:55.027 : N1695 G1 X-11.147 Y-9.658 E88.75403 F14400 *43
20:51:55.106 : N1696 G1 X-11.084 Y-10.318 E88.59658 F14400 *29
20:51:55.278 : N1697 G1 X-10.798 Y-10.807 E88.46198 F14400 *23
20:51:55.371 : N1698 G1 X-10.098 Y-11.125 E88.2796 F14400 *47
20:51:55.371 : N1699 G1 X-3.324 Y-11.127 E86.67079 F14400 *33
20:51:55.496 : N1700 G1 E86.32079 F3600 *39
20:51:55.496 : N1701 G1 Z7.05 F18000 *6
20:51:55.496 : N1702 G92 E0 *83
20:51:55.512 : N1703 M107 *48
20:51:55.543 : N1704 M104 S0 *119
20:51:55.543 : N1705 G28 X0 *72
20:51:55.543 : Printjob finished at 5/23/2014 8:51 PM
20:51:55.543 : Printing Time:11m:36s
20:51:55.543 : Lines Send:1433
20:51:55.559 : N1706 M84 *15
20:51:55.637 : N1707 M104 T0 S0 *48
And just to confirm, put the G92 E0 back and failure.... (I've done this a dozen times now)
21:37:47.877 : N1647 G1 X-10.732 Y9.566 F18000 *116
21:37:47.955 : ok 1641
21:37:48.048 : ok 1642
21:37:48.048 : N1648 G1 X-11.147 Y-9.658 E88.75403 F14400 *43
21:37:48.064 : ok 1643
21:37:48.064 : N1649 G1 X-11.084 Y-10.318 E88.59658 F14400 *31
21:37:48.142 : ok 1644
21:37:48.142 : N1650 G1 X-10.798 Y-10.807 E88.46198 F14400 *28
21:37:48.220 : ok 1645
21:37:48.314 : ok 1646
21:37:48.314 : N1651 G1 X-10.098 Y-11.125 E88.2796 F14400 *42
21:37:48.345 : ok 1647
21:37:48.345 : ok 1648
21:37:48.345 : N1652 G1 X-3.324 Y-11.127 E86.67079 F14400 *38
21:37:48.345 : N1653 G1 E86.32079 F3600 *32
21:37:48.345 : N1654 G1 Z7.05 F18000 *7
21:37:48.392 : ok 1649
21:37:48.392 : N1655 G92 E0 *80
21:37:48.392 : N1656 M107 *49
21:37:48.486 : ok 1650
21:37:48.486 : N1657 M104 S0 *112
21:37:48.486 : N1658 G28 X0 *65
21:37:48.486 : Printjob finished at 5/23/2014 9:37 PM
21:37:48.486 : Printing Time:8m:1s
21:37:48.486 : Lines Send:1433
21:37:48.502 : N1659 M84 *4
21:37:48.580 : ok 1651
21:37:48.580 : N1660 M104 T0 S0 *48
21:37:48.658 : ok 1652
21:37:48.736 : ok 1653
21:37:48.830 : ok 1654
21:37:48.892 : N1661 M105 *55
21:37:48.908 : ok 1655
21:37:49.002 : ok 1656
21:37:49.002 : ok 1657
21:37:49.002 : Fanspeed:0
21:37:49.002 : ok 1658
21:37:49.767 : TargetExtr0:0
21:37:49.798 : Printed filament:494.68m Printing time:1 days 6 hours 48 min
21:37:49.798 : ok 1659
21:37:51.955 : N1662 M105 *52
21:37:52.939 : ok 1660
21:37:55.017 : N1663 M105 *53
20:51:55.027 : N1695 G1 X-11.147 Y-9.658 E88.75403 F14400 *43
20:51:55.106 : N1696 G1 X-11.084 Y-10.318 E88.59658 F14400 *29
20:51:55.278 : N1697 G1 X-10.798 Y-10.807 E88.46198 F14400 *23
20:51:55.371 : N1698 G1 X-10.098 Y-11.125 E88.2796 F14400 *47
20:51:55.371 : N1699 G1 X-3.324 Y-11.127 E86.67079 F14400 *33
20:51:55.496 : N1700 G1 E86.32079 F3600 *39
20:51:55.496 : N1701 G1 Z7.05 F18000 *6
20:51:55.496 : N1702 G92 E0 *83
20:51:55.512 : N1703 M107 *48
20:51:55.543 : N1704 M104 S0 *119
20:51:55.543 : N1705 G28 X0 *72
20:51:55.543 : Printjob finished at 5/23/2014 8:51 PM
20:51:55.543 : Printing Time:11m:36s
20:51:55.543 : Lines Send:1433
20:51:55.559 : N1706 M84 *15
20:51:55.637 : N1707 M104 T0 S0 *48
And just to confirm, put the G92 E0 back and failure.... (I've done this a dozen times now)
21:37:47.877 : N1647 G1 X-10.732 Y9.566 F18000 *116
21:37:47.955 : ok 1641
21:37:48.048 : ok 1642
21:37:48.048 : N1648 G1 X-11.147 Y-9.658 E88.75403 F14400 *43
21:37:48.064 : ok 1643
21:37:48.064 : N1649 G1 X-11.084 Y-10.318 E88.59658 F14400 *31
21:37:48.142 : ok 1644
21:37:48.142 : N1650 G1 X-10.798 Y-10.807 E88.46198 F14400 *28
21:37:48.220 : ok 1645
21:37:48.314 : ok 1646
21:37:48.314 : N1651 G1 X-10.098 Y-11.125 E88.2796 F14400 *42
21:37:48.345 : ok 1647
21:37:48.345 : ok 1648
21:37:48.345 : N1652 G1 X-3.324 Y-11.127 E86.67079 F14400 *38
21:37:48.345 : N1653 G1 E86.32079 F3600 *32
21:37:48.345 : N1654 G1 Z7.05 F18000 *7
21:37:48.392 : ok 1649
21:37:48.392 : N1655 G92 E0 *80
21:37:48.392 : N1656 M107 *49
21:37:48.486 : ok 1650
21:37:48.486 : N1657 M104 S0 *112
21:37:48.486 : N1658 G28 X0 *65
21:37:48.486 : Printjob finished at 5/23/2014 9:37 PM
21:37:48.486 : Printing Time:8m:1s
21:37:48.486 : Lines Send:1433
21:37:48.502 : N1659 M84 *4
21:37:48.580 : ok 1651
21:37:48.580 : N1660 M104 T0 S0 *48
21:37:48.658 : ok 1652
21:37:48.736 : ok 1653
21:37:48.830 : ok 1654
21:37:48.892 : N1661 M105 *55
21:37:48.908 : ok 1655
21:37:49.002 : ok 1656
21:37:49.002 : ok 1657
21:37:49.002 : Fanspeed:0
21:37:49.002 : ok 1658
21:37:49.767 : TargetExtr0:0
21:37:49.798 : Printed filament:494.68m Printing time:1 days 6 hours 48 min
21:37:49.798 : ok 1659
21:37:51.955 : N1662 M105 *52
21:37:52.939 : ok 1660
21:37:55.017 : N1663 M105 *53