Welcome! Log In Create A New Profile

Advanced

E units?

Posted by BeagleFury 
E units?
April 02, 2010 01:05PM
For X,Y, and Z, the units are metric (mm) or imperial (inch) based on G20/G21.

What are the units for the number following E?

I would expect this to be volume based? Is it square mm? or length of .5mm round extrudate, or length of 3mm feedstock, or something else?

Anyone know? I couldn't tell for sure from the code I looked at.
Re: E units?
April 02, 2010 01:37PM
It's nominally in mm of extruded filament (or inches if you're using Imperial). The volume is set by the E steps/mm setting in the firmware. Right now, most CAM assumes you only want a single width of filament, but you can adjust it using die swell or filament stretching and varying the E / distance travelled rate set up in your CAM software.
Re: E units?
April 02, 2010 05:42PM
Thanks, Wade.

Seems a bit counter intuitive to tie the E code to a distance, since tying it to volume would allow some gcode written for a 0.5mm machine to work on a machine of 0.6mm or 0.4mm, but I guess that's how things lay.

I tried to find a page on the wiki for general filament information, couldn't find one, so created a page specific to discussion about filament. I also included in table form some of the data nophead had published a while back on the forum for usable filament diameter ranges based on material and nozzle diameter.
Re: E units?
April 02, 2010 11:30PM
What is actually controlled is the number of steps that the extruder stepper takes, which is a distance. It doesn't precisely correspond to the length of filament extruded, but it's still a distance.

The firmware is feeding all of these into a modified bresenham line drawing algorithm, which operates in discrete steps. Which axis these steps are taken on make no functional difference. It's all distance to the firmware.

If it WAS specified in volume, gcode still wouldn't be portable between machines with a different filament size because the filaments would have to be closer together/farther apart. This changes everything and would require the gcode to be regenerated from the source anyway.


--
I'm building it with Baling Wire
Re: E units?
April 03, 2010 01:01AM
jgilmore Wrote:
-------------------------------------------------------
> If it WAS specified in volume, gcode still
> wouldn't be portable between machines with a
> different filament size because the filaments
> would have to be closer together/farther apart.

I understand the basis for choosing distance. I disagree the abstraction works as well as volume though. From a firmware / implementation point of view, they are the same -- whether you do the math to convert distance to volume by multiplying by filament cross section, or do the math to convert volume into distance by dividing by cross section. The problem with using distance is you lose information about how thick the filament should be, where as, if you specified with volume, you'd know exactly how thick the filament should be; a device incapable of printing that diameter could decide to use an error code, or alternative printing means to achieve the same filament size (I.E, a device only able to create .3mm diameter filament could still produce an extruded segment close to what a .5 filament machine would make by repeating the move 3 times extruding .3 filament.)
Sorry, only registered users may post in this forum.

Click here to login